]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONDigitCalibrator.h
In mapping:
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitCalibrator.h
... / ...
CommitLineData
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///
10// Author Laurent Aphecetche
11
12#ifndef ALIMUONDIGITCALIBRATOR_H
13#define ALIMUONDIGITCALIBRATOR_H
14
15#ifndef ROOT_TObject
16#include "TObject.h"
17#endif
18
19class AliMUONCalibrationData;
20class AliMUONLogger;
21class AliMUONVStore;
22class AliMUONVDigitStore;
23class AliMUONVDigit;
24class AliMUONPadStatusMaker;
25class AliMUONPadStatusMapMaker;
26class AliMUONRecoParam;
27class TExMap;
28
29class AliMUONDigitCalibrator : public TObject
30{
31public:
32
33 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
34 const AliMUONRecoParam* recoParams,
35 const char* calibMode="NOGAIN");
36
37 AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
38 const char* calibMode="NOGAIN");
39
40 virtual ~AliMUONDigitCalibrator();
41
42 virtual void Calibrate(AliMUONVDigitStore& digitStore);
43
44 Bool_t IsValidDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
45 Int_t* statusMap=0x0) const;
46
47 Float_t CalibrateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
48 Float_t adc, Float_t nsigmas,
49 Bool_t* isSaturated=0x0) const;
50
51 Int_t PadStatus(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
52
53 Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
54
55private:
56
57 /// Not implemented
58 AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
59 /// Not implemented
60 AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
61
62 void Ctor(const char* calibMode,
63 const AliMUONCalibrationData& calib,
64 const AliMUONRecoParam* recoParams);
65
66private:
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
78 static const Int_t fgkNoGain; //!< do not apply gain calib at all
79 static const Int_t fgkGainConstantCapa; //!< apply gain (from OCDB) with constant capa
80 static const Int_t fgkGain; //!< apply gain and capa (from OCDB)
81
82 ClassDef(AliMUONDigitCalibrator,9) // Calibrate raw digit
83};
84
85#endif