6 // Class describing the sector of the MUON chamber of station 1.
8 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
10 #ifndef ALI_MP_SECTOR_H
11 #define ALI_MP_SECTOR_H
17 #include "AliMpSectorTypes.h"
18 #include "AliMpDirection.h"
22 class AliMpVRowSegment;
24 class AliMpVPadIterator;
27 class AliMpSector : public TObject
30 AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows,
31 AliMpDirection direction, const TVector2& offset);
33 virtual ~AliMpSector();
36 virtual AliMpVPadIterator* CreateIterator() const;
37 void SetRowSegmentOffsets();
39 void PrintGeometry() const;
42 AliMpRow* FindRow(const TVector2& position) const;
43 AliMpVMotif* FindMotif(const TVector2& position) const;
44 Int_t FindMotifPositionId(const TVector2& position) const;
46 AliMpRow* FindRow(Int_t motifPositionId) const;
47 AliMpVRowSegment* FindRowSegment(Int_t motifPositionId) const;
48 TVector2 FindPosition(Int_t motifPositionId) const;
50 AliMpZone* FindZone(const TVector2& padDimensions) const;
53 TVector2 Position() const;
54 TVector2 Dimensions() const;
55 TVector2 Offset() const;
58 Int_t GetNofZones() const;
59 AliMpZone* GetZone(Int_t i) const;
60 Int_t GetNofRows() const;
61 AliMpRow* GetRow(Int_t i) const;
62 AliMpDirection GetDirection() const;
63 TVector2 GetMinPadDimensions() const;
64 AliMpMotifMap* GetMotifMap() const;
67 AliMpSector(const AliMpSector& right);
68 AliMpSector& operator = (const AliMpSector& right);
72 AliMpVRowSegment* FindRowSegment(const TVector2& position) const;
74 void SetMotifPositions();
75 void SetGlobalIndices();
76 void SetMinPadDimensions();
79 TString fID; // sector ID
80 TVector2 fOffset; // sector position
81 ZoneVector fZones; // zones
82 RowVector fRows; // rows
83 AliMpMotifMap* fMotifMap; // motif map
84 AliMpDirection fDirection;// the direction of constant pad size
85 TVector2 fMinPadDimensions; // minimal pad dimensions
87 ClassDef(AliMpSector,1) //Sector
92 inline TVector2 AliMpSector::Offset() const
95 inline AliMpDirection AliMpSector::GetDirection() const
96 { return fDirection; }
98 inline TVector2 AliMpSector::GetMinPadDimensions() const
99 { return fMinPadDimensions; }
101 inline AliMpMotifMap* AliMpSector::GetMotifMap() const
102 { return fMotifMap; }
104 #endif //ALI_MP_SECTOR_H