1 #ifndef ALIEMCALCALIBTIMEDEP_H
2 #define ALIEMCALCALIBTIMEDEP_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /* $Id: AliEMCALCalibTimeDep.h $ */
9 /////////////////////////////////////////////////
10 // class for EMCAL time-dependence calibration //
11 /////////////////////////////////////////////////
15 class AliEMCALSensorTempArray;
16 class AliCaloCalibSignal;
17 class AliEMCALBiasAPD;
18 class AliEMCALCalibMapAPD;
19 class AliEMCALCalibReference;
20 class AliEMCALCalibTimeDepCorrection;
22 class AliEMCALCalibTimeDep : public TObject {
25 AliEMCALCalibTimeDep(); //! ctor
26 AliEMCALCalibTimeDep(const AliEMCALCalibTimeDep &calibt); //! copy ctor
27 AliEMCALCalibTimeDep& operator= (const AliEMCALCalibTimeDep &calibt); //!
28 virtual ~AliEMCALCalibTimeDep(); //! dtor
29 virtual void PrintInfo() const;
31 void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);//!
34 Int_t GetRunNumber() const { return fRun; } // run number
35 Int_t GetStartTime() const { return fStartTime; } // start time
36 Int_t GetEndTime() const { return fEndTime; } // end time
37 Double_t GetLengthOfRunInHours() const; // length of run
38 Double_t GetLengthOfRunInBins() const; // length of run
40 // Temperature Section
41 // access pointer to the basic temperature object: AliEMCALSensorTempArray
42 AliEMCALSensorTempArray * GetTempArray() const { return fTempArray; } // temperature array
44 // range of temperature readings/values during the run
45 Int_t ScanTemperatureInfo(); // go through the temperature info
46 Double_t GetMinTemp() const { return fMinTemp; } // min temp
47 Double_t GetMaxTemp() const { return fMaxTemp; } // max temp
48 UInt_t GetMinTime() const { return fMinTime; } // min time
49 UInt_t GetMaxTime() const { return fMaxTime; } // max time
50 Double_t GetRangeOfTempMeasureInHours() const; //!
51 Double_t GetRangeOfTempMeasureInDegrees() const; //!
53 // basic calibration info
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
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
65 void SetHighLowGainFactor(Double_t value) {fHighLowGainFactor = value;}
66 Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;}
68 // access to other pointers
69 AliCaloCalibSignal * GetCalibSignal() const { return fCalibSignal; } //
70 AliEMCALBiasAPD * GetBiasAPD() const { return fBiasAPD; } //
71 AliEMCALCalibMapAPD * GetCalibMapAPD() const { return fCalibMapAPD; } //
72 AliEMCALCalibReference * GetCalibReference() const { return fCalibReference; } //
73 AliEMCALCalibTimeDepCorrection * GetCalibTimeDepCorrection() const { return fCalibTimeDepCorrection; } //
75 // storage and access of the correction info
76 Int_t CalcCorrection(); //
77 AliEMCALCalibTimeDepCorrection * GetTimeDepCorrection()
78 const { return fCalibTimeDepCorrection; } //
80 Double_t GetTempCoeff(Double_t IDark, Double_t M) const; //
86 void GetTemperatureInfo(); // pick up Preprocessor output
87 void GetCalibSignalInfo(); // pick up Preprocessor output
88 void GetBiasAPDInfo(); // pick up OCDB info
89 void GetCalibMapAPDInfo(); // pick up OCDB info
90 void GetCalibReferenceInfo(); // pick up OCDB info
92 Int_t CalcLEDCorrection(Int_t nSM, Int_t nBins); // based on LED signals, and reference photodiodes
93 Int_t CalcLEDCorrectionStripBasis(Int_t nSM, Int_t nBins); // based on LED signals, and reference photodiodes
94 Int_t CalcTemperatureCorrection(Int_t nSM, Int_t nBins); // based on temperetare info
97 Int_t fRun; // run number
98 UInt_t fStartTime; // start timestamp
99 UInt_t fEndTime; // end timestamp
101 Double_t fMinTemp; // min temp
102 Double_t fMaxTemp; // max temp
103 UInt_t fMinTime; // min time
104 UInt_t fMaxTime; // max time
106 Double_t fTemperatureResolution; // value for checking at which level we care about temperature differences
107 Int_t fTimeBinsPerHour; // size of the time-bins we use for corrections
109 Double_t fHighLowGainFactor; //gain factor to convert between high and low gain
111 // pointers to the different used classes
112 AliEMCALSensorTempArray *fTempArray; // CDB class for temperature sensors
113 AliCaloCalibSignal *fCalibSignal; // LED signal info
114 AliEMCALBiasAPD *fBiasAPD; // bias APD info
115 AliEMCALCalibMapAPD *fCalibMapAPD; // calib & map APD info
116 AliEMCALCalibReference *fCalibReference; // reference info
117 AliEMCALCalibTimeDepCorrection *fCalibTimeDepCorrection; // correction values
120 ClassDef(AliEMCALCalibTimeDep,3) // EMCAL time-dep Calibration data