Adding new CreateIterator() and GetNeighbours() methods
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpVSegmentation.h
CommitLineData
dee1d5f1 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
5f91c9e8 4// $Id$
13985652 5// $MpId: AliMpVSegmentation.h,v 1.12 2006/05/24 13:58:07 ivana Exp $
dee1d5f1 6
7/// \ingroup basic
8/// \class AliMpVSegmentation
9/// \brief The abstract base class for the segmentation.
10///
11/// Provides methods related to pads:
12/// conversion between pad indices, pad location, pad position;
13/// finding pad neighbour.
14///
13985652 15/// \author David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 16
17#ifndef ALI_MP_V_SEGMENTATION_H
18#define ALI_MP_V_SEGMENTATION_H
19
20#include <TObject.h>
5f91c9e8 21
5f91c9e8 22#include "AliMpPadPair.h"
23#include "AliMpPad.h"
6914e59d 24#include "AliMpPlaneType.h"
2998a151 25
5f91c9e8 26class AliMpVPadIterator;
2998a151 27class AliMpIntPair;
28class AliMpArea;
5f91c9e8 29
2a7ea2e6 30class TArrayI;
31class TVector2;
32
5f91c9e8 33class AliMpVSegmentation : public TObject
34{
35 public:
36 AliMpVSegmentation();
37 virtual ~AliMpVSegmentation();
38
39 // factory method
40 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const = 0;
41
42 // methods
43 virtual AliMpPad PadByLocation(const AliMpIntPair& location,
8be59ff4 44 Bool_t warning = true) const = 0;
5f91c9e8 45 virtual AliMpPad PadByIndices (const AliMpIntPair& indices,
8be59ff4 46 Bool_t warning = true) const = 0;
5f91c9e8 47 virtual AliMpPad PadByPosition(const TVector2& position,
8be59ff4 48 Bool_t warning = true) const = 0;
5f91c9e8 49
50 virtual AliMpPadPair PadsUp(const AliMpPad& pad) const;
51 virtual AliMpPadPair PadsDown(const AliMpPad& pad) const;
52 virtual AliMpPadPair PadsLeft(const AliMpPad& pad) const;
53 virtual AliMpPadPair PadsRight(const AliMpPad& pad) const;
54
bd984e15 55 virtual Int_t MaxPadIndexX() const = 0;
56 virtual Int_t MaxPadIndexY() const = 0;
57 virtual Int_t NofPads() const = 0;
580c28fd 58
5f91c9e8 59 virtual Bool_t HasPad(const AliMpIntPair& indices) const = 0;
60
6914e59d 61 virtual void GetAllElectronicCardIDs(TArrayI& ecn) const = 0;
62
cddd101e 63 virtual AliMp::PlaneType PlaneType() const = 0;
6914e59d 64
65 /// Gives the half-sizes (in cm) of the underlying detection element.
66 virtual TVector2 Dimensions() const = 0;
67
5f91c9e8 68 private:
69 // methods
70 AliMpPadPair FindPads(const TVector2& position1,
71 const TVector2& position2) const;
72
73 ClassDef(AliMpVSegmentation,1) // Segmentation
74};
75
76#endif //ALI_MP_V_SEGMENTATION_H
77