X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONPadStatusMapMaker.h;h=3a516425baecb0ec81923d37af5ecec9257f06d1;hb=d54220744f069bbcc51eb544f82a2c410fc9c0d3;hp=160daf6852c4878013e2f1d162006ea0b786a682;hpb=2c7804935eaaa51cf9b3016817937738ba974ca7;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONPadStatusMapMaker.h b/MUON/AliMUONPadStatusMapMaker.h index 160daf6852c..3a516425bae 100644 --- a/MUON/AliMUONPadStatusMapMaker.h +++ b/MUON/AliMUONPadStatusMapMaker.h @@ -6,54 +6,56 @@ // $Id$ -/// \ingroup +/// \ingroup rec /// \class AliMUONPadStatusMapMaker /// \brief Convert a pad status container into a pad status *map* container /// -/// \author Laurent Aphecetche +// Author Laurent Aphecetche #ifndef ROOT_TObject # include "TObject.h" #endif -class AliMUONV2DStore; -class AliMpPad; -class TObjArray; -class AliMpVSegmentation; -class TVector2; -class TStopwatch; +class AliMUONPadStatusMaker; +class AliMUONVCalibParam; +class AliMUONVStore; class AliMUONPadStatusMapMaker : public TObject { public: - AliMUONPadStatusMapMaker(); + AliMUONPadStatusMapMaker(const AliMUONPadStatusMaker& padStatusMaker, + Int_t mask, + Bool_t deferredInitialization=kTRUE); virtual ~AliMUONPadStatusMapMaker(); + /** Get access to internal status map store (for debug only, as it may not be complete, + depending on whether you've already called StatusMap() for all possible de,manu,channel + combinations or not... + */ + AliMUONVStore* StatusMap() const { return fStatusMap; } + + Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const; + + /// Return status bit map to tell a pad is bad static Int_t SelfDeadMask() { return fgkSelfDead; } - AliMUONV2DStore* MakePadStatusMap(const AliMUONV2DStore& status, - Int_t mask); - + void RefreshRejectProbabilities(); + private: + /// Not implemented AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&); + /// Not implemented AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&); private: - Int_t BitNumber(const AliMpPad& centerPad, const AliMpPad& testPad) const; - - Int_t ComputeStatusMap(const TObjArray& neighbours, Int_t detElemId) const; - - Int_t GetPadStatus(Int_t detElemId, const AliMpPad& pad) const; - - Bool_t IsValid(const AliMpPad& pad, const TVector2& shift) const; + AliMUONVCalibParam* ComputeStatusMap(Int_t detElemId, Int_t manuId) const; private: - static Int_t fgkSelfDead; //!< status bit map to tell a pad is bad - const AliMUONV2DStore* fStatus; //!< status store - Int_t fMask; //!< mask to be tested - const AliMpVSegmentation* fSegmentation; //!< segmentation of current de + static Int_t fgkSelfDead; //!< status bit map to tell a pad is bad + + /// Bit numbers enum EBitNumbers { kLeftBottomBit = 6, @@ -67,7 +69,12 @@ private: kRightTopBit = 18 }; - TStopwatch* fTimerComputeStatusMap; //!< to time the ComputeStatusMap() method + const AliMUONPadStatusMaker& fkStatusMaker; //!< to access pad statuses + Int_t fMask; //!< mask to be tested + mutable AliMUONVStore* fStatusMap; //!< status map + AliMUONVStore* fRejectProbabilities; //!< reject probabilities (channel based, computed once per run) + AliMUONVStore* fRejectList; //!< reject list (which channels should be rejected, might change event-by-event for simulations) + Bool_t fComputeOnDemand; //!< whether we authorize to compute things on demand or not ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker };