Update for station2:
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVPadRowSegment.h
1 // $Id$
2 // ---------------------------------------------------------------
3 // Category: sector
4 //
5 // Class AliMpVPadRowSegment
6 // -------------------------
7 // The abstract base class for a pad row segment composed of the 
8 // the identic pads.
9 //
10 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
11
12 #ifndef ALI_MP_V_PAD_ROW_SEGMENT_H
13 #define ALI_MP_V_PAD_ROW_SEGMENT_H
14
15 #include <TObject.h>
16
17 class AliMpPadRow;
18 class AliMpMotif;
19
20 class AliMpVPadRowSegment : public TObject
21 {
22   public:
23     AliMpVPadRowSegment(AliMpPadRow* padRow, AliMpMotif* motif, 
24                        Int_t motifPositionId, Int_t nofPads);
25     AliMpVPadRowSegment();
26     virtual ~AliMpVPadRowSegment();
27
28     // methods
29     virtual Double_t  LeftBorderX() const = 0;
30     virtual Double_t  RightBorderX() const = 0;
31     virtual Double_t  HalfSizeY() const;
32
33     // get methods
34     virtual AliMpPadRow*  GetPadRow() const;
35     virtual AliMpMotif*   GetMotif() const;    
36     virtual Int_t     GetMotifPositionId() const;
37             Int_t     GetNofPads() const {return fNofPads;}     
38
39     // set methods
40     void  SetOffsetX(Double_t offsetX);  
41
42   protected:
43     Double_t  GetOffsetX() const { return fOffsetX; }
44
45   private:
46     // data members
47     Int_t         fNofPads;  //number of pads
48     Double_t      fOffsetX;  //the x position of the right/left border
49     AliMpPadRow*  fPadRow;   //the pad row containing this segment 
50     AliMpMotif*   fMotif;    //the motif 
51     Int_t         fMotifPositionId;  // the motif position id
52     
53   ClassDef(AliMpVPadRowSegment,1)  //Row segment
54 };
55
56 #endif //ALI_MP_V_PAD_ROW_SEGMENT_H
57