]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpPadRow.h
Compilation on Windows/Cygwin. Corrected dependences
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPadRow.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: AliMpPadRow.h,v 1.10 2006/05/24 13:58:21 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpPadRow
9 /// \brief A pad row composed of the pad row segments.
10 ///
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_PAD_ROW_H
14 #define ALI_MP_PAD_ROW_H
15
16 #include <TObject.h>
17
18 #include "AliMpContainers.h"
19
20 #include "AliMpXDirection.h"
21
22 #ifdef WITH_ROOT
23 #include <TObjArray.h>
24 #endif
25
26 #ifdef WITH_STL
27 #include <vector>
28 #endif
29
30 class AliMpVPadRowSegment;
31 class AliMpMotif;
32
33 class AliMpPadRow : public TObject
34 {
35   public:
36 #ifdef WITH_STL
37     /// Pad row segment vector type
38     typedef std::vector<AliMpVPadRowSegment*>  PadRowSegmentVector;
39 #endif
40 #ifdef WITH_ROOT
41     /// Pad row segment vector type
42     typedef TObjArray  PadRowSegmentVector;
43 #endif
44
45   public:
46     AliMpPadRow(AliMp::XDirection direction);
47     AliMpPadRow();
48     virtual ~AliMpPadRow();
49   
50     // methods
51     AliMpVPadRowSegment*  AddPadRowSegment(AliMpMotif* motif, 
52                                           Int_t motifPositionId, 
53                                           Int_t nofPads);
54     AliMpVPadRowSegment*  FindPadRowSegment(Double_t x) const;
55     Double_t  HalfSizeY() const;
56     
57     // set methods
58     void  SetID(Int_t id);
59     void  SetOffsetX(Double_t offsetX);
60     
61     // get methods
62     Int_t   GetID() const;
63     Int_t   GetNofPadRowSegments() const;
64     AliMpVPadRowSegment*  GetPadRowSegment(Int_t i) const;
65     Int_t   GetNofPads() const;
66
67   private:
68     // methods
69     Double_t CurrentBorderX() const;
70
71     // data members
72     AliMp::XDirection   fDirection; ///< the pad row x direction
73     Int_t               fID;        ///< the pad row ID
74     Double_t            fOffsetX;   ///< the x position of the border
75     PadRowSegmentVector fSegments;  ///< the pad row segments
76
77   ClassDef(AliMpPadRow,1)  // Pad row
78 };
79
80 #endif //ALI_MP_PAD_ROW_H
81