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 : // $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 28626 : ClassDef(AliMpMotifMap,1) // motif map
88 : };
89 :
90 : #endif //ALI_MP_MOTIF_MAP_H
|