1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpMotifMap.h,v 1.9 2005/09/26 16:10:46 ivana Exp $
8 /// \class AliMpMotifMap
9 /// \brief Motif map containers
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
17 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
19 #ifndef ALI_MP_MOTIF_MAP_H
20 #define ALI_MP_MOTIF_MAP_H
22 #include "AliMpContainers.h"
26 #include "AliMpIntPair.h"
30 #include "AliMpExMap.h"
40 class AliMpMotifPosition;
43 class AliMpMotifMap : public TObject
47 typedef std::map<TString, AliMpVMotif*> MotifMap;
48 typedef MotifMap::const_iterator MotifMapIterator;
49 typedef std::map<TString, AliMpMotifType*> MotifTypeMap;
50 typedef MotifTypeMap::const_iterator MotifTypeMapIterator;
51 typedef std::map<Int_t, AliMpMotifPosition*> MotiPositionMap;
52 typedef MotiPositionMap::const_iterator MotifPositionMapIterator;
53 typedef std::map<AliMpIntPair, AliMpMotifPosition*> MotifPositionMap2;
54 typedef MotifPositionMap2::const_iterator MotifPositionMap2Iterator;
57 typedef AliMpExMap MotifMap;
58 typedef AliMpExMap MotifTypeMap;
59 typedef AliMpExMap MotifPositionMap;
60 typedef AliMpExMap MotifPositionMap2;
64 AliMpMotifMap(Bool_t /*standardConstructor*/);
66 virtual ~AliMpMotifMap();
69 Bool_t AddMotif(AliMpVMotif* motif, Bool_t warn = true);
70 Bool_t AddMotifType(AliMpMotifType* motifType, Bool_t warn = true);
71 Bool_t AddMotifPosition(AliMpMotifPosition* motifType, Bool_t warn = true);
72 void FillMotifPositionMap2();
73 virtual void Print(const char* /*option*/ = "") const;
74 void PrintGlobalIndices(const char* fileName) const;
75 void UpdateGlobalIndices(const char* fileName);
78 AliMpVMotif* FindMotif(const TString& motifID) const;
79 AliMpVMotif* FindMotif(const TString& motifID, const TString& motifTypeID,
80 const TVector2& padDimensions) const;
81 AliMpMotifType* FindMotifType(const TString& motifTypeID) const;
82 AliMpMotifPosition* FindMotifPosition(Int_t motifPositionID) const;
83 // AliMpMotifPosition* FindMotifPosition(const AliMpIntPair& indices) const;
87 void PrintMotif(const AliMpVMotif* motif) const;
88 void PrintMotifType(const AliMpMotifType* motifType) const;
89 void PrintMotifPosition(const AliMpMotifPosition* motifPosition) const;
90 void PrintMotifPosition2(const AliMpMotifPosition* motifPosition) const;
91 void PrintMotifs() const;
92 void PrintMotifTypes() const;
93 void PrintMotifPositions() const;
94 void PrintMotifPositions2() const;
97 MotifMap fMotifs; // motifs map
98 MotifTypeMap fMotifTypes; // motifs types map
100 std::map<Int_t, AliMpMotifPosition*> fMotifPositions; // motif positions map by Id
103 MotifPositionMap fMotifPositions; // motifs positions map
105 MotifPositionMap2 fMotifPositions2;// motifs positions map
107 ClassDef(AliMpMotifMap,1) // motif map
110 #endif //ALI_MP_MOTIF_MAP_H