]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPadStatusMapMaker.h
New classes for finding multiple vertices (in case of pile-up). They will be used...
[u/mrichter/AliRoot.git] / MUON / AliMUONPadStatusMapMaker.h
index 160daf6852c4878013e2f1d162006ea0b786a682..5a6b5378bd85314a8d560329a32910d5afe657d0 100644 (file)
@@ -6,54 +6,54 @@
 
 // $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,
@@ -67,7 +67,9 @@ private:
     kRightTopBit = 18
   };
   
-  TStopwatch* fTimerComputeStatusMap; //!< to time the ComputeStatusMap() method
+  const AliMUONPadStatusMaker& fStatusMaker; //!< to access pad statuses
+  Int_t fMask; //!< mask to be tested
+  mutable AliMUONVStore* fStatusMap; //!< status map
   
   ClassDef(AliMUONPadStatusMapMaker,0) // Pad status map maker
 };