Line data Source code
1 : #ifndef ALIEMCALCALIBDATA_H
2 : #define ALIEMCALCALIBDATA_H
3 :
4 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 : * See cxx source for full Copyright notice */
6 :
7 : //_________________________________________________________________________
8 : /// \class AliEMCALCalibData
9 : /// \brief Cell energy calibration factors container class
10 : ///
11 : /// Channel energy calibration factors (ADC to GeV conversion) and pedestal,
12 : /// An extra decalibration parameter factor foreseen.
13 : ///
14 : /// This container also includes arrays for time calibration, but this is not
15 : /// under use, this functionality is in AliEMCALCalibTime.
16 : /// It is kept for backward compatibility reasons.
17 : ///
18 : /// \author Gustavo Conesa Balbastre <Gustavo.Conesa.Balbastre@cern.ch>, LPSC-IN2P3-CNRS
19 : ///_________________________________________________________________________
20 :
21 : #include "TNamed.h"
22 : #include "AliEMCALGeoParams.h"
23 :
24 : class AliEMCALCalibData: public TNamed {
25 :
26 : public:
27 :
28 : AliEMCALCalibData();
29 : AliEMCALCalibData(const char* name);
30 : AliEMCALCalibData(const AliEMCALCalibData &calibda);
31 : AliEMCALCalibData& operator= (const AliEMCALCalibData &calibda);
32 0 : virtual ~AliEMCALCalibData() { ; }
33 :
34 : void Reset();
35 : void Print(Option_t *option = "") const;
36 :
37 : // All indexes start from 0!
38 : Float_t GetADCchannel (Int_t module, Int_t column, Int_t row) const;
39 : Float_t GetADCchannelOnline(Int_t module, Int_t column, Int_t row) const;
40 : Float_t GetADCchannelDecal (Int_t module, Int_t column, Int_t row) const;
41 : Float_t GetADCpedestal (Int_t module, Int_t column, Int_t row) const;
42 :
43 0 : Float_t GetADCchannelRef () const { return fADCchannelRef ; }
44 :
45 : void SetADCchannel (Int_t module, Int_t column, Int_t row, Float_t value);
46 : void SetADCchannelOnline(Int_t module, Int_t column, Int_t row, Float_t value);
47 : void SetADCchannelDecal (Int_t module, Int_t column, Int_t row, Float_t value);
48 : void SetADCpedestal (Int_t module, Int_t column, Int_t row, Float_t value);
49 :
50 0 : void SetADCchannelRef (Float_t value) { fADCchannelRef = value ; }
51 :
52 : // Do not use, please use AliEMCALTimeCalib, keep for backward compatibility reasons
53 : Float_t GetTimeChannelDecal(Int_t module, Int_t column, Int_t row) const;
54 : Float_t GetTimeChannel (Int_t module, Int_t column, Int_t row, Int_t bc) const;
55 :
56 : void SetTimeChannelDecal(Int_t module, Int_t column, Int_t row, Float_t value);
57 : void SetTimeChannel (Int_t module, Int_t column, Int_t row, Int_t bc, Float_t value);
58 :
59 :
60 : static const int fgkECALModules = 12; // number of modules in EMCAL
61 : static const int fgkDCALModules = 10; // number of modules in DCAL 8+2 in possible future
62 :
63 : protected:
64 :
65 : Float_t fADCchannelRef ; /// base value of the ADC channel set from cosmics calibration, not to be used, instead use fADCchannelOnline
66 :
67 : Float_t fADCchannel [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// width of one ADC channel in GeV ([mod][col][row])
68 : Float_t fADCchannelOnline [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// width of one ADC channel in GeV obtained from the voltage settings online
69 : Float_t fADCchannelDecal [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// decalibrate width of one ADC channel in GeV ([mod][col][row])
70 : Float_t fADCpedestal [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// value of the ADC pedestal ([mod][col][row]), not used
71 :
72 : // Do not use, please use AliEMCALTimeCalib, keep for backward compatibility reasons
73 : Float_t fTimeChannelDecal [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// time shift of one ADC channel ([mod][col][row])
74 : Float_t fTimeChannel [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; /// time shift of one ADC channel ([mod][col][row][bunch crossing number])
75 :
76 : // Add specific arrays for DCal to avoid backward incompatibilities,
77 : // dimension of DCal SM is smaller than EMCAL but assume the same to avoid complications due to partial SM
78 : Float_t fADCchannelDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// width of one ADC channel in GeV ([mod][col][row])
79 : Float_t fADCchannelOnlineDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// width of one ADC channel in GeV obtained from the voltage settings online
80 : Float_t fADCchannelDecalDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// decalibrate width of one ADC channel in GeV ([mod][col][row])
81 : Float_t fADCpedestalDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// value of the ADC pedestal ([mod][col][row]), not used
82 :
83 : // Do not use, please use AliEMCALTimeCalib, keep for backward compatibility reasons
84 : Float_t fTimeChannelDecalDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; /// time shift of one ADC channel ([mod][col][row])
85 : Float_t fTimeChannelDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; /// time shift of one ADC channel ([mod][col][row][bunch crossing number])
86 :
87 : /// \cond CLASSIMP
88 66 : ClassDef(AliEMCALCalibData,6);
89 : /// \endcond
90 :
91 : };
92 :
93 : #endif // ALIEMCALCALIBDATA_H
94 :
95 :
|