]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONPadStatusMapMaker.h
Introduction of AliTRDLeastSquare
[u/mrichter/AliRoot.git] / MUON / AliMUONPadStatusMapMaker.h
index bc9099dd1b29855b814f9c4159dd1758b6b98ae3..5a6b5378bd85314a8d560329a32910d5afe657d0 100644 (file)
 #  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);
-  
-  static AliMUONV2DStore* MakeEmptyPadStatusMap();
-
-
 private:
   /// Not implemented
   AliMUONPadStatusMapMaker(const AliMUONPadStatusMapMaker&);
@@ -45,18 +46,13 @@ private:
   AliMUONPadStatusMapMaker& operator=(const AliMUONPadStatusMapMaker&);
 
 private:
-  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
   {
@@ -71,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
 };