]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSEmcCalibData.cxx
Nothing really
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEmcCalibData.cxx
index 490abc19fc1564a8d5d37d6424ce0ff7e12695b3..0fc34f2e15edf293d8f4e1dfb98b6d1d00db11c7 100644 (file)
 ClassImp(AliPHOSEmcCalibData)
 
 //________________________________________________________________
-AliPHOSEmcCalibData::AliPHOSEmcCalibData()
+AliPHOSEmcCalibData::AliPHOSEmcCalibData():
+  TNamed(),
+  fSampleTimeStep(0)
 {
   // Default constructor
   Reset();
 }
 
 //________________________________________________________________
-AliPHOSEmcCalibData::AliPHOSEmcCalibData(const char* name)
+AliPHOSEmcCalibData::AliPHOSEmcCalibData(const char* name):
+  TNamed(),
+  fSampleTimeStep(0)
 {
   // Constructor
   TString namst = "Calib_";
@@ -43,17 +47,23 @@ AliPHOSEmcCalibData::AliPHOSEmcCalibData(const char* name)
 
 //________________________________________________________________
 AliPHOSEmcCalibData::AliPHOSEmcCalibData(const AliPHOSEmcCalibData& calibda) :
-  TNamed(calibda)
+  TNamed(calibda),
+  fSampleTimeStep(calibda.fSampleTimeStep)
 {
   // copy constructor
   SetName(calibda.GetName());
   SetTitle(calibda.GetName());
-  Reset();
+
   for(Int_t module=0; module<5; module++) {
     for(Int_t column=0; column<56; column++) {
       for(Int_t row=0; row<64; row++) {
-       fADCchannelEmc[module][column][row] = calibda.GetADCchannelEmc(module,column,row);
-       fADCpedestalEmc[module][column][row] = calibda.GetADCpedestalEmc(module,column,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];
+       fLGTimeShiftEmc[module][column][row] = calibda.fLGTimeShiftEmc[module][column][row];
+        fAltroOffsets[module][column][row] = calibda.fAltroOffsets[module][column][row];
+       fDecal[module][column][row]        = calibda.fDecal[module][column][row];
       }
     }
   }
@@ -63,17 +73,27 @@ AliPHOSEmcCalibData::AliPHOSEmcCalibData(const AliPHOSEmcCalibData& calibda) :
 AliPHOSEmcCalibData &AliPHOSEmcCalibData::operator =(const AliPHOSEmcCalibData& calibda)
 {
   // assignment operator
-  SetName(calibda.GetName());
-  SetTitle(calibda.GetName());
-  Reset();
-  for(Int_t module=0; module<5; module++) {
-    for(Int_t column=0; column<56; column++) {
-      for(Int_t row=0; row<64; row++) {
-       fADCchannelEmc[module][column][row] = calibda.GetADCchannelEmc(module,column,row);
-       fADCpedestalEmc[module][column][row] = calibda.GetADCpedestalEmc(module,column,row);
+
+  if(this != &calibda) { 
+
+    SetName(calibda.GetName());
+    SetTitle(calibda.GetName());
+
+    for(Int_t module=0; module<5; module++) {
+      for(Int_t column=0; column<56; column++) {
+       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];
+         fLGTimeShiftEmc[module][column][row] = calibda.fLGTimeShiftEmc[module][column][row];
+          fAltroOffsets[module][column][row] = calibda.fAltroOffsets[module][column][row];
+         fDecal[module][column][row]        = calibda.fDecal[module][column][row];
+       }
       }
     }
   }
+
   return *this;
 }
 
@@ -86,17 +106,22 @@ 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. ;
+       fLGTimeShiftEmc[module][column][row] = 0. ;
+        fAltroOffsets[module][column][row] = 0 ;
+       fDecal[module][column][row] = 1.;
       }
     }
   }
-
+  fSampleTimeStep=100.e-9 ; //100 ns
 }
 
 //________________________________________________________________
@@ -129,6 +154,43 @@ 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 (%6.3e)",fTimeShiftEmc[module][column][row],fLGTimeShiftEmc[module][column][row]);
+       }
+       printf("\n");
+      }
+    }
+  }
+  if (strstr(option,"altro")) {
+    printf("\n  ----    EMC altro offsets   ----\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("%5d",fAltroOffsets[module][column][row]);
+        }
+        printf("\n");
+      }
+    }
+  }
 }
 
 //________________________________________________________________
@@ -151,6 +213,51 @@ Float_t AliPHOSEmcCalibData::GetADCpedestalEmc(Int_t module, Int_t column, Int_t
   return fADCpedestalEmc[module-1][column-1][row-1];
 }
 
+//________________________________________________________________
+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 time offset for high gain channel
+  //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];
+}
+//________________________________________________________________
+Float_t AliPHOSEmcCalibData::GetLGTimeShiftEmc(Int_t module, Int_t column, Int_t row) const
+{
+  //Return EMC time offset for LowGain channel
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+
+  return fLGTimeShiftEmc[module-1][column-1][row-1];
+}
+//________________________________________________________________
+Float_t AliPHOSEmcCalibData::GetSampleTimeStep()const
+{
+   //Returns conversion coefficient from ALTRO smaple time step and secods
+   //Negative value not used in reconstruction (conversion taken from TRU trailer)
+   //and only in raw simulation
+   return fSampleTimeStep ;
+}
+//________________________________________________________________
+Int_t AliPHOSEmcCalibData::GetAltroOffsetEmc(Int_t module, Int_t column, Int_t row) const
+{
+  //Return EMC altro offsets
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+  return fAltroOffsets[module-1][column-1][row-1];
+}
 //________________________________________________________________
 void AliPHOSEmcCalibData::SetADCchannelEmc(Int_t module, Int_t column, Int_t row, Float_t value)
 {
@@ -169,3 +276,63 @@ 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 time offset for high gain channel
+  //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;
+}
+//________________________________________________________________
+void AliPHOSEmcCalibData::SetLGTimeShiftEmc(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  //Set EMC time offset for low gain channel
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+  fLGTimeShiftEmc[module-1][column-1][row-1] = value;
+}
+//________________________________________________________________
+void AliPHOSEmcCalibData::SetAltroOffsetEmc(Int_t module, Int_t column, Int_t row, Int_t value)
+{
+  //Set EMC pedestal
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+  fAltroOffsets[module-1][column-1][row-1] = value;
+}
+//________________________________________________________________
+void AliPHOSEmcCalibData::SetSampleTimeStep(Float_t step)
+{
+   //Sets conversion coefficient from ALTRO smaple time step and secods
+   //Negative value not used in reconstruction (conversion taken from TRU trailer)
+   //and only in raw simulation
+   fSampleTimeStep = step ;
+}
+
+//________________________________________________________________
+Float_t AliPHOSEmcCalibData::GetADCchannelEmcDecalib(Int_t module, Int_t column, Int_t row) const
+{
+  //Return EMC random (de)calibration coefficient O(1). Used in simulation.
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+
+  return fDecal[module-1][column-1][row-1];
+}
+
+void AliPHOSEmcCalibData::SetADCchannelEmcDecalib(Int_t module, Int_t column, Int_t row, Float_t value)
+{
+  //Set EMC (de)calibration coefficient O(1). Used in simulation.
+  //module, column,raw should follow the internal PHOS convention:
+  //module 1:5, column 1:56, row 1:64
+
+  fDecal[module-1][column-1][row-1] = value;
+}