]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpRow.h
Removing a comma that gcc 3.4 does not like ;-)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpRow.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: AliMpRow.h,v 1.11 2006/05/24 13:58:21 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpRow
9 /// \brief A row composed of the row segments.
10 ///
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_ROW_H
14 #define ALI_MP_ROW_H
15
16 #include "AliMpVIndexed.h"
17 #include "AliMpDirection.h"
18
19 #include <TList.h>
20
21 class AliMpVRowSegment;
22 class AliMpVPadIterator;
23 class AliMpMotifPosition;
24 class AliMpMotifMap;
25
26 class AliMpRow : public AliMpVIndexed
27 {
28   public:
29     AliMpRow(Int_t id, AliMpMotifMap* motifMap);
30     AliMpRow();
31     virtual ~AliMpRow();
32   
33     // methods
34     void  AddRowSegment(AliMpVRowSegment* rowSegment);
35     void  AddRowSegmentInFront(AliMpVRowSegment* rowSegment);
36     AliMpVRowSegment*  FindRowSegment(Double_t x) const;
37     Double_t  LowBorderY() const;
38     Double_t  UpperBorderY() const;
39     virtual AliMpVPadIterator* CreateIterator() const;
40     
41     void      SetRowSegmentOffsets(Double_t offsetx);
42     Double_t  SetOffsetY(Double_t offsetY);
43     void      SetMotifPositions();
44     void      SetGlobalIndices(AliMp::Direction constPadSizeDirection, 
45                                AliMpRow* rowBefore);
46
47     // geometry
48     Double_t  GetPositionX() const;
49     Double_t  GetPositionY() const;
50     Double_t  GetDimensionX() const;
51     Double_t  GetDimensionY() const;
52
53     // get methods
54     UInt_t   GetID() const;
55     Int_t    GetNofRowSegments() const;
56     AliMpVRowSegment*  GetRowSegment(Int_t i) const;
57     AliMpMotifMap*     GetMotifMap() const;
58
59   private:
60     /// Not implemented
61     AliMpRow(const AliMpRow& right);
62     /// Not implemented
63     AliMpRow&  operator = (const AliMpRow& right);
64
65     // methods
66     AliMpVRowSegment*    FindRowSegment(Int_t ix) const;
67     AliMpMotifPosition*  FindMotifPosition(AliMpVRowSegment* segment, Int_t ix) const;
68     void SetHighIndicesLimits(Int_t iy);
69     void CheckEmpty() const;
70   
71     // data members
72     UInt_t            fID;      ///< row ID
73     Double_t          fOffsetY; ///< the y position of the centre of motifs
74     TList             fSegments;///< row segments
75     AliMpMotifMap*    fMotifMap;///< the motif map associated with its sector
76
77   ClassDef(AliMpRow,1)  // Row
78 };
79
80 // inline functions
81
82 /// Return row ID
83 inline  UInt_t  AliMpRow::GetID() const { return fID; }
84
85 /// Return the motif map associated with its sector
86 inline  AliMpMotifMap*  AliMpRow::GetMotifMap() const { return fMotifMap; }
87
88 #endif //ALI_MP_ROW_H
89