Replacement of AliMpIntPair object with algoritmic
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVPadRowSegment.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: AliMpVPadRowSegment.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpVPadRowSegment
9 /// \brief The abstract base class for a pad row segment composed of the 
10 /// the identic pads.
11 ///
12 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
13
14 #ifndef ALI_MP_V_PAD_ROW_SEGMENT_H
15 #define ALI_MP_V_PAD_ROW_SEGMENT_H
16
17 #include <TObject.h>
18
19 class AliMpPadRow;
20 class AliMpMotif;
21
22 class AliMpVPadRowSegment : public TObject
23 {
24   public:
25     AliMpVPadRowSegment(AliMpPadRow* padRow, AliMpMotif* motif, 
26                        Int_t motifPositionId, Int_t nofPads);
27     AliMpVPadRowSegment();
28     virtual ~AliMpVPadRowSegment();
29
30     // methods
31                       /// Return the x coordinate of the left border
32                       /// in the global coordinate system.
33     virtual Double_t  LeftBorderX() const = 0;
34                       /// Return the x coordinate of the right border
35                       /// in the global coordinate system.
36     virtual Double_t  RightBorderX() const = 0;
37     virtual Double_t  HalfSizeY() const;
38
39     // get methods
40     virtual AliMpPadRow*  GetPadRow() const;
41     virtual AliMpMotif*   GetMotif() const;    
42     virtual Int_t     GetMotifPositionId() const;
43                       /// Return number of pads
44             Int_t     GetNofPads() const {return fNofPads;}     
45
46     // set methods
47     void  SetOffsetX(Double_t offsetX);  
48
49   protected:
50                       /// Return the x position of the right/left border
51     Double_t  GetOffsetX() const { return fOffsetX; }
52
53   private:
54     /// Not implemented
55     AliMpVPadRowSegment(const AliMpVPadRowSegment& right);
56     /// Not implemented
57     AliMpVPadRowSegment&  operator = (const AliMpVPadRowSegment& right);
58
59     // data members
60     Int_t         fNofPads;  ///< number of pads
61     Double_t      fOffsetX;  ///< the x position of the right/left border
62     AliMpPadRow*  fPadRow;   ///< the pad row containing this segment 
63     AliMpMotif*   fMotif;    ///< the motif 
64     Int_t         fMotifPositionId;  ///< the motif position id
65     
66   ClassDef(AliMpVPadRowSegment,1)  // Row segment
67 };
68
69 #endif //ALI_MP_V_PAD_ROW_SEGMENT_H
70