Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpPlane.h
1 // $Id$
2 // Category: plane
3 //
4 // Class AliMpPlane
5 // ----------------
6 // Class represents the plane composed of 4 sector positions:
7 // 
8 //   I.  FS                             II. |  I.
9 //  II.  BS inverted in x             _____ | ____
10 // III.  FS inverted in x, y                |
11 //  IV.  BS inverted in y              III. |  IV.
12 //   
13 // FS - front sector
14 // BS - back sector    
15 //
16 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
17
18 #ifndef ALI_MP_PLANE_H
19 #define ALI_MP_PLANE_H
20
21 #include <TObject.h>
22 #include <TVector2.h>
23
24 #include "AliMpPlaneTypes.h"
25 #include "AliMpPlaneType.h"
26 #include "AliMpIntPair.h"
27
28 class AliMpSector;
29 class AliMpSectorPosition;
30
31 class AliMpPlane : public TObject
32 {
33   public:
34     AliMpPlane(AliMpSector* frontSector, AliMpSector* backSector,
35                const TVector2& q1Position, const TVector2& q2Position,
36                const TVector2& q3Position, const TVector2& q4Position);
37     AliMpPlane();
38     virtual ~AliMpPlane();
39     
40     // factory methods
41     static AliMpPlane* Create(AliMpPlaneType type,
42                const TVector2& q1Position, const TVector2& q2Position,
43                const TVector2& q3Position, const TVector2& q4Position);
44     static AliMpPlane* Create(AliMpPlaneType type);
45     
46     // methods
47     const AliMpSectorPosition* SectorPosition(const AliMpIntPair& scale) const;
48
49     // get methods
50     const AliMpSector*   GetFrontSector() const;
51     const AliMpSector*   GetBackSector() const;
52     Int_t GetNofSectorPositions() const;
53     AliMpSectorPosition* GetSectorPosition(Int_t i) const;
54
55   private:
56     // data members    
57     const AliMpSector*    fkFrontSector;    // front sector in the 1st quadrant
58     const AliMpSector*    fkBackSector;     // back sector in the 1st quadrant
59     SectorPositionVector  fSectorPositions; // sector positions
60
61   ClassDef(AliMpPlane,1)  //Plane
62 };
63
64 // inline functions
65
66 inline const AliMpSector* AliMpPlane::GetFrontSector() const
67 { return fkFrontSector; }
68
69 inline const AliMpSector* AliMpPlane::GetBackSector() const
70 { return fkBackSector; }
71
72 #endif //ALI_MP_PLANE_H
73