add new array with calibration param obtained online, those parameters are close...
authorgconesab <gustavo.conesa.balbastre@cern.ch>
Sat, 5 Apr 2014 16:25:03 +0000 (18:25 +0200)
committergconesab <gustavo.conesa.balbastre@cern.ch>
Sat, 5 Apr 2014 19:56:38 +0000 (21:56 +0200)
EMCAL/AliEMCALCalibData.cxx
EMCAL/AliEMCALCalibData.h

index 9cab95b..1b4e97a 100644 (file)
@@ -78,7 +78,10 @@ TNamed(calibda), fADCchannelRef(calibda.fADCchannelRef)
         fADCchannel[supermodule][column][row] = 
         calibda.GetADCchannel(supermodule,column,row);
         
-        fADCchannelDecal[supermodule][column][row] = 
+        fADCchannelOnline[supermodule][column][row] =
+        calibda.GetADCchannelOnline(supermodule,column,row);
+        
+        fADCchannelDecal[supermodule][column][row] =
         calibda.GetADCchannelDecal(supermodule,column,row);
         
         fADCpedestal[supermodule][column][row] = 
@@ -126,6 +129,9 @@ AliEMCALCalibData &AliEMCALCalibData::operator =(const AliEMCALCalibData& calibd
         
         fADCchannel[supermodule][column][row] = 
         calibda.GetADCchannel(supermodule,column,row);
+
+        fADCchannelOnline[supermodule][column][row] =
+        calibda.GetADCchannelOnline(supermodule,column,row);
         
         fADCchannelDecal[supermodule][column][row] = 
         calibda.GetADCchannelDecal(supermodule,column,row);
@@ -175,7 +181,8 @@ void AliEMCALCalibData::Reset()
         fADCpedestal     [supermodule][column][row]=0.;
         
         fADCchannelDecal [supermodule][column][row]=1.;
-        fADCchannel      [supermodule][column][row]=1.;
+        fADCchannel      [supermodule][column][row]=fADCchannelRef;
+        fADCchannelOnline[supermodule][column][row]=fADCchannelRef;
         
         fTimeChannelDecal[supermodule][column][row]=0.;
         
@@ -238,6 +245,26 @@ void  AliEMCALCalibData::Print(Option_t *option) const
     }   
   }
   
+  if (strstr(option,"adconline") || strstr(option,"all")) {
+    printf("\n ----    ADC online channel values       ----\n\n");
+    for (Int_t supermodule=0; supermodule<nSMod; supermodule++){
+      nCol  = AliEMCALGeoParams::fgkEMCALCols;    //48
+      nRow  = AliEMCALGeoParams::fgkEMCALRows;    //24
+      // in reality they are 1/3 but leave them as 1/2
+      if(supermodule /2 == 5)
+      nRow = nRow/2;
+      if(supermodule > 11 && supermodule < 18)
+      nCol = nCol*2/3;
+      printf("============== Supermodule %d\n",supermodule+1);
+      for (Int_t column=0; column<nCol; column++){
+        for (Int_t row=0; row<nRow; row++){
+          printf("[c%d,r%d] %2.4f ",column, row,fADCchannelOnline[supermodule][column][row]);
+        }
+        printf("\n");
+      }
+    }
+  }
+  
   if (strstr(option,"adcdecal") || strstr(option,"all")) {
     printf("\n ----    ADC decalibration channel values        ----\n\n");
     for (Int_t supermodule=0; supermodule<nSMod; supermodule++){
@@ -312,6 +339,17 @@ Float_t AliEMCALCalibData::GetADCchannel(Int_t supermodule, Int_t column, Int_t
 }
 
 //________________________________________________________________
+Float_t AliEMCALCalibData::GetADCchannelOnline(Int_t supermodule, Int_t column, Int_t row) const
+{
+  // Set ADC channel witdth values, first online calibration parameter
+  // All indexes start from 0!
+  // Supermodule, column,raw should follow the ALICE convention:
+  // supermodule 0:11, column 0:47, row 0:23
+  
+  return fADCchannelOnline[supermodule][column][row];
+}
+
+//________________________________________________________________
 Float_t AliEMCALCalibData::GetADCchannelDecal(Int_t supermodule, Int_t column, Int_t row) const
 {
   // Set ADC channel decalibration witdth values
@@ -351,9 +389,16 @@ void AliEMCALCalibData::SetADCchannel(Int_t supermodule, Int_t column, Int_t row
 }
 
 //________________________________________________________________
+void AliEMCALCalibData::SetADCchannelOnline(Int_t supermodule, Int_t column, Int_t row, Float_t value)
+{
+  // Set ADC channel online width values
+  fADCchannelOnline[supermodule][column][row] = value;
+}
+
+//________________________________________________________________
 void AliEMCALCalibData::SetADCchannelDecal(Int_t supermodule, Int_t column, Int_t row, Float_t value)
 { 
-  // Set ADC channel width values
+  // Set ADC channel width values, decalibration
   fADCchannelDecal[supermodule][column][row] = value;
 }
 
index 268aaf5..bee64e5 100644 (file)
@@ -30,6 +30,7 @@ class AliEMCALCalibData: public TNamed {
   
   // 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;
@@ -38,6 +39,7 @@ class AliEMCALCalibData: public TNamed {
   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);
@@ -47,15 +49,16 @@ class AliEMCALCalibData: public TNamed {
 
  protected:
 
-  Float_t  fADCchannelRef ;  // base value of the ADC channel set from cosmics calibration
+  Float_t  fADCchannelRef ;  // base value of the ADC channel set from cosmics calibration, not to be used, instead use fADCchannelOnline
 
   Float_t  fADCchannel      [AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; // width of one ADC channel in GeV ([mod][col][row])
+  Float_t  fADCchannelOnline[AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; // width of one ADC channel in GeV ([mod][col][row]) obtained from the voltage settings online
   Float_t  fADCchannelDecal [AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; // decalibrate width of one ADC channel in GeV ([mod][col][row])
   Float_t  fADCpedestal     [AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ; // value of the  ADC pedestal ([mod][col][row]), not used
   Float_t  fTimeChannelDecal[AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows] ;    // time shift of one ADC channel ([mod][col][row])
   Float_t  fTimeChannel     [AliEMCALGeoParams::fgkEMCALModules][AliEMCALGeoParams::fgkEMCALCols][AliEMCALGeoParams::fgkEMCALRows][4] ; // time shift of one ADC channel ([mod][col][row][bunch crossing number])
 
-  ClassDef(AliEMCALCalibData,4)    // EMCAL Calibration data
+  ClassDef(AliEMCALCalibData,5)    // EMCAL Calibration data
 };
 
 #endif