4 // Class AliMpVSegmentation
5 // ------------------------
6 // The abstract base class for the segmentation.
7 // Provides methods related to pads:
8 // conversion between pad indices, pad location, pad position;
9 // finding pad neighbour.
11 // Authors: David Guez, Ivana Hrivnacova; IPN Orsay
13 #ifndef ALI_MP_V_SEGMENTATION_H
14 #define ALI_MP_V_SEGMENTATION_H
19 #include "AliMpIntPair.h"
20 #include "AliMpPadPair.h"
22 #include "AliMpArea.h"
24 class AliMpVPadIterator;
26 class AliMpVSegmentation : public TObject
30 virtual ~AliMpVSegmentation();
33 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const = 0;
36 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
37 Bool_t warning) const = 0;
38 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
39 Bool_t warning) const = 0;
40 virtual AliMpPad PadByPosition(const TVector2& position,
41 Bool_t warning) const = 0;
43 virtual AliMpPadPair PadsUp(const AliMpPad& pad) const;
44 virtual AliMpPadPair PadsDown(const AliMpPad& pad) const;
45 virtual AliMpPadPair PadsLeft(const AliMpPad& pad) const;
46 virtual AliMpPadPair PadsRight(const AliMpPad& pad) const;
48 virtual Bool_t HasPad(const AliMpIntPair& indices) const = 0;
52 AliMpPadPair FindPads(const TVector2& position1,
53 const TVector2& position2) const;
55 ClassDef(AliMpVSegmentation,1) // Segmentation
58 #endif //ALI_MP_V_SEGMENTATION_H