// $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);
-
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,
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
ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
};