Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifSpecial.h
1 // $Id$
2 // Category: motif
3 //
4 // Class AliMpMotifSpecial
5 // -----------------------
6 // Class that defines a motif with its unique ID
7 // and the motif type.
8 //
9 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10
11 #ifndef ALI_MP_MOTIF_SPECIAL_H
12 #define ALI_MP_MOTIF_SPECIAL_H
13
14 #include <TObject.h>
15 #include <TString.h>
16 #include <TVector2.h>
17
18 #include "AliMpMotifTypes.h"
19 #include "AliMpVMotif.h"
20
21 class AliMpMotifSpecial : public AliMpVMotif
22 {
23  public:
24   AliMpMotifSpecial(const TString &id, AliMpMotifType *motifType);
25   AliMpMotifSpecial();
26
27   // Access methods
28   virtual TVector2 GetPadDimensions(const AliMpIntPair& localIndices) const;
29   virtual Int_t    GetNofPadDimensions() const;
30   virtual TVector2 GetPadDimensions(Int_t i) const;
31
32   // Set methods
33   void SetPadDimensions(const AliMpIntPair& localIndices,
34                         const TVector2& dimensions);
35   
36   // Geometry
37   virtual TVector2 Dimensions() const;
38
39   // Other methods
40   virtual TVector2     PadPositionLocal(const AliMpIntPair& localIndices) const;
41   virtual AliMpIntPair PadIndicesLocal(const TVector2& localPos) const;
42
43  private:
44  
45   // methods
46   Int_t VectorIndex(const AliMpIntPair& indices) const;
47
48   // data members
49   DimensionsMap fPadDimensionsVector;  // the vector of pad dimensions
50   DimensionsMap fPadDimensionsVector2; // the vector of different pad dimensions
51
52   ClassDef(AliMpMotifSpecial,1) // A motif with its ID
53 };
54
55 #endif //ALI_MP_MOTIF_SPECIAL_H