AliMpReader splitted into AliMpMotifReader and AliMpSectorReader
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVSegmentation.h
CommitLineData
5f91c9e8 1// $Id$
2// Category: basic
3//
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.
10//
11// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
12
13#ifndef ALI_MP_V_SEGMENTATION_H
14#define ALI_MP_V_SEGMENTATION_H
15
16#include <TObject.h>
5f91c9e8 17
5f91c9e8 18#include "AliMpPadPair.h"
19#include "AliMpPad.h"
2998a151 20
21class TVector2;
5f91c9e8 22
23class AliMpVPadIterator;
2998a151 24class AliMpIntPair;
25class AliMpArea;
5f91c9e8 26
27class AliMpVSegmentation : public TObject
28{
29 public:
30 AliMpVSegmentation();
31 virtual ~AliMpVSegmentation();
32
33 // factory method
34 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const = 0;
35
36 // methods
37 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
38 Bool_t warning) const = 0;
39 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
40 Bool_t warning) const = 0;
41 virtual AliMpPad PadByPosition(const TVector2& position,
42 Bool_t warning) const = 0;
43
44 virtual AliMpPadPair PadsUp(const AliMpPad& pad) const;
45 virtual AliMpPadPair PadsDown(const AliMpPad& pad) const;
46 virtual AliMpPadPair PadsLeft(const AliMpPad& pad) const;
47 virtual AliMpPadPair PadsRight(const AliMpPad& pad) const;
48
580c28fd 49 virtual Int_t MaxPadIndexX() = 0;
50 virtual Int_t MaxPadIndexY() = 0;
51
5f91c9e8 52 virtual Bool_t HasPad(const AliMpIntPair& indices) const = 0;
53
54 private:
55 // methods
56 AliMpPadPair FindPads(const TVector2& position1,
57 const TVector2& position2) const;
58
59 ClassDef(AliMpVSegmentation,1) // Segmentation
60};
61
62#endif //ALI_MP_V_SEGMENTATION_H
63