/// \class AliMUONDigitCalibrator
/// \brief Class to calibrate the digits
///
-/// \author Laurent Aphecetche
+// Author Laurent Aphecetche
#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 AliMUONV2DStore;
+class AliMUONVStore;
+class AliMUONVDigitStore;
+class AliMUONVDigit;
+class AliMUONPadStatusMaker;
+class AliMUONPadStatusMapMaker;
-class AliMUONDigitCalibrator : public TTask
+class AliMUONDigitCalibrator : public TObject
{
public:
- AliMUONDigitCalibrator(AliMUONData* data,
- AliMUONCalibrationData* calib,
- Bool_t createAndUseStatusMap=kTRUE);
+ AliMUONDigitCalibrator(const AliMUONCalibrationData& calib, const char* calibMode="NOGAIN");
+
virtual ~AliMUONDigitCalibrator();
- virtual void Exec(Option_t*);
-
+ virtual void Calibrate(AliMUONVDigitStore& digitStore);
+
private:
+ /// Not implemented
AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
+ /// Not implemented
AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
- AliMUONData* fData; //!< MUON data
- AliMUONCalibrationData* fCalibrationData; //!< Calibration data
- AliMUONV2DStore* fStatusMap; //!< Channel status map
+ virtual void CalibrateDigit(AliMUONVDigit& digit);
+
+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,2) // Calibrate raw digit
+ ClassDef(AliMUONDigitCalibrator,5) // Calibrate raw digit
};
#endif