]>
Commit | Line | Data |
---|---|---|
a42992b7 | 1 | #ifndef ALIEMCALCALIBTIMEDEP_H |
2 | #define ALIEMCALCALIBTIMEDEP_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id: AliEMCALCalibTimeDep.h $ */ | |
8 | ||
9 | ///////////////////////////////////////////////// | |
10 | // class for EMCAL time-dependence calibration // | |
11 | ///////////////////////////////////////////////// | |
12 | ||
13 | #include "TObject.h" | |
14 | ||
15 | class AliEMCALSensorTempArray; | |
d81e6423 | 16 | class AliCaloCalibSignal; |
17 | class AliEMCALBiasAPD; | |
18 | class AliEMCALCalibMapAPD; | |
19 | class AliEMCALCalibAbs; // absolute = time-independent | |
20 | class AliEMCALCalibTimeDepCorrection; | |
a42992b7 | 21 | |
22 | class AliEMCALCalibTimeDep : public TObject { | |
23 | ||
24 | public: | |
25 | AliEMCALCalibTimeDep(); //! ctor | |
26 | AliEMCALCalibTimeDep(const AliEMCALCalibTimeDep &calibt); //! copy ctor | |
27 | AliEMCALCalibTimeDep& operator= (const AliEMCALCalibTimeDep &calibt); //! | |
28 | virtual ~AliEMCALCalibTimeDep(); //! dtor | |
621ff010 | 29 | virtual void PrintInfo() const; |
a42992b7 | 30 | |
31 | void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);//! | |
32 | ||
d81e6423 | 33 | // simple getters |
34 | Int_t GetRunNumber() const { return fRun; } // | |
35 | Int_t GetStartTime() const { return fStartTime; } // | |
36 | Int_t GetEndTime() const { return fEndTime; } // | |
37 | Double_t GetLengthOfRunInHours() const; // | |
38 | Double_t GetLengthOfRunInBins() const; // | |
39 | ||
40 | // Temperature Section | |
a42992b7 | 41 | // access pointer to the basic temperature object: AliEMCALSensorTempArray |
42 | AliEMCALSensorTempArray * GetTempArray() const { return fTempArray; } // | |
43 | ||
a42992b7 | 44 | // range of temperature readings/values during the run |
d81e6423 | 45 | Int_t ScanTemperatureInfo(); // go through the temperature info |
46 | Double_t GetMinTemp() const { return fMinTemp; } // | |
47 | Double_t GetMaxTemp() const { return fMaxTemp; } // | |
48 | UInt_t GetMinTime() const { return fMinTime; } // | |
49 | UInt_t GetMaxTime() const { return fMaxTime; } // | |
50 | Double_t GetRangeOfTempMeasureInHours() const; // | |
51 | Double_t GetRangeOfTempMeasureInDegrees() const; // | |
a42992b7 | 52 | |
53 | // basic calibration info | |
d81e6423 | 54 | Double_t GetTemperature(UInt_t timeStamp) const; // for all sensors, all SuperModules |
55 | Double_t GetTemperatureSM(int imod, UInt_t timeStamp) const; // for all sensors, in a SuperModule | |
56 | Double_t GetTemperatureSMSensor(int imod, int isens, UInt_t timeStamp) const; // for a sensor, in a SuperModule | |
57 | // End of Temperature Section | |
58 | ||
59 | // control parameters | |
60 | void SetTemperatureResolution(Double_t d) { fTemperatureResolution = d; } // value for checking at which level we care about temperature differences | |
61 | void SetTimeBinsPerHour(Int_t i) { fTimeBinsPerHour = i; } // size of the time-bins we use for corrections | |
62 | Double_t GetTemperatureResolution() const { return fTemperatureResolution; } // value for checking at which level we care about temperature differences | |
63 | Int_t GetTimeBinsPerHour() const { return fTimeBinsPerHour; } // size of the time-bins we use foc corrections | |
64 | ||
65 | // access to other pointers | |
66 | AliCaloCalibSignal * GetCalibSignal() const { return fCalibSignal; } // | |
67 | AliEMCALBiasAPD * GetBiasAPD() const { return fBiasAPD; } // | |
68 | AliEMCALCalibMapAPD * GetCalibMapAPD() const { return fCalibMapAPD; } // | |
69 | AliEMCALCalibAbs * GetCalibAbs() const { return fCalibAbs; } // | |
70 | AliEMCALCalibTimeDepCorrection * GetCalibTimeDepCorrection() const { return fCalibTimeDepCorrection; } // | |
71 | ||
72 | // storage and access of the correction info | |
73 | Int_t CalcCorrection(); // | |
74 | AliEMCALCalibTimeDepCorrection * GetTimeDepCorrection() | |
75 | const { return fCalibTimeDepCorrection; } // | |
76 | ||
77 | Double_t GetTempCoeff(Double_t IDark, Double_t M) const; // | |
a42992b7 | 78 | |
79 | private: | |
80 | ||
d81e6423 | 81 | void Reset(); // |
82 | ||
a42992b7 | 83 | void GetTemperatureInfo(); // pick up Preprocessor output |
d81e6423 | 84 | void GetCalibSignalInfo(); // pick up Preprocessor output |
85 | void GetBiasAPDInfo(); // pick up OCDB info | |
86 | void GetCalibMapAPDInfo(); // pick up OCDB info | |
87 | void GetCalibAbsInfo(); // pick up OCDB info | |
88 | ||
89 | Int_t CalcLEDCorrection(Int_t nSM, Int_t nBins); // based on LED signals, and reference photodiodes | |
90 | Int_t CalcLEDCorrectionStripBasis(Int_t nSM, Int_t nBins); // based on LED signals, and reference photodiodes | |
91 | Int_t CalcTemperatureCorrection(Int_t nSM, Int_t nBins); // based on temperetare info | |
92 | ||
a42992b7 | 93 | // |
d81e6423 | 94 | Int_t fRun; |
95 | UInt_t fStartTime; | |
96 | UInt_t fEndTime; | |
97 | // temperature stuff | |
98 | Double_t fMinTemp; | |
99 | Double_t fMaxTemp; | |
100 | UInt_t fMinTime; | |
101 | UInt_t fMaxTime; | |
a42992b7 | 102 | // |
d81e6423 | 103 | Double_t fTemperatureResolution; // value for checking at which level we care about temperature differences |
104 | Int_t fTimeBinsPerHour; // size of the time-bins we use for corrections | |
105 | ||
106 | // pointers to the different used classes | |
a42992b7 | 107 | AliEMCALSensorTempArray *fTempArray; // CDB class for temperature sensors |
d81e6423 | 108 | AliCaloCalibSignal *fCalibSignal; // |
109 | AliEMCALBiasAPD *fBiasAPD; // | |
110 | AliEMCALCalibMapAPD *fCalibMapAPD; // | |
111 | AliEMCALCalibAbs *fCalibAbs; // absolute = time-independent | |
112 | AliEMCALCalibTimeDepCorrection *fCalibTimeDepCorrection; // | |
113 | ||
a42992b7 | 114 | // |
d81e6423 | 115 | ClassDef(AliEMCALCalibTimeDep,2) // EMCAL Calibration data |
a42992b7 | 116 | }; |
117 | ||
118 | #endif |