]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONPadStatusMapMaker.h
SensorThickness was defined twice. Set inner chip thickness to 250mum to bypass bug...
[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
0045b488 42 void RefreshRejectProbabilities();
43
2c780493 44private:
86e9b40d 45 /// Not implemented
2c780493 46 AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&);
86e9b40d 47 /// Not implemented
2c780493 48 AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&);
49
50private:
49e396d9 51
52 AliMUONVCalibParam* ComputeStatusMap(Int_t detElemId, Int_t manuId) const;
2c780493 53
54private:
49e396d9 55
56 static Int_t fgkSelfDead; //!< status bit map to tell a pad is bad
5eeebd4b 57
86e9b40d 58 /// Bit numbers
2c780493 59 enum EBitNumbers
60 {
61 kLeftBottomBit = 6,
62 kLeftBit = 7,
63 kLeftTopBit = 8,
64 kBottomBit = 11,
65 kCenterBit = 12,
66 kTopBit = 13,
67 kRightBottomBit = 16,
68 kRightBit = 17,
69 kRightTopBit = 18
70 };
49e396d9 71
72dae9ff 72 const AliMUONPadStatusMaker& fkStatusMaker; //!< to access pad statuses
49e396d9 73 Int_t fMask; //!< mask to be tested
74 mutable AliMUONVStore* fStatusMap; //!< status map
0045b488 75 AliMUONVStore* fRejectProbabilities; //!< reject probabilities (channel based, computed once per run)
76 AliMUONVStore* fRejectList; //!< reject list (which channels should be rejected, might change event-by-event for simulations)
b9bd355c 77 Bool_t fComputeOnDemand; //!< whether we authorize to compute things on demand or not
2c780493 78
79 ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
80};
81
82#endif