1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpSector.h,v 1.8 2005/09/02 10:00:49 ivana Exp $
9 /// \brief A sector (quadrant) of the MUON chamber of stations 1 and 2.
11 /// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
13 #ifndef ALI_MP_SECTOR_H
14 #define ALI_MP_SECTOR_H
20 #include "AliMpSectorTypes.h"
21 #include "AliMpDirection.h"
25 class AliMpVRowSegment;
27 class AliMpVPadIterator;
30 class AliMpSector : public TObject
33 AliMpSector(const TString& id, Int_t nofZones, Int_t nofRows,
34 AliMpDirection direction, const TVector2& offset);
36 virtual ~AliMpSector();
39 virtual AliMpVPadIterator* CreateIterator() const;
40 void SetRowSegmentOffsets();
42 void PrintGeometry() const;
45 AliMpRow* FindRow(const TVector2& position) const;
46 AliMpVMotif* FindMotif(const TVector2& position) const;
47 Int_t FindMotifPositionId(const TVector2& position) const;
49 AliMpRow* FindRow(Int_t motifPositionId) const;
50 AliMpVRowSegment* FindRowSegment(Int_t motifPositionId) const;
51 TVector2 FindPosition(Int_t motifPositionId) const;
53 AliMpZone* FindZone(const TVector2& padDimensions) const;
56 TVector2 Position() const;
57 TVector2 Dimensions() const;
60 Int_t GetNofZones() const;
61 AliMpZone* GetZone(Int_t i) const;
62 Int_t GetNofRows() const;
63 AliMpRow* GetRow(Int_t i) const;
64 AliMpDirection GetDirection() const;
65 TVector2 GetMinPadDimensions() const;
66 AliMpMotifMap* GetMotifMap() const;
69 AliMpSector(const AliMpSector& right);
70 AliMpSector& operator = (const AliMpSector& right);
74 AliMpVRowSegment* FindRowSegment(const TVector2& position) const;
76 void SetMotifPositions();
77 void SetGlobalIndices();
78 void SetMinPadDimensions();
81 TString fID; // sector ID
82 TVector2 fOffset; // sector position
83 ZoneVector fZones; // zones
84 RowVector fRows; // rows
85 AliMpMotifMap* fMotifMap; // motif map
86 AliMpDirection fDirection;// the direction of constant pad size
87 TVector2 fMinPadDimensions; // minimal pad dimensions
89 ClassDef(AliMpSector,1) //Sector
94 inline AliMpDirection AliMpSector::GetDirection() const
95 { return fDirection; }
97 inline TVector2 AliMpSector::GetMinPadDimensions() const
98 { return fMinPadDimensions; }
100 inline AliMpMotifMap* AliMpSector::GetMotifMap() const
101 { return fMotifMap; }
103 #endif //ALI_MP_SECTOR_H