]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpVSegmentation.h
Code for MUON Station1 (I.Hrivnacova)
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVSegmentation.h
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>
17 #include <TVector2.h>
18
19 #include "AliMpIntPair.h"
20 #include "AliMpPadPair.h"
21 #include "AliMpPad.h"
22 #include "AliMpArea.h"
23
24 class AliMpVPadIterator;
25
26 class AliMpVSegmentation : public TObject
27 {
28   public:
29     AliMpVSegmentation();
30     virtual ~AliMpVSegmentation();
31   
32     // factory method 
33     virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const = 0;
34
35     // methods  
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;
42
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;
47
48     virtual Bool_t HasPad(const AliMpIntPair& indices) const = 0;
49     
50   private:  
51     // methods
52     AliMpPadPair FindPads(const TVector2& position1, 
53                           const TVector2& position2) const;
54
55   ClassDef(AliMpVSegmentation,1)  // Segmentation
56 };
57
58 #endif //ALI_MP_V_SEGMENTATION_H
59