]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/MUONmapping/AliMpMotifMap.h
Fixes for object target dependencies
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpMotifMap.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 // $MpId: AliMpMotifMap.h,v 1.14 2006/05/24 13:58:18 ivana Exp $
6
7 /// \ingroup motif
8 /// \class AliMpMotifMap
9 /// \brief Motif map containers
10 ///
11 /// The class defines:
12 /// - map of motif objects to their string IDs
13 /// - map of motif type objects to their string IDs
14 /// - map of motif position objects to their string IDs
15 /// - map of motif position objects to their global indices
16 ///
17 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
18
19 #ifndef ALI_MP_MOTIF_MAP_H
20 #define ALI_MP_MOTIF_MAP_H
21
22 #include <TObject.h>
23
24 #include "AliMpExMap.h"
25
26 class AliMpVMotif;
27 class AliMpMotifType;
28 class AliMpMotifPosition;
29 class AliMpMotifMap;
30
31 class TArrayI;
32 class TString;
33
34 class AliMpMotifMap : public TObject
35 {
36   public:
37     AliMpMotifMap();
38     AliMpMotifMap(TRootIOCtor* ioCtor);
39     virtual ~AliMpMotifMap();
40     
41     // methods
42     Bool_t  AddMotif(AliMpVMotif* motif, Bool_t warn = true);
43     Bool_t  AddMotifType(AliMpMotifType* motifType, Bool_t warn = true);
44     Bool_t  AddMotifPosition(AliMpMotifPosition* motifType, Bool_t warn = true);
45     void   FillMotifPositionMap2();
46     virtual void Print(const char* option = "ALL") const;
47     void   PrintGlobalIndices(const char* fileName) const;
48     void   UpdateGlobalIndices(const char* fileName);
49    
50     // find methods
51     AliMpVMotif*  FindMotif(const TString& motifID) const;
52     AliMpVMotif*  FindMotif(const TString& motifID, const TString& motifTypeID, 
53                             Double_t padDimensionX, Double_t padDimensionY) const;
54     AliMpMotifType*      FindMotifType(const TString& motifTypeID) const;
55     AliMpMotifPosition*  FindMotifPosition(Int_t motifPositionID) const;
56
57     /// Find all motifPositionsIDs (=electronicCardNumbers) handled by this map
58     void    GetAllMotifPositionsIDs(TArrayI& enc) const;
59     UInt_t  GetNofMotifPositions() const;
60     AliMpMotifPosition* GetMotifPosition(UInt_t index) const;
61
62     /// Calculate total number of pads defined in the map
63     Int_t CalculateNofPads() const;
64      
65   private:
66     /// Not implemented
67     AliMpMotifMap(const AliMpMotifMap& rhs);
68     /// Not implemented
69     AliMpMotifMap& operator=(const AliMpMotifMap& rhs);
70   
71     // methods
72     void  PrintMotif(const AliMpVMotif* motif) const;
73     void  PrintMotifType(const AliMpMotifType* motifType) const;
74     void  PrintMotifPosition(const AliMpMotifPosition* motifPosition) const;
75     void  PrintMotifPosition2(const AliMpMotifPosition* motifPosition) const;
76     void  PrintMotifs() const;
77     void  PrintMotifTypes() const;
78     void  PrintMotifPositions() const;
79     void  PrintMotifPositions2() const;
80  
81     // data members
82     AliMpExMap   fMotifs;         ///< motifs map
83     AliMpExMap   fMotifTypes;     ///< motifs types map
84     AliMpExMap   fMotifPositions; ///< motifs positions map
85     AliMpExMap   fMotifPositions2;///< motifs positions map
86
87   ClassDef(AliMpMotifMap,1)  // motif map
88 };
89
90 #endif //ALI_MP_MOTIF_MAP_H