/// \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 AliMUONLogger;
+class AliMUONVStore;
+class AliMUONVDigitStore;
+class AliMUONVDigit;
-class AliMUONDigitCalibrator : public TTask
+class AliMUONDigitCalibrator : public TObject
{
public:
- AliMUONDigitCalibrator(AliMUONData* data, AliMUONCalibrationData* calib);
+ AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
+ Bool_t createAndUseStatusMap=kTRUE);
+
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);
+
+private:
+ const AliMUONCalibrationData& fCalibrationData; //!< Calibration data
+ AliMUONVStore* fStatusMap; //!< Channel status map
+ AliMUONLogger* fLogger; //!< to log repeated messages
+
+ ClassDef(AliMUONDigitCalibrator,3) // Calibrate raw digit
};
#endif