]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/AliEMCALCalibTimeDep.h
Remove old pi0 calibration classes, new class in PWG4/CaloCalib/AliAnalysisTaskEMCALP...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibTimeDep.h
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;
16 class AliCaloCalibSignal;
17 class AliEMCALBiasAPD;
18 class AliEMCALCalibMapAPD;
19 class AliEMCALCalibAbs; // absolute = time-independent
20 class AliEMCALCalibTimeDepCorrection; 
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
29   virtual void PrintInfo() const; 
30
31   void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);//!
32
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
41   // access pointer to the basic temperature object: AliEMCALSensorTempArray 
42   AliEMCALSensorTempArray  * GetTempArray() const { return fTempArray; } //
43
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; } // 
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; // 
52
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
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; //
78
79  private:
80
81   void Reset(); //
82
83   void GetTemperatureInfo(); // pick up Preprocessor output
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
93   //
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;
102   //
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
107   AliEMCALSensorTempArray  *fTempArray;     // CDB class for temperature sensors
108   AliCaloCalibSignal *fCalibSignal; //
109   AliEMCALBiasAPD *fBiasAPD; //
110   AliEMCALCalibMapAPD *fCalibMapAPD; //
111   AliEMCALCalibAbs *fCalibAbs; // absolute = time-independent
112   AliEMCALCalibTimeDepCorrection *fCalibTimeDepCorrection; // 
113
114   //
115   ClassDef(AliEMCALCalibTimeDep,2)    // EMCAL Calibration data
116 };
117
118 #endif