Line data Source code
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 18 : ClassDef(AliMpRow,1) // Row
78 : };
79 :
80 : // inline functions
81 :
82 : /// Return row ID
83 0 : inline UInt_t AliMpRow::GetID() const { return fID; }
84 :
85 : /// Return the motif map associated with its sector
86 28818 : inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; }
87 :
88 : #endif //ALI_MP_ROW_H
89 :
|