Adding include path to allow compilation of CleanGeom task
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALCalibData.h
index 190f0aa..20919af 100644 (file)
@@ -7,34 +7,71 @@
 /* $Id$ */
 
 ////////////////////////////////////////////////
-//  class for EMCAL calibration                 //
+//
+//  class for EMCAL calibration               //
+//
 ////////////////////////////////////////////////
 
 #include "TNamed.h"
-#include "AliEMCAL.h"
+#include "AliEMCALGeoParams.h"
 
 class AliEMCALCalibData: public TNamed {
 
  public:
+
   AliEMCALCalibData();
   AliEMCALCalibData(const char* name);
   AliEMCALCalibData(const AliEMCALCalibData &calibda);
   AliEMCALCalibData& operator= (const AliEMCALCalibData &calibda);
-  virtual ~AliEMCALCalibData();
-  void Reset();
-  virtual void Print(Option_t *option = "") const; 
-  //
-  Float_t GetADCchannel(Int_t module, Int_t column, Int_t row) const;
-  Float_t GetADCpedestal(Int_t module, Int_t column, Int_t row) const;
-  //
-  void SetADCchannel(Int_t module, Int_t column, Int_t row, Float_t value);
-  void SetADCpedestal(Int_t module, Int_t column, Int_t row, Float_t value);
+  virtual ~AliEMCALCalibData() { ; }
+  
+  void    Reset();
+  void    Print(Option_t *option = "") const;
+  
+  // All indexes start from 0!
+  Float_t GetADCchannel      (Int_t module, Int_t column, Int_t row) const;
+  Float_t GetADCchannelOnline(Int_t module, Int_t column, Int_t row) const;
+  Float_t GetADCchannelDecal (Int_t module, Int_t column, Int_t row) const;
+  Float_t GetADCpedestal     (Int_t module, Int_t column, Int_t row) const;
+  Float_t GetTimeChannelDecal(Int_t module, Int_t column, Int_t row) const;
+  Float_t GetTimeChannel     (Int_t module, Int_t column, Int_t row, Int_t bc) const;
+       
+  Float_t GetADCchannelRef   () const { return fADCchannelRef ; }
+
+  void    SetADCchannel      (Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetADCchannelOnline(Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetADCchannelDecal (Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetADCpedestal     (Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetTimeChannelDecal(Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetTimeChannel     (Int_t module, Int_t column, Int_t row, Int_t bc, Float_t value);
 
+  void    SetADCchannelRef   (Float_t value) { fADCchannelRef = value ; }
+
+  static const int fgkECALModules  = 12;   // number of modules in EMCAL
+  static const int fgkDCALModules  = 10;   // number of modules in DCAL 8+2 in possible future
+  
  protected:
-  Float_t  fADCchannel[5][56][64] ;  // width of one ADC channel in GeV ([mod][col][row])
-  Float_t  fADCpedestal[5][56][64] ; // value of the  ADC pedestal ([mod][col][row])
-  //
-  ClassDef(AliEMCALCalibData,1)    // EMCAL Calibration data
+
+  Float_t  fADCchannelRef ;  // base value of the ADC channel set from cosmics calibration, not to be used, instead use fADCchannelOnline
+
+  Float_t  fADCchannel          [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV ([mod][col][row])
+  Float_t  fADCchannelOnline    [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV obtained from the voltage settings online
+  Float_t  fADCchannelDecal     [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // decalibrate width of one ADC channel in GeV ([mod][col][row])
+  Float_t  fADCpedestal         [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // value of the  ADC pedestal ([mod][col][row]), not used
+  Float_t  fTimeChannelDecal    [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // time shift of one ADC channel ([mod][col][row])
+  Float_t  fTimeChannel         [fgkECALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; // time shift of one ADC channel ([mod][col][row][bunch crossing number])
+
+  // Add specific arrays for DCal to avoid backward incompatibilities,
+  // dimension of DCal SM is smaller than EMCAL but assume the same to avoid complications due to partial SM
+  Float_t  fADCchannelDCAL      [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV ([mod][col][row])
+  Float_t  fADCchannelOnlineDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // width of one ADC channel in GeV  obtained from the voltage settings online
+  Float_t  fADCchannelDecalDCAL [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // decalibrate width of one ADC channel in GeV ([mod][col][row])
+  Float_t  fADCpedestalDCAL     [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // value of the  ADC pedestal ([mod][col][row]), not used
+  Float_t  fTimeChannelDecalDCAL[fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows]    ; // time shift of one ADC channel ([mod][col][row])
+  Float_t  fTimeChannelDCAL     [fgkDCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; // time shift of one ADC channel ([mod][col][row][bunch crossing number])
+
+  
+  ClassDef(AliEMCALCalibData,6)    // EMCAL Calibration data
 };
 
 #endif