]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpMotifPosition.h
Mapping test macros (D. Guez, I. Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifPosition.h
1 // $Id$
2 // Category: motif
3 //
4 // Class AliMpMotifPosition
5 // ------------------------
6 // Class that represents a placed motif.
7 //
8 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
9
10 #ifndef ALI_MP_MOTIF_POSITION_H
11 #define ALI_MP_MOTIF_POSITION_H
12
13 #include <TVector2.h>
14
15 #include "AliMpVIndexed.h"
16 #include "AliMpVMotif.h"
17
18 class AliMpVPadIterator;
19
20 class AliMpMotifPosition : public AliMpVIndexed
21 {
22  public:
23   AliMpMotifPosition(Int_t id, AliMpVMotif* motif, TVector2 position);
24   AliMpMotifPosition();
25   virtual ~AliMpMotifPosition();
26
27   // methods
28   virtual AliMpVPadIterator* CreateIterator() const;
29
30   // get methods
31   Int_t        GetID() const;
32   AliMpVMotif* GetMotif() const;
33   Bool_t       HasPad(const AliMpIntPair& indices) const;
34
35   // Geometry
36   TVector2 Position() const;
37   TVector2 Dimensions() const;
38
39  protected:
40   AliMpMotifPosition(const AliMpMotifPosition& right);
41   AliMpMotifPosition&  operator = (const AliMpMotifPosition& right);
42
43  private:
44   // methods
45   // data members 
46   Int_t         fID;       //identifier
47   AliMpVMotif*  fMotif;    //motif
48   TVector2      fPosition; //position
49
50   ClassDef(AliMpMotifPosition,1) // A motif position
51 };
52
53 // inline functions
54
55 inline Int_t  AliMpMotifPosition::GetID() const 
56 { return fID; }
57
58 inline AliMpVMotif*  AliMpMotifPosition::GetMotif() const
59 { return fMotif; }
60  
61 inline TVector2 AliMpMotifPosition::Position() const
62 { return fPosition; }
63
64 inline TVector2 AliMpMotifPosition::Dimensions() const
65 { return fMotif->Dimensions(); }
66
67 #endif //ALI_MP_MOTIF_POSITION_H