]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpStringObjMap.h
Updated train config
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpStringObjMap.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 AliMpStringObjMap
8 /// \brief Substitutes map <string, TObject> which ALICE does not allow to use 
9 ///
10 /// The map is not optimised for large data size
11 ///
12 /// \author Ivana Hrivnacova, IPN Orsay
13
14 #ifndef ALI_MP_STRING_OBJ_MAP_H
15 #define ALI_MP_STRING_OBJ_MAP_H
16
17 #include <TObject.h>
18 #include <TObjArray.h>
19 #include <TArrayI.h>
20
21 using std::ofstream;
22
23 class AliMpStringObjMap : public TObject
24 {
25   public:
26     AliMpStringObjMap(Bool_t isOwner = false);
27     virtual ~AliMpStringObjMap();
28     
29     // methods
30     Bool_t    Add(const TString& first, TObject* second);
31     TObject*  Get(const TString& first) const;
32     Int_t     GetNofItems() const;
33     virtual void Clear(Option_t* /*option*/ ="");
34     virtual void Print(const char* /*option*/ = "") const;
35     void Print(const TString& key, ofstream& out) const;
36     
37     // iterating over elements
38     void  First();
39     void  Next();
40     TObject*  CurrentItem();
41     TString   CurrentKey();
42     Bool_t  IsDone() const;
43     
44   private:
45     /// Not implemented
46     AliMpStringObjMap(const AliMpStringObjMap& rhs);
47     /// Not implemented
48     AliMpStringObjMap& operator = (const AliMpStringObjMap& rhs);
49     
50     // static methods
51     static const TString& GetUndefinedKey(); 
52
53     // data members
54     Int_t      fNofItems;     ///<  number of items
55     TObjArray  fFirstArray;   ///<  first item array
56     TObjArray  fSecondArray;  ///<  second item array
57     Int_t      fCurrentIndex; ///<  current item index (for iteration)
58  
59   ClassDef(AliMpStringObjMap,1)  // motif map
60 };    
61
62 #endif //ALI_MP_STRING_OBJ_MAP_H