1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONDigitCalibrator
8 /// \brief Class to calibrate the digits
10 // Author Laurent Aphecetche
12 #ifndef ALIMUONDIGITCALIBRATOR_H
13 #define ALIMUONDIGITCALIBRATOR_H
19 class AliMUONCalibrationData;
22 class AliMUONVDigitStore;
24 class AliMUONPadStatusMaker;
25 class AliMUONPadStatusMapMaker;
26 class AliMUONRecoParam;
29 class AliMUONDigitCalibrator : public TObject
33 AliMUONDigitCalibrator(Int_t runNumber);
35 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
36 const AliMUONRecoParam* recoParams);
38 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib, int b);
40 virtual ~AliMUONDigitCalibrator();
42 virtual void Calibrate(AliMUONVDigitStore& digitStore);
44 Bool_t IsValidDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
45 Int_t* statusMap=0x0) const;
47 Float_t CalibrateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
48 Float_t adc, Float_t nsigmas=-1,
49 Bool_t* isSaturated=0x0) const;
51 Int_t PadStatus(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
53 Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
58 AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
60 AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
62 void Ctor(const AliMUONCalibrationData& calib,
63 const AliMUONRecoParam* recoParams,
64 Bool_t deferredInitialization=kTRUE);
67 AliMUONLogger* fLogger; //!< to log repeated messages
68 AliMUONPadStatusMaker* fStatusMaker; //!< to build pad statuses
69 AliMUONPadStatusMapMaker* fStatusMapMaker; //!< to build status map
70 AliMUONVStore* fPedestals; //!< pedestal values
71 AliMUONVStore* fGains; //!< gain values
72 Int_t fApplyGains; //!< whether we should apply gains or not, capa or not...
73 AliMUONVStore* fCapacitances; //!< capa values
74 Double_t fNumberOfBadPads; //!< # of times we've rejected a bad pad
75 Double_t fNumberOfPads; //!< # of pads we've seen
76 Double_t fChargeSigmaCut; //!< number of sigmas to cut on
77 UInt_t fMask; //!< mask used to cut bad channels
79 static const Int_t fgkNoGain; //!< do not apply gain calib at all
80 static const Int_t fgkGainConstantCapa; //!< apply gain (from OCDB) with constant capa
81 static const Int_t fgkGain; //!< apply gain and capa (from OCDB)
82 static const Int_t fgkInjectionGain; //!< apply injection gain (from OCDB)
84 ClassDef(AliMUONDigitCalibrator,10) // Calibrate raw digit