Changes to speed up creating of status and status map (Laurent)
[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
49e396d9 19class AliMUONPadStatusMaker;
5eeebd4b 20class AliMUONVCalibParam;
49e396d9 21class AliMUONVStore;
2c780493 22
23class AliMUONPadStatusMapMaker : public TObject
24{
25public:
49e396d9 26 AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker,
27 Int_t mask,
28 Bool_t deferredInitialization=kTRUE);
2c780493 29 virtual ~AliMUONPadStatusMapMaker();
30
49e396d9 31 /** Get access to internal status map store (for debug only, as it may not be complete,
32 depending on whether you've already called StatusMap() for all possible de,manu,channel
33 combinations or not...
34 */
35 AliMUONVStore* StatusMap() const { return fStatusMap; }
36
37 Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
38
86e9b40d 39 /// Return status bit map to tell a pad is bad
2c780493 40 static Int_t SelfDeadMask() { return fgkSelfDead; }
41
2c780493 42private:
86e9b40d 43 /// Not implemented
2c780493 44 AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&);
86e9b40d 45 /// Not implemented
2c780493 46 AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&);
47
48private:
49e396d9 49
50 AliMUONVCalibParam* ComputeStatusMap(Int_t detElemId, Int_t manuId) const;
2c780493 51
52private:
49e396d9 53
54 static Int_t fgkSelfDead; //!< status bit map to tell a pad is bad
5eeebd4b 55
86e9b40d 56 /// Bit numbers
2c780493 57 enum EBitNumbers
58 {
59 kLeftBottomBit = 6,
60 kLeftBit = 7,
61 kLeftTopBit = 8,
62 kBottomBit = 11,
63 kCenterBit = 12,
64 kTopBit = 13,
65 kRightBottomBit = 16,
66 kRightBit = 17,
67 kRightTopBit = 18
68 };
49e396d9 69
70 const AliMUONPadStatusMaker& fStatusMaker; //!< to access pad statuses
71 Int_t fMask; //!< mask to be tested
72 mutable AliMUONVStore* fStatusMap; //!< status map
2c780493 73
74 ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
75};
76
77#endif