4 // Class AliMpPlaneSegmentation
5 // ----------------------------
6 // Class describing the segmentation of the plane.
8 // Transformation of pad characteristics according to sectors:
10 // I. ( posId, Guassi ), ( i, j), ( x, y) II. | I.
11 // II. ( posId', Guassi'), (-i, j), (-x, y) _____ | ____
12 // III. (-posId, Guassi), (-i,-j), (-x,-y) |
13 // IV. (-posId', Guassi'), ( i,-j), ( x,-y) III. | IV.
15 // Where (posId', Guassi') is the location of the pad
16 // in the clipped sector.
18 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
20 #ifndef ALI_MP_PLANE_SEGMENTATION_H
21 #define ALI_MP_PLANE_SEGMENTATION_H
25 #include "AliMpPlaneTypes.h"
26 #include "AliMpVSegmentation.h"
27 #include "AliMpTransformer.h"
28 #include "AliMpIntPair.h"
32 class AliMpSectorSegmentation;
33 class AliMpVPadIterator;
35 class AliMpPlaneSegmentation : public AliMpVSegmentation
38 AliMpPlaneSegmentation(const AliMpPlane* plane);
39 AliMpPlaneSegmentation();
40 virtual ~AliMpPlaneSegmentation();
43 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
46 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
47 Bool_t warning = kTRUE) const;
48 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
49 Bool_t warning = kTRUE) const;
50 virtual AliMpPad PadByPosition(const TVector2& position,
51 Bool_t warning = kTRUE) const;
53 virtual Int_t Zone(const AliMpPad& pad, Bool_t warning = kTRUE) const;
54 virtual TVector2 PadDimensions(Int_t zone, Bool_t warning = kTRUE) const;
56 virtual Bool_t HasPad(const AliMpIntPair& indices) const;
57 Bool_t CircleTest(const AliMpIntPair& indices) const;
60 Int_t GetNofTransformers() const;
61 AliMpTransformer* GetTransformer(Int_t i) const;
62 AliMpSectorSegmentation* GetSectorSegmentation(
63 const AliMpIntPair& scale) const;
67 const AliMpTransformer* GetTransformer(const AliMpIntPair& scale) const;
68 AliMpIntPair GetScale(const AliMpIntPair& pair) const;
69 AliMpIntPair GetScale(const TVector2& vector) const;
70 AliMpIntPair GetLocationScale(const AliMpIntPair& location) const;
71 AliMpSectorSegmentation* GetSectorSegmentation(Int_t motifPositionId) const;
74 const AliMpPlane* fkPlane; // plane
75 AliMpSectorSegmentation* fFrontSectorSegmentation;// front sector segmentation
76 AliMpSectorSegmentation* fBackSectorSegmentation; // back sector segmentation
77 TransformerVector fTransformers; // transformer for each quadrant
79 ClassDef(AliMpPlaneSegmentation,1) // Plane segmentation
82 #endif //ALI_MP_PLANE_SEGMENTATION_H