]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/MUONmapping/AliMpVSegmentation.h
Fixes for object target dependencies
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpVSegmentation.h
CommitLineData
6e97fbb8 1
2
dee1d5f1 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
5f91c9e8 6// $Id$
13985652 7// $MpId: AliMpVSegmentation.h,v 1.12 2006/05/24 13:58:07 ivana Exp $
dee1d5f1 8
9/// \ingroup basic
10/// \class AliMpVSegmentation
11/// \brief The abstract base class for the segmentation.
12///
13/// Provides methods related to pads:
14/// conversion between pad indices, pad location, pad position;
15/// finding pad neighbour.
16///
c49cb542 17/// \author David Guez, Ivana Hrivnacova, IPN Orsay;
18/// Laurent Aphecetche, SUBATECH
5f91c9e8 19
20#ifndef ALI_MP_V_SEGMENTATION_H
21#define ALI_MP_V_SEGMENTATION_H
22
23#include <TObject.h>
5f91c9e8 24
5f91c9e8 25#include "AliMpPad.h"
6914e59d 26#include "AliMpPlaneType.h"
f3ed9a44 27#include "AliMpStationType.h"
2998a151 28
5f91c9e8 29class AliMpVPadIterator;
2998a151 30class AliMpArea;
3635f34f 31class AliMpMotifPosition;
5f91c9e8 32
2a7ea2e6 33class TArrayI;
c49cb542 34class TObjArray;
2a7ea2e6 35
5f91c9e8 36class AliMpVSegmentation : public TObject
37{
38 public:
39 AliMpVSegmentation();
40 virtual ~AliMpVSegmentation();
41
3635f34f 42 //
43 // methods
44 //
45
c49cb542 46 // factory methods
f5671fc3 47 /// Create iterator over pads in the given area
5f91c9e8 48 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const = 0;
f5671fc3 49
c49cb542 50 /// Create a pad iterator over the whole area
51 virtual AliMpVPadIterator* CreateIterator() const = 0;
52
f5671fc3 53 /// Fill the array with the pads that are neighbours of pad. Returns
54 /// the number of neighbours.
c49cb542 55 virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
56 Bool_t includeSelf=kFALSE,
57 Bool_t includeVoid=kFALSE) const = 0;
5f91c9e8 58
f5671fc3 59 /// Find pad by location
168e9c4d 60 virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel,
61 Bool_t warning = true) const = 0;
f5671fc3 62 /// Find pad by indices
168e9c4d 63 virtual AliMpPad PadByIndices (Int_t ix, Int_t iy,
8be59ff4 64 Bool_t warning = true) const = 0;
f5671fc3 65 /// Find pad by position
6e97fbb8 66 virtual AliMpPad PadByPosition(Double_t x, Double_t y,
8be59ff4 67 Bool_t warning = true) const = 0;
3635f34f 68 /// Return true if the pad with given indices exists.
69 /// Compared with the PadByIndices method, this one can generally be implemented
70 /// faster, as one does not have to create an AliMpPad object...
168e9c4d 71 virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const;
3635f34f 72
73 /// Return true if the pad with given location exists
168e9c4d 74 virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const;
3635f34f 75
f5671fc3 76 /// Return maximum pad index in X direction
bd984e15 77 virtual Int_t MaxPadIndexX() const = 0;
f5671fc3 78 /// Return maximum pad index in Y direction
bd984e15 79 virtual Int_t MaxPadIndexY() const = 0;
f5671fc3 80 /// Return the number of pads in the detection element
bd984e15 81 virtual Int_t NofPads() const = 0;
580c28fd 82
f5671fc3 83 /// Fill the given array with the electronic card IDs
6914e59d 84 virtual void GetAllElectronicCardIDs(TArrayI& ecn) const = 0;
85
3635f34f 86 /// Get the number of electronic card IDs
87 virtual Int_t GetNofElectronicCards() const = 0;
88
89 /// Whether or not we have a given manu
90 virtual Bool_t HasMotifPosition(Int_t manuId) const = 0;
91
92 /// Return the position of a given manu (aka motifPosition)
93 virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const = 0;
94
f5671fc3 95 /// Return the plane type
cddd101e 96 virtual AliMp::PlaneType PlaneType() const = 0;
6914e59d 97
f3ed9a44 98 /// Return the station type
99 virtual AliMp::StationType StationType() const = 0;
100
6e97fbb8 101 /// Return the x half-sizes of the detection element
102 virtual Double_t GetDimensionX() const = 0;
103 /// Return the y half-sizes of the detection element
104 virtual Double_t GetDimensionY() const = 0;
6914e59d 105
6e97fbb8 106 /// Return the x position of the origin of the detection element
107 virtual Double_t GetPositionX() const = 0;
108 /// Return the y position of the origin of the detection element
109 virtual Double_t GetPositionY() const = 0;
5f91c9e8 110
168e9c4d 111
5f91c9e8 112 ClassDef(AliMpVSegmentation,1) // Segmentation
113};
114
115#endif //ALI_MP_V_SEGMENTATION_H
116