]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONStringIntMap.h
#102885: Patch for MUON code
[u/mrichter/AliRoot.git] / MUON / AliMUONStringIntMap.h
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   ClassDef(AliMUONStringIntMap,2)  // motif map
56 };    
57
58 #endif //ALI_MUON_STRING_INT_MAP_H