1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpRow.h,v 1.11 2006/05/24 13:58:21 ivana Exp $
9 /// \brief A row composed of the row segments.
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
16 #include "AliMpContainers.h"
18 #include "AliMpVIndexed.h"
19 #include "AliMpDirection.h"
30 class AliMpVRowSegment;
31 class AliMpVPadIterator;
32 class AliMpMotifPosition;
35 class AliMpRow : public AliMpVIndexed
39 /// Row segment vector type
40 typedef std::vector<AliMpVRowSegment*> RowSegmentVector;
43 /// Row segment vector type
44 typedef TList RowSegmentVector;
48 AliMpRow(Int_t id, AliMpMotifMap* motifMap);
53 void AddRowSegment(AliMpVRowSegment* rowSegment);
54 void AddRowSegmentInFront(AliMpVRowSegment* rowSegment);
55 AliMpVRowSegment* FindRowSegment(Double_t x) const;
56 Double_t LowBorderY() const;
57 Double_t UpperBorderY() const;
58 virtual AliMpVPadIterator* CreateIterator() const;
60 void SetRowSegmentOffsets(const TVector2& offset);
61 Double_t SetOffsetY(Double_t offsetY);
62 void SetMotifPositions();
63 void SetGlobalIndices(AliMp::Direction constPadSizeDirection,
67 TVector2 Position() const;
68 TVector2 Dimensions() const;
72 Int_t GetNofRowSegments() const;
73 AliMpVRowSegment* GetRowSegment(Int_t i) const;
74 AliMpMotifMap* GetMotifMap() const;
78 AliMpRow(const AliMpRow& right);
80 AliMpRow& operator = (const AliMpRow& right);
83 AliMpVRowSegment* FindRowSegment(Int_t ix) const;
84 AliMpMotifPosition* FindMotifPosition(AliMpVRowSegment* segment, Int_t ix) const;
85 void SetHighIndicesLimits(Int_t iy);
86 void CheckEmpty() const;
89 UInt_t fID; ///< row ID
90 Double_t fOffsetY; ///< the y position of the centre of motifs
91 RowSegmentVector fSegments;///< row segments
92 AliMpMotifMap* fMotifMap;///< the motif map associated with its sector
94 ClassDef(AliMpRow,1) // Row
100 inline UInt_t AliMpRow::GetID() const { return fID; }
102 /// Return the motif map associated with its sector
103 inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; }
105 #endif //ALI_MP_ROW_H