]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONPadStatusMapMaker.h
Correction for actual vertex position implemented
[u/mrichter/AliRoot.git] / MUON / AliMUONPadStatusMapMaker.h
CommitLineData
2c780493 1#ifndef ALIMUONPADSTATUSMAPMAKER_H
2#define ALIMUONPADSTATUSMAPMAKER_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
78649106 9/// \ingroup rec
2c780493 10/// \class AliMUONPadStatusMapMaker
11/// \brief Convert a pad status container into a pad status *map* container
12///
78649106 13// Author Laurent Aphecetche
2c780493 14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18
19class AliMUONV2DStore;
20class AliMpPad;
21class TObjArray;
22class AliMpVSegmentation;
23class TVector2;
24class TStopwatch;
25
26class AliMUONPadStatusMapMaker : public TObject
27{
28public:
29 AliMUONPadStatusMapMaker();
30 virtual ~AliMUONPadStatusMapMaker();
31
86e9b40d 32 /// Return status bit map to tell a pad is bad
2c780493 33 static Int_t SelfDeadMask() { return fgkSelfDead; }
34
35 AliMUONV2DStore* MakePadStatusMap(const AliMUONV2DStore& status,
36 Int_t mask);
4f8ed2e4 37
38 static AliMUONV2DStore* MakeEmptyPadStatusMap();
39
2c780493 40
41private:
86e9b40d 42 /// Not implemented
2c780493 43 AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&);
86e9b40d 44 /// Not implemented
2c780493 45 AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&);
46
47private:
2c780493 48 Int_t ComputeStatusMap(const TObjArray& neighbours, Int_t detElemId) const;
49
50 Int_t GetPadStatus(Int_t detElemId, const AliMpPad& pad) const;
51
52 Bool_t IsValid(const AliMpPad& pad, const TVector2& shift) const;
53
54private:
55 static Int_t fgkSelfDead; //!< status bit map to tell a pad is bad
56 const AliMUONV2DStore* fStatus; //!< status store
57 Int_t fMask; //!< mask to be tested
58 const AliMpVSegmentation* fSegmentation; //!< segmentation of current de
59
86e9b40d 60 /// Bit numbers
2c780493 61 enum EBitNumbers
62 {
63 kLeftBottomBit = 6,
64 kLeftBit = 7,
65 kLeftTopBit = 8,
66 kBottomBit = 11,
67 kCenterBit = 12,
68 kTopBit = 13,
69 kRightBottomBit = 16,
70 kRightBit = 17,
71 kRightTopBit = 18
72 };
73
74 TStopwatch* fTimerComputeStatusMap; //!< to time the ComputeStatusMap() method
75
76 ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
77};
78
79#endif