]>
Commit | Line | Data |
---|---|---|
5f91c9e8 | 1 | // $Id$ |
2 | // Category: sector | |
3 | // | |
4 | // Class AliMpRow | |
5 | // -------------- | |
6 | // Class describing a row composed of the row segments. | |
7 | // | |
8 | // Authors: David Guez, Ivana Hrivnacova; IPN Orsay | |
9 | ||
10 | #ifndef ALI_MP_ROW_H | |
11 | #define ALI_MP_ROW_H | |
12 | ||
5f91c9e8 | 13 | #include <TVector2.h> |
14 | ||
15 | #include "AliMpSectorTypes.h" | |
16 | #include "AliMpVIndexed.h" | |
17 | #include "AliMpDirection.h" | |
18 | ||
19 | class AliMpVRowSegment; | |
20 | class AliMpVPadIterator; | |
21 | class AliMpMotifPosition; | |
22 | class AliMpMotifMap; | |
23 | ||
24 | class AliMpRow : public AliMpVIndexed | |
25 | { | |
26 | public: | |
27 | AliMpRow(Int_t id, AliMpMotifMap* motifMap); | |
28 | AliMpRow(); | |
29 | virtual ~AliMpRow(); | |
30 | ||
31 | // methods | |
32 | void AddRowSegment(AliMpVRowSegment* rowSegment); | |
33 | void AddRowSegmentInFront(AliMpVRowSegment* rowSegment); | |
34 | AliMpVRowSegment* FindRowSegment(Double_t x) const; | |
35 | Double_t LowBorderY() const; | |
36 | Double_t UpperBorderY() const; | |
37 | virtual AliMpVPadIterator* CreateIterator() const; | |
38 | ||
39 | void SetRowSegmentOffsets(const TVector2& offset); | |
40 | Double_t SetOffsetY(Double_t offsetY); | |
41 | void SetMotifPositions(); | |
42 | void SetGlobalIndices(AliMpDirection constPadSizeDirection, | |
43 | AliMpRow* rowBefore); | |
44 | ||
45 | // geometry | |
46 | TVector2 Position() const; | |
47 | TVector2 Dimensions() const; | |
48 | ||
49 | // get methods | |
50 | UInt_t GetID() const; | |
51 | Int_t GetNofRowSegments() const; | |
52 | AliMpVRowSegment* GetRowSegment(Int_t i) const; | |
53 | AliMpMotifMap* GetMotifMap() const; | |
54 | ||
fb1bf5c0 | 55 | protected: |
56 | AliMpRow(const AliMpRow& right); | |
57 | AliMpRow& operator = (const AliMpRow& right); | |
58 | ||
5f91c9e8 | 59 | private: |
60 | // methods | |
61 | AliMpVRowSegment* FindRowSegment(Int_t ix) const; | |
62 | AliMpMotifPosition* FindMotifPosition(AliMpVRowSegment* segment, Int_t ix) const; | |
63 | void SetHighIndicesLimits(Int_t iy); | |
64 | void CheckEmpty() const; | |
65 | ||
66 | // data members | |
67 | UInt_t fID; // row ID | |
68 | Double_t fOffsetY; // the y position of the centre of motifs | |
69 | RowSegmentVector fSegments;// row segments | |
70 | AliMpMotifMap* fMotifMap;// the motif map associated with its sector | |
71 | ||
72 | ClassDef(AliMpRow,1) //Row | |
73 | }; | |
74 | ||
75 | // inline functions | |
76 | ||
77 | inline UInt_t AliMpRow::GetID() const { return fID; } | |
78 | inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; } | |
79 | ||
80 | #endif //ALI_MP_ROW_H | |
81 |