Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVRowSegment.h
1 // $Id$
2 // Category: sector
3 //
4 // Class AliMpVRowSegment
5 // ----------------------
6 // Class describing an interface for a row segment.
7 //
8 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
9
10 #ifndef ALI_MP_V_ROW_SEGMENT_H
11 #define ALI_MP_V_ROW_SEGMENT_H
12
13 #include <TVector2.h>
14
15 #include "AliMpVIndexed.h"
16 #include "AliMpIntPair.h"
17
18 class AliMpRow;
19 class AliMpVMotif;
20
21 class AliMpVRowSegment : public AliMpVIndexed
22 {
23   public:
24     AliMpVRowSegment();
25     virtual ~AliMpVRowSegment();
26
27     // methods  
28     virtual Double_t  LeftBorderX() const = 0;
29     virtual Double_t  RightBorderX() const = 0;
30     virtual Double_t  HalfSizeY() const = 0;
31     virtual AliMpVPadIterator* CreateIterator() const;
32
33     // find methods
34     virtual AliMpVMotif*  FindMotif(const TVector2& position) const = 0;    
35     virtual Int_t     FindMotifPositionId(const TVector2& position) const = 0;
36     virtual Bool_t    HasMotifPosition(Int_t motifPositionId) const = 0;
37     virtual TVector2  MotifCenter(Int_t motifPositionId) const = 0;
38
39     // geometry
40     virtual TVector2  Position() const = 0;
41     virtual TVector2  Dimensions() const = 0;
42     
43     // set methods
44     virtual void      SetOffset(const TVector2& offset) = 0;
45     virtual void      SetGlobalIndices() = 0;
46     virtual Int_t     SetIndicesToMotifPosition(Int_t i, AliMpIntPair indices) = 0;
47     
48     // get methods
49     virtual AliMpRow*  GetRow() const = 0;
50     virtual Int_t      GetNofMotifs() const = 0;
51     virtual AliMpVMotif*  GetMotif(Int_t i) const = 0;
52     virtual Int_t      GetMotifPositionId(Int_t i) const = 0;
53     
54   ClassDef(AliMpVRowSegment,1)  //Row segment
55 };
56
57 #endif //ALI_MP_V_ROW_SEGMENT_H
58