Code for MUON Station1 (I.Hrivnacova)
[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>
17#include <TVector2.h>
18
19#include "AliMpIntPair.h"
20#include "AliMpPadPair.h"
21#include "AliMpPad.h"
22#include "AliMpArea.h"
23
24class AliMpVPadIterator;
25
26class 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