]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/MUONmapping/AliMpFastSegmentation.h
MUON + CheckCompiler
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpFastSegmentation.h
CommitLineData
3dfcfe77 1#ifndef ALIMPFASTSEGMENTATION_H
2#define ALIMPFASTSEGMENTATION_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup management
10/// \class AliMpFastSegmentation
11/// \brief Fast version of AliMpVSegmentation
12///
13// author Laurent Aphecetche
14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18
19#ifndef ALI_MP_V_SEGMENTATION_H
20# include "AliMpVSegmentation.h"
21#endif
22
23#ifndef ROOT_TObjArray
24# include "TObjArray.h"
25#endif
26
27#ifndef ROOT_TExMap
28# include "TExMap.h"
29#endif
30
3dfcfe77 31class AliMpMotifPosition;
32
33class AliMpFastSegmentation : public AliMpVSegmentation
34{
35public:
36 AliMpFastSegmentation(AliMpVSegmentation* seg);
37 virtual ~AliMpFastSegmentation();
38
39 virtual AliMpVPadIterator* CreateIterator(const AliMpArea& area) const;
40 virtual AliMpVPadIterator* CreateIterator() const;
41
42 virtual Int_t GetNeighbours(const AliMpPad& pad, TObjArray& neighbours,
43 Bool_t includeSelf=kFALSE,
44 Bool_t includeVoid=kFALSE) const;
45
168e9c4d 46 virtual Bool_t HasPadByIndices(Int_t ix, Int_t iy) const;
47 virtual Bool_t HasPadByLocation(Int_t manuId, Int_t manuChannel) const;
3dfcfe77 48
168e9c4d 49 virtual AliMpPad PadByLocation(Int_t manuId, Int_t manuChannel, Bool_t warning = true) const;
50 virtual AliMpPad PadByIndices (Int_t ix, Int_t iy, Bool_t warning = true) const;
6e97fbb8 51 virtual AliMpPad PadByPosition(Double_t x, Double_t y, Bool_t warning = true) const;
3dfcfe77 52
53 virtual Int_t MaxPadIndexX() const;
54 virtual Int_t MaxPadIndexY() const;
55 virtual Int_t NofPads() const;
56
57 virtual void GetAllElectronicCardIDs(TArrayI& ecn) const;
58
59 virtual Int_t GetNofElectronicCards() const;
60
61 virtual AliMp::PlaneType PlaneType() const;
62
6e97fbb8 63 virtual Double_t GetDimensionX() const;
64 virtual Double_t GetDimensionY() const;
3dfcfe77 65
6e97fbb8 66 virtual Double_t GetPositionX() const;
67 virtual Double_t GetPositionY() const;
3dfcfe77 68
69 virtual AliMpMotifPosition* MotifPosition(Int_t manuId) const;
70
71 virtual Bool_t HasMotifPosition(Int_t manuId) const;
72
73 virtual void Print(Option_t* opt="") const;
74
75 /// Return helper class
76 AliMpVSegmentation* GetHelper() const { return fHelper; }
77
78 /// Return segmentation station type
79 AliMp::StationType StationType() const { return fHelper->StationType(); }
80
81private:
cddcc1f3 82 /// Not implemented
3dfcfe77 83 AliMpFastSegmentation(const AliMpFastSegmentation& rhs);
cddcc1f3 84 /// Not implemented
3dfcfe77 85 AliMpFastSegmentation& operator=(const AliMpFastSegmentation& rhs);
86
87 virtual AliMpMotifPosition* InternalMotifPosition(Int_t index) const;
88
89private:
90 AliMpVSegmentation* fHelper; ///< helper class (owner)
91 TObjArray fMotifPositions; ///< array of AliMpMotifPositions (not owner)
92 mutable TExMap fIxIy; ///< map of (ix,iy) -> index in array above
93 mutable TExMap fManuId; ///< map of (manuid) -> index in array above
6e97fbb8 94 Double_t fPositionX; ///< to compute pad positions
95 Double_t fPositionY; ///< to compute pad positions
96
97 ClassDef(AliMpFastSegmentation,2) // Variant implementation for AliMpVSegmentation
3dfcfe77 98};
99
100#endif