Adding include path to allow compilation of CleanGeom task
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibData.h
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 /* $Id$ */
8
9 ////////////////////////////////////////////////
10 //
11 //  class for EMCAL calibration               //
12 //
13 ////////////////////////////////////////////////
14
15 #include "TNamed.h"
16 #include "AliEMCALGeoParams.h"
17
18 class AliEMCALCalibData: public TNamed {
19
20  public:
21
22   AliEMCALCalibData();
23   AliEMCALCalibData(const char* name);
24   AliEMCALCalibData(const AliEMCALCalibData &calibda);
25   AliEMCALCalibData& operator= (const AliEMCALCalibData &calibda);
26   virtual ~AliEMCALCalibData() { ; }
27   
28   void    Reset();
29   void    Print(Option_t *option = "") const;
30   
31   // All indexes start from 0!
32   Float_t GetADCchannel      (Int_t module, Int_t column, Int_t row) const;
33   Float_t GetADCchannelOnline(Int_t module, Int_t column, Int_t row) const;
34   Float_t GetADCchannelDecal (Int_t module, Int_t column, Int_t row) const;
35   Float_t GetADCpedestal     (Int_t module, Int_t column, Int_t row) const;
36   Float_t GetTimeChannelDecal(Int_t module, Int_t column, Int_t row) const;
37   Float_t GetTimeChannel     (Int_t module, Int_t column, Int_t row, Int_t bc) const;
38         
39   Float_t GetADCchannelRef   () const { return fADCchannelRef ; }
40
41   void    SetADCchannel      (Int_t module, Int_t column, Int_t row, Float_t value);
42   void    SetADCchannelOnline(Int_t module, Int_t column, Int_t row, Float_t value);
43   void    SetADCchannelDecal (Int_t module, Int_t column, Int_t row, Float_t value);
44   void    SetADCpedestal     (Int_t module, Int_t column, Int_t row, Float_t value);
45   void    SetTimeChannelDecal(Int_t module, Int_t column, Int_t row, Float_t value);
46   void    SetTimeChannel     (Int_t module, Int_t column, Int_t row, Int_t bc, Float_t value);
47
48   void    SetADCchannelRef   (Float_t value) { fADCchannelRef = value ; }
49
50   static const int fgkECALModules  = 12;   // number of modules in EMCAL
51   static const int fgkDCALModules  = 10;   // number of modules in DCAL 8+2 in possible future
52   
53  protected:
54
55   Float_t  fADCchannelRef ;  // base value of the ADC channel set from cosmics calibration, not to be used, instead use fADCchannelOnline
56
57   Float_t  fADCchannel          [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV ([mod][col][row])
58   Float_t  fADCchannelOnline    [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV obtained from the voltage settings online
59   Float_t  fADCchannelDecal     [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // decalibrate width of one ADC channel in GeV ([mod][col][row])
60   Float_t  fADCpedestal         [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // value of the  ADC pedestal ([mod][col][row]), not used
61   Float_t  fTimeChannelDecal    [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // time shift of one ADC channel ([mod][col][row])
62   Float_t  fTimeChannel         [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; // time shift of one ADC channel ([mod][col][row][bunch crossing number])
63
64   // Add specific arrays for DCal to avoid backward incompatibilities,
65   // dimension of DCal SM is smaller than EMCAL but assume the same to avoid complications due to partial SM
66   Float_t  fADCchannelDCAL      [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV ([mod][col][row])
67   Float_t  fADCchannelOnlineDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV  obtained from the voltage settings online
68   Float_t  fADCchannelDecalDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // decalibrate width of one ADC channel in GeV ([mod][col][row])
69   Float_t  fADCpedestalDCAL     [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // value of the  ADC pedestal ([mod][col][row]), not used
70   Float_t  fTimeChannelDecalDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // time shift of one ADC channel ([mod][col][row])
71   Float_t  fTimeChannelDCAL     [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; // time shift of one ADC channel ([mod][col][row][bunch crossing number])
72
73   
74   ClassDef(AliEMCALCalibData,6)    // EMCAL Calibration data
75 };
76
77 #endif