High/Low and time calibrations added
authorprsnko <prsnko@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Jan 2008 20:07:13 +0000 (20:07 +0000)
committerprsnko <prsnko@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Jan 2008 20:07:13 +0000 (20:07 +0000)
PHOS/AliPHOSCalibData.cxx
PHOS/AliPHOSCalibData.h
PHOS/AliPHOSEmcCalibData.cxx
PHOS/AliPHOSEmcCalibData.h

index 275fa20..c9b82ad 100644 (file)
@@ -254,6 +254,17 @@ Float_t AliPHOSCalibData::GetADCchannelEmc(Int_t module, Int_t column, Int_t row
 }
 
 //________________________________________________________________
+void AliPHOSCalibData::SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  // Set EMC calibration coefficient for (module,column,row)
+
+  if(!fCalibDataEmc)
+    fCalibDataEmc = new AliPHOSEmcCalibData("PHOS-EMC");
+
+  fCalibDataEmc->SetADCchannelEmc(module,column,row,value);
+}
+
+//________________________________________________________________
 Float_t AliPHOSCalibData::GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const
 {
   // Return EMC pedestal for channel defined by (module,column,row)
@@ -269,27 +280,70 @@ Float_t AliPHOSCalibData::GetADCpedestalEmc(Int_t module, Int_t column, Int_t ro
 }
 
 //________________________________________________________________
-void AliPHOSCalibData::SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+void AliPHOSCalibData::SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value)
 {
-  // Set EMC calibration coefficient for (module,column,row)
+  // Set EMC pedestal for (module,column,row)
 
   if(!fCalibDataEmc)
     fCalibDataEmc = new AliPHOSEmcCalibData("PHOS-EMC");
 
-  fCalibDataEmc->SetADCchannelEmc(module,column,row,value);
+  fCalibDataEmc->SetADCpedestalEmc(module,column,row,value);
 }
 
 //________________________________________________________________
-void AliPHOSCalibData::SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+Float_t AliPHOSCalibData::GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const
 {
-  // Set EMC pedestal for (module,column,row)
-
+  // Return EMC calibration coefficient
+  // for channel defined by (module,column,row)
+  // module, column,raw should follow the internal PHOS convention:
+  // module 1:5, column 1:56, row 1:64
+  // if CBD instance exists, the value is taken from CDB.
+  // Otherwise it is an ideal one
+  if(fCalibDataEmc)
+    return fCalibDataEmc->GetHighLowRatioEmc(module,column,row);
+  else
+    return 1.0; // default width of one EMC ADC channel in GeV
+}
+//________________________________________________________________
+void AliPHOSCalibData::SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  // Set EMC calibration coefficient for (module,column,row)
   if(!fCalibDataEmc)
     fCalibDataEmc = new AliPHOSEmcCalibData("PHOS-EMC");
-
-  fCalibDataEmc->SetADCpedestalEmc(module,column,row,value);
+  fCalibDataEmc->SetHighLowRatioEmc(module,column,row,value);
 }
-
+//________________________________________________________________
+Float_t AliPHOSCalibData::GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const
+{ 
+  // Return EMC calibration coefficient 
+  // for channel defined by (module,column,row)                                
+  // module, column,raw should follow the internal PHOS convention:            
+  // module 1:5, column 1:56, row 1:64 
+  // if CBD instance exists, the value is taken from CDB. 
+  // Otherwise it is an ideal one  
+  
+  if(fCalibDataEmc)
+    return fCalibDataEmc->GetTimeShiftEmc(module,column,row);
+  else
+    return 1.0; // default width of one EMC ADC channel in GeV
+}
+//________________________________________________________________
+void AliPHOSCalibData::SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  // Set EMC calibration coefficient for (module,column,row)
+  if(!fCalibDataEmc)
+    fCalibDataEmc = new AliPHOSEmcCalibData("PHOS-EMC");
+  fCalibDataEmc->SetTimeShiftEmc(module,column,row,value);
+}
 //________________________________________________________________
 Float_t AliPHOSCalibData::GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const
 {
index 48866dd..743a756 100644 (file)
@@ -38,18 +38,27 @@ class AliPHOSCalibData: public TNamed {
   void RandomEmc(Float_t ccMin=0.5   , Float_t ccMax=1.5);
   void RandomCpv(Float_t ccMin=0.0009, Float_t ccMax=0.0015);
 
+  //----First EMC parameters---------
   Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const;
+  void    SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+
   Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const;
+  void    SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+
+  Float_t GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const ;
+  void    SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
   
-  void SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value);
-  void SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+  Float_t GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const;
+  void    SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value) ;
 
+  //----Now CPV parameters-----------
   Float_t GetADCchannelCpv(Int_t module, Int_t column, Int_t row) const;
+  void    SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value);
+
   Float_t GetADCpedestalCpv(Int_t module, Int_t column, Int_t row) const;
-  
-  void SetADCchannelCpv(Int_t module, Int_t column, Int_t row, Float_t value);
-  void SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value);
+  void    SetADCpedestalCpv(Int_t module, Int_t column, Int_t row, Float_t value);
 
+  //----Bad channels map-------------
   Int_t  GetNumOfEmcBadChannels() const;
   Bool_t IsBadChannelEmc(Int_t module, Int_t col, Int_t row) const; 
   void   EmcBadChannelIds(Int_t *badIds=0); 
@@ -71,7 +80,7 @@ class AliPHOSCalibData: public TNamed {
   TString fCpvDataPath; // path to CPV calibration data
   TString fEmcBadChannelsMapPath; // path to bad channels map
 
-  ClassDef(AliPHOSCalibData,4)    // PHOS Calibration data
+  ClassDef(AliPHOSCalibData,5)    // PHOS Calibration data
 };
 
 #endif
index 6c09b8f..88116f5 100644 (file)
@@ -54,6 +54,8 @@ AliPHOSEmcCalibData::AliPHOSEmcCalibData(const AliPHOSEmcCalibData& calibda) :
       for(Int_t row=0; row<64; row++) {
        fADCchannelEmc[module][column][row] = calibda.fADCchannelEmc[module][column][row];
        fADCpedestalEmc[module][column][row] = calibda.fADCpedestalEmc[module][column][row];
+       fHighLowRatioEmc[module][column][row] = calibda.fHighLowRatioEmc[module][column][row];
+       fTimeShiftEmc[module][column][row] = calibda.fTimeShiftEmc[module][column][row];
       }
     }
   }
@@ -74,6 +76,8 @@ AliPHOSEmcCalibData &AliPHOSEmcCalibData::operator =(const AliPHOSEmcCalibData&
        for(Int_t row=0; row<64; row++) {
          fADCchannelEmc[module][column][row] = calibda.fADCchannelEmc[module][column][row];
          fADCpedestalEmc[module][column][row] = calibda.fADCpedestalEmc[module][column][row];
+         fHighLowRatioEmc[module][column][row] = calibda.fHighLowRatioEmc[module][column][row];
+         fTimeShiftEmc[module][column][row] = calibda.fTimeShiftEmc[module][column][row];
        }
       }
     }
@@ -91,13 +95,15 @@ AliPHOSEmcCalibData::~AliPHOSEmcCalibData()
 //________________________________________________________________
 void AliPHOSEmcCalibData::Reset()
 {
-  // Set all pedestals and all ADC channels to its ideal values = 1.
+  // Set all pedestals and all ADC channels to its ideal values = 5. (MeV/ADC)
 
   for (Int_t module=0; module<5; module++){
     for (Int_t column=0; column<56; column++){
       for (Int_t row=0; row<64; row++){
        fADCpedestalEmc[module][column][row] = 0.;
-       fADCchannelEmc[module][column][row]  = 1.;
+       fADCchannelEmc[module][column][row]  = 0.005;
+       fHighLowRatioEmc[module][column][row] = 16. ;
+       fTimeShiftEmc[module][column][row] = 0. ;
       }
     }
   }
@@ -134,6 +140,31 @@ void  AliPHOSEmcCalibData::Print(Option_t *option) const
       }
     }
   }
+
+  if (strstr(option,"hilo")) {
+    printf("\n ----    EMC High/Low ratio      ----\n\n");
+    for (Int_t module=0; module<5; module++){
+      printf("============== Module %d\n",module+1);
+      for (Int_t column=0; column<56; column++){
+       for (Int_t row=0; row<64; row++){
+         printf("%4.1f",fHighLowRatioEmc[module][column][row]);
+       }
+       printf("\n");
+      }
+    }
+  }
+  if (strstr(option,"time")) {
+    printf("\n ----    EMC t0 shifts   ----\n\n");
+    for (Int_t module=0; module<5; module++){
+      printf("============== Module %d\n",module+1);
+      for (Int_t column=0; column<56; column++){
+       for (Int_t row=0; row<64; row++){
+         printf("%6.3e",fTimeShiftEmc[module][column][row]);
+       }
+       printf("\n");
+      }
+    }
+  }
 }
 
 //________________________________________________________________
@@ -157,6 +188,26 @@ Float_t AliPHOSEmcCalibData::GetADCpedestalEmc(Int_t module, Int_t column, Int_t
 }
 
 //________________________________________________________________
+Float_t AliPHOSEmcCalibData::GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const
+{
+  //Return EMC pedestal
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+
+  return fHighLowRatioEmc[module-1][column-1][row-1];
+}
+
+//________________________________________________________________
+Float_t AliPHOSEmcCalibData::GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const
+{
+  //Return EMC pedestal
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+
+  return fTimeShiftEmc[module-1][column-1][row-1];
+}
+
+//________________________________________________________________
 void AliPHOSEmcCalibData::SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value)
 {
   //Set EMC calibration coefficient
@@ -174,3 +225,20 @@ void AliPHOSEmcCalibData::SetADCpedestalEmc(Int_t module, Int_t column, Int_t ro
   //module 1:5, column 1:56, row 1:64
   fADCpedestalEmc[module-1][column-1][row-1] = value;
 }
+
+//________________________________________________________________
+void AliPHOSEmcCalibData::SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  //Set EMC pedestal
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+  fHighLowRatioEmc[module-1][column-1][row-1] = value;
+}
+//________________________________________________________________
+void AliPHOSEmcCalibData::SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  //Set EMC pedestal
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+  fTimeShiftEmc[module-1][column-1][row-1] = value;
+}
index 1c9814a..49a350b 100644 (file)
@@ -23,15 +23,21 @@ class AliPHOSEmcCalibData: public TNamed {
   //
   Float_t GetADCchannelEmc(Int_t module, Int_t column, Int_t row) const;
   Float_t GetADCpedestalEmc(Int_t module, Int_t column, Int_t row) const;
+  Float_t GetHighLowRatioEmc(Int_t module, Int_t column, Int_t row) const;
+  Float_t GetTimeShiftEmc(Int_t module, Int_t column, Int_t row) const;
   //
   void SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value);
   void SetADCpedestalEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+  void SetHighLowRatioEmc(Int_t module, Int_t column, Int_t row, Float_t value);
+  void SetTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value);
 
  protected:
   Float_t  fADCchannelEmc[5][56][64] ;  // width of one EMC ADC channel in GeV ([mod][col][row])
   Float_t  fADCpedestalEmc[5][56][64] ; // value of the EMC ADC pedestal ([mod][col][row])
+  Float_t  fHighLowRatioEmc[5][56][64]; // ratio of High/Low gain ([mod][col][row])
+  Float_t  fTimeShiftEmc[5][56][64] ;   // channel-by-channel t0 shift ([mod][col][row])
   //
-  ClassDef(AliPHOSEmcCalibData,1)    // PHOS EMC calibration data
+  ClassDef(AliPHOSEmcCalibData,2)    // PHOS EMC calibration data
 };
 
 #endif