Line data Source code
1 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 : * See cxx source for full Copyright notice */
3 :
4 : // $Id$
5 :
6 : /// \ingroup core
7 : /// \class AliMUONStringIntMap
8 : /// \brief Substitutes map <string, int> which ALICE does not allow to use
9 : ///
10 : /// \author Ivana Hrivnacova, IPN Orsay
11 :
12 : #ifndef ALI_MUON_STRING_INT_MAP_H
13 : #define ALI_MUON_STRING_INT_MAP_H
14 :
15 : #include <TObject.h>
16 : #include <TObjArray.h>
17 : #include <TArrayI.h>
18 :
19 : using std::ofstream;
20 :
21 : class AliMUONStringIntMap : public TObject
22 : {
23 : public:
24 : AliMUONStringIntMap();
25 : virtual ~AliMUONStringIntMap();
26 :
27 : // methods
28 : Bool_t Add(const TString& first, Int_t second);
29 : Bool_t Set(const TString& first, Int_t second);
30 : Int_t Contains(const TString& first) const;
31 :
32 : Int_t Get(const TString& first) const;
33 : Int_t GetNofItems() const;
34 : virtual void Clear(Option_t* /*option*/ ="");
35 : virtual void Print(const char* /*option*/ = "") const;
36 : void Print(const TString& key, ofstream& out) const;
37 :
38 : // Methods for iterating over all elements
39 : Bool_t Next(TString& first, Int_t& second);
40 : void ResetItr();
41 :
42 : protected:
43 : /// Not implemented
44 : AliMUONStringIntMap(const AliMUONStringIntMap& rhs);
45 : /// Not implemented
46 : AliMUONStringIntMap& operator = (const AliMUONStringIntMap& rhs);
47 :
48 : private:
49 : // data members
50 : Int_t fNofItems; ///< number of items
51 : TObjArray fFirstArray; ///< first item array
52 : TArrayI fSecondArray; ///< second item array
53 : Int_t fCurrentIndex;///< current index
54 :
55 662 : ClassDef(AliMUONStringIntMap,2) // motif map
56 : };
57 :
58 : #endif //ALI_MUON_STRING_INT_MAP_H
|