Pass AliMpIntPair/TVector2/TString arguments by const reference.
[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
17 class AliMpRow;
18 class AliMpVMotif;
19 class AliMpIntPair;
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, 
47                                const AliMpIntPair& indices) = 0;
48     
49     // get methods
50     virtual AliMpRow*  GetRow() const = 0;
51     virtual Int_t      GetNofMotifs() const = 0;
52     virtual AliMpVMotif*  GetMotif(Int_t i) const = 0;
53     virtual Int_t      GetMotifPositionId(Int_t i) const = 0;
54     
55   ClassDef(AliMpVRowSegment,1)  //Row segment
56 };
57
58 #endif //ALI_MP_V_ROW_SEGMENT_H
59