ENDIF replaced by endif (compilation problems)
[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
55 private:
56 // methods
57 AliMpVRowSegment* FindRowSegment(Int_t ix) const;
58 AliMpMotifPosition* FindMotifPosition(AliMpVRowSegment* segment, Int_t ix) const;
59 void SetHighIndicesLimits(Int_t iy);
60 void CheckEmpty() const;
61
62 // data members
63 UInt_t fID; // row ID
64 Double_t fOffsetY; // the y position of the centre of motifs
65 RowSegmentVector fSegments;// row segments
66 AliMpMotifMap* fMotifMap;// the motif map associated with its sector
67
68 ClassDef(AliMpRow,1) //Row
69};
70
71// inline functions
72
73inline UInt_t AliMpRow::GetID() const { return fID; }
74inline AliMpMotifMap* AliMpRow::GetMotifMap() const { return fMotifMap; }
75
76#endif //ALI_MP_ROW_H
77