Line data Source code
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 :
9 : /// \ingroup rec
10 : /// \class AliMUONPadStatusMapMaker
11 : /// \brief Convert a pad status container into a pad status *map* container
12 : ///
13 : // Author Laurent Aphecetche
14 :
15 : #ifndef ROOT_TObject
16 : # include "TObject.h"
17 : #endif
18 :
19 : class AliMUONPadStatusMaker;
20 : class AliMUONVCalibParam;
21 : class AliMUONVStore;
22 :
23 : class AliMUONPadStatusMapMaker : public TObject
24 : {
25 : public:
26 : AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker,
27 : Int_t mask,
28 : Bool_t deferredInitialization=kTRUE);
29 : virtual ~AliMUONPadStatusMapMaker();
30 :
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 0 : AliMUONVStore* StatusMap() const { return fStatusMap; }
36 :
37 : Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
38 :
39 : /// Return status bit map to tell a pad is bad
40 5664 : static Int_t SelfDeadMask() { return fgkSelfDead; }
41 :
42 : void RefreshRejectProbabilities();
43 :
44 : private:
45 : /// Not implemented
46 : AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&);
47 : /// Not implemented
48 : AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&);
49 :
50 : private:
51 :
52 : AliMUONVCalibParam* ComputeStatusMap(Int_t detElemId, Int_t manuId) const;
53 :
54 : private:
55 :
56 : static Int_t fgkSelfDead; //!<! status bit map to tell a pad is bad
57 :
58 : /// Bit numbers
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 : };
71 :
72 : const AliMUONPadStatusMaker& fkStatusMaker; //!<! to access pad statuses
73 : Int_t fMask; //!<! mask to be tested
74 : mutable AliMUONVStore* fStatusMap; //!<! status map
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)
77 : Bool_t fComputeOnDemand; //!<! whether we authorize to compute things on demand or not
78 :
79 874 : ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
80 : };
81 :
82 : #endif
|