]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpMotifMap.h
gAlice->Particle(lab) removed. TParticle obj. accessed via AliMC
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifMap.h
1 // $Id$
2 // Category: motif
3 //
4 // Class AliMpMotifMap
5 // -------------------
6 // Class describing the motif map container, where motifs are
7 // mapped to their string IDs.
8 //
9 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11 #ifndef ALI_MP_MOTIF_MAP_H
12 #define ALI_MP_MOTIF_MAP_H
13
14 #include <map>
15
16 #include <TObject.h>
17
18 #include "AliMpMotifTypes.h"
19
20 class TString;
21 class TVector2;
22
23 class AliMpVMotif;
24 class AliMpMotifType;
25 class AliMpMotifPosition;
26 class AliMpMotifMap;
27
28 class AliMpMotifMap : public TObject
29 {
30   public:
31     AliMpMotifMap();
32     virtual ~AliMpMotifMap();
33     
34     // methods
35     Bool_t  AddMotif(AliMpVMotif* motif, Bool_t warn = true);
36     Bool_t  AddMotifType(AliMpMotifType* motifType, Bool_t warn = true);
37     Bool_t  AddMotifPosition(AliMpMotifPosition* motifType, Bool_t warn = true);
38     void   FillMotifPositionMap2();
39     virtual void Print(const char* /*option*/ = "") const;
40     void   PrintGlobalIndices(const char* fileName) const;
41     void   UpdateGlobalIndices(const char* fileName);
42    
43     // find methods
44     AliMpVMotif*  FindMotif(const TString& motifID) const;
45     AliMpVMotif*  FindMotif(const TString& motifID, const TString& motifTypeID, 
46                             const TVector2& padDimensions) const;
47     AliMpMotifType*      FindMotifType(const TString& motifTypeID) const;
48     AliMpMotifPosition*  FindMotifPosition(Int_t motifPositionID) const;
49     AliMpMotifPosition*  FindMotifPosition(const AliMpIntPair& indices) const;
50
51   private:
52     // methods
53     void  PrintMotifs() const;
54     void  PrintMotifTypes() const;
55     void  PrintMotifPositions() const;
56     void  PrintMotifPositions2() const;
57  
58 #ifdef __HP_aCC
59     // data members
60             // EXCLUDED FOR CINT (does not compile on HP)
61     MotifMap          fMotifs; //! motifs map
62     MotifTypeMap      fMotifTypes; //!motif types map 
63     //MotifPositionMap  fMotifPositions;  //! motif positions map 
64                                           // not taken by cint
65     map<Int_t, AliMpMotifPosition*>  fMotifPositions; //! motif positions map by Id
66     MotifPositionMap2 fMotifPositions2; //! motif positions map
67 #else
68     // data members
69     MotifMap          fMotifs;     // motifs map
70     MotifTypeMap      fMotifTypes; // motif types map 
71     //MotifPositionMap  fMotifPositions;  // motif positions map 
72                                           // not taken by cint
73     std::map<Int_t, AliMpMotifPosition*> fMotifPositions; // motif positions map by Id
74     MotifPositionMap2 fMotifPositions2; // motif positions map
75 #endif
76
77   ClassDef(AliMpMotifMap,1)  // motif map
78 };
79
80 #endif //ALI_MP_MOTIF_MAP_H