dfbe5613b043f9ee9b123033be7c2c4e2f7dd2da
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVRowSegment.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpVRowSegment.h,v 1.8 2006/05/23 13:07:44 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpVRowSegment
9 /// \brief An interface for a row segment.
10 ///
11 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_V_ROW_SEGMENT_H
14 #define ALI_MP_V_ROW_SEGMENT_H
15
16 #include "AliMpVIndexed.h"
17 #include "AliMpDirection.h"
18
19 #include <TVector2.h>
20
21 class AliMpRow;
22 class AliMpVMotif;
23 class AliMpIntPair;
24
25 class AliMpVRowSegment : public AliMpVIndexed
26 {
27   public:
28     AliMpVRowSegment();
29     virtual ~AliMpVRowSegment();
30
31     // methods  
32     virtual Double_t  LeftBorderX() const = 0;
33     virtual Double_t  RightBorderX() const = 0;
34     virtual Double_t  HalfSizeY() const = 0;
35     virtual AliMpVPadIterator* CreateIterator() const;
36
37     // find methods
38     virtual AliMpVMotif*  FindMotif(const TVector2& position) const = 0;    
39     virtual Int_t     FindMotifPositionId(const TVector2& position) const = 0;
40     virtual Bool_t    HasMotifPosition(Int_t motifPositionId) const = 0;
41     virtual TVector2  MotifCenter(Int_t motifPositionId) const = 0;
42
43     // geometry
44     virtual TVector2  Position() const = 0;
45     virtual TVector2  Dimensions() const = 0;
46     
47     // set methods
48     virtual void      SetOffset(const TVector2& offset) = 0;
49     virtual void      SetGlobalIndices(AliMpRow* rowBefore) = 0;
50     virtual Int_t     SetIndicesToMotifPosition(Int_t i, 
51                                        const AliMpIntPair& indices) = 0;
52     
53     // get methods
54     virtual AliMpRow*  GetRow() const = 0;
55     virtual Int_t      GetNofMotifs() const = 0;
56     virtual AliMpVMotif*  GetMotif(Int_t i) const = 0;
57     virtual Int_t      GetMotifPositionId(Int_t i) const = 0;
58     
59   ClassDef(AliMpVRowSegment,1)  //Row segment
60 };
61
62 #endif //ALI_MP_V_ROW_SEGMENT_H
63