In AliMUONTriggerQADataMakerRec:
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitCalibrator.h
CommitLineData
d99769c3 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2* See cxx source for full Copyright notice */
3
4// $Id$
5
6/// \ingroup rec
7/// \class AliMUONDigitCalibrator
8/// \brief Class to calibrate the digits
9///
78649106 10// Author Laurent Aphecetche
d99769c3 11
d1c20d08 12#ifndef ALIMUONDIGITCALIBRATOR_H
13#define ALIMUONDIGITCALIBRATOR_H
d99769c3 14
42825ed9 15#ifndef ROOT_TObject
16#include "TObject.h"
d99769c3 17#endif
18
19class AliMUONCalibrationData;
fe6ed686 20class AliMUONLogger;
42825ed9 21class AliMUONVStore;
22class AliMUONVDigitStore;
23class AliMUONVDigit;
49e396d9 24class AliMUONPadStatusMaker;
25class AliMUONPadStatusMapMaker;
de487b6e 26class AliMUONRecoParam;
861d6ce8 27class TExMap;
d99769c3 28
42825ed9 29class AliMUONDigitCalibrator : public TObject
d99769c3 30{
31public:
de487b6e 32
b9bd355c 33 AliMUONDigitCalibrator(Int_t runNumber, const char* calibMode="NOGAIN");
34
de487b6e 35 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
36 const AliMUONRecoParam* recoParams,
37 const char* calibMode="NOGAIN");
38
39 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
40 const char* calibMode="NOGAIN");
42825ed9 41
d99769c3 42 virtual ~AliMUONDigitCalibrator();
43
42825ed9 44 virtual void Calibrate(AliMUONVDigitStore& digitStore);
f51d54cb 45
de487b6e 46 Bool_t IsValidDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
47 Int_t* statusMap=0x0) const;
48
49 Float_t CalibrateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
8f29b706 50 Float_t adc, Float_t nsigmas=-1,
de487b6e 51 Bool_t* isSaturated=0x0) const;
52
53 Int_t PadStatus(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
54
55 Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
42825ed9 56
de487b6e 57private:
58
59 /// Not implemented
60 AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
61 /// Not implemented
62 AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
63
64 void Ctor(const char* calibMode,
65 const AliMUONCalibrationData& calib,
b9bd355c 66 const AliMUONRecoParam* recoParams,
67 Bool_t deferredInitialization=kTRUE);
de487b6e 68
42825ed9 69private:
de487b6e 70 AliMUONLogger* fLogger; //!< to log repeated messages
71 AliMUONPadStatusMaker* fStatusMaker; //!< to build pad statuses
72 AliMUONPadStatusMapMaker* fStatusMapMaker; //!< to build status map
73 AliMUONVStore* fPedestals; //!< pedestal values
74 AliMUONVStore* fGains; //!< gain values
75 Int_t fApplyGains; //!< whether we should apply gains or not, capa or not...
76 AliMUONVStore* fCapacitances; //!< capa values
77 Double_t fNumberOfBadPads; //!< # of times we've rejected a bad pad
78 Double_t fNumberOfPads; //!< # of pads we've seen
170f4046 79 Double_t fChargeSigmaCut; //!< number of sigmas to cut on
411a502a 80 UInt_t fMask; //!< mask used to cut bad channels
170f4046 81
de487b6e 82 static const Int_t fgkNoGain; //!< do not apply gain calib at all
83 static const Int_t fgkGainConstantCapa; //!< apply gain (from OCDB) with constant capa
84 static const Int_t fgkGain; //!< apply gain and capa (from OCDB)
66cdf5b3 85 static const Int_t fgkInjectionGain; //!< apply injection gain (from OCDB)
de487b6e 86
411a502a 87 ClassDef(AliMUONDigitCalibrator,10) // Calibrate raw digit
d99769c3 88};
89
90#endif