]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitCalibrator.h
Adding example how to submit jobs
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitCalibrator.h
index cd688651eba7eda5db03e83fe4fe3e7b84b7fb98..92010fa37b4f02c8150af9c435ad3f66fa4e6659 100644 (file)
@@ -7,35 +7,55 @@
 /// \class AliMUONDigitCalibrator
 /// \brief Class to calibrate the digits
 /// 
-/// \author Laurent Aphecetche
+//  Author Laurent Aphecetche
 
-#ifndef AliMUONDigitCalibrator_H
-#define AliMUONDigitCalibrator_H
+#ifndef ALIMUONDIGITCALIBRATOR_H
+#define ALIMUONDIGITCALIBRATOR_H
 
-#ifndef ROOT_TTask
-#include "TTask.h"
+#ifndef ROOT_TObject
+#include "TObject.h"
 #endif
 
 class AliMUONCalibrationData;
-class AliMUONData;
-
-class AliMUONDigitCalibrator : public TTask
+class AliMUONLogger;
+class AliMUONVStore;
+class AliMUONVDigitStore;
+class AliMUONVDigit;
+class AliMUONPadStatusMaker;
+class AliMUONPadStatusMapMaker;
+class TExMap;
+
+class AliMUONDigitCalibrator : public TObject
 {
 public:
-  AliMUONDigitCalibrator(AliMUONData* data, AliMUONCalibrationData* calib);
+  AliMUONDigitCalibrator(const AliMUONCalibrationData& calib, const char* calibMode="NOGAIN");
+  
   virtual ~AliMUONDigitCalibrator();
   
-  virtual void Exec(Option_t*);
-
-protected:
-  AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
-  AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
-       
+  virtual void Calibrate(AliMUONVDigitStore& digitStore);
+    
 private:    
-    AliMUONData* fData; //!
-    AliMUONCalibrationData* fCalibrationData; //!
-  
-  ClassDef(AliMUONDigitCalibrator,1) // Subtract pedestal from digit charge.
+    /// Not implemented
+    AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
+    /// Not implemented
+    AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
+
+    virtual void CalibrateDigit(AliMUONVDigit& digit, Double_t nsigmas);
+
+private:
+    AliMUONLogger* fLogger; //!< to log repeated messages
+    AliMUONPadStatusMaker* fStatusMaker; //!< to build pad statuses
+    AliMUONPadStatusMapMaker* fStatusMapMaker; //!< to build status map
+    AliMUONVStore* fPedestals; //!< pedestal values
+    AliMUONVStore* fGains; //!< gain values
+    Int_t fApplyGains; //!< whether we should apply gains or not, capa or not...
+    AliMUONVStore* fCapacitances; //!< capa values
+    
+    static const Int_t fgkNoGain; //!< do not apply gain calib at all
+    static const Int_t fgkGainConstantCapa; //!< apply gain (from OCDB) with constant capa
+    static const Int_t fgkGain; //!< apply gain and capa (from OCDB)
+    
+  ClassDef(AliMUONDigitCalibrator,7) // Calibrate raw digit
 };
 
 #endif