AliMpReader splitted into AliMpMotifReader and AliMpSectorReader
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpRow.h
CommitLineData
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
19class AliMpVRowSegment;
20class AliMpVPadIterator;
21class AliMpMotifPosition;
22class AliMpMotifMap;
23
24class 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
77inline UInt_t AliMpRow::GetID() const { return fID; }
78inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; }
79
80#endif //ALI_MP_ROW_H
81