#include "AliZDCCalib.h"
ClassImp(AliZDCCalib)
AliZDCCalib::AliZDCCalib():
TNamed()
{
Reset();
}
AliZDCCalib::AliZDCCalib(const char* name):
TNamed()
{
TString namst = "Calib_";
namst += name;
SetName(namst.Data());
SetTitle(namst.Data());
Reset();
for(Int_t i=0; i<6; i++){
fEnCalibration[i] = 0.;
if(i<5){
fZN1EqualCoeff[i] = 0.;
fZP1EqualCoeff[i] = 0.;
fZN2EqualCoeff[i] = 0.;
fZP2EqualCoeff[i] = 0.;
}
}
}
AliZDCCalib::AliZDCCalib(const AliZDCCalib& calibda) :
TNamed(calibda)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
Reset();
for(int i=0; i<6; i++){
fEnCalibration[i] = calibda.GetEnCalib(i);
if(i<5){
fZN1EqualCoeff[i] = calibda.GetZN1EqualCoeff(i);
fZP1EqualCoeff[i] = calibda.GetZP1EqualCoeff(i);
fZN2EqualCoeff[i] = calibda.GetZN2EqualCoeff(i);
fZP2EqualCoeff[i] = calibda.GetZP2EqualCoeff(i);
}
}
}
AliZDCCalib &AliZDCCalib::operator =(const AliZDCCalib& calibda)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
Reset();
for(int i=0; i<6; i++){
fEnCalibration[i] = calibda.GetEnCalib(i);
if(i<5){
fZN1EqualCoeff[i] = calibda.GetZN1EqualCoeff(i);
fZP1EqualCoeff[i] = calibda.GetZP1EqualCoeff(i);
fZN2EqualCoeff[i] = calibda.GetZN2EqualCoeff(i);
fZP2EqualCoeff[i] = calibda.GetZP2EqualCoeff(i);
}
}
return *this;
}
AliZDCCalib::~AliZDCCalib()
{
}
void AliZDCCalib::Reset()
{
memset(fEnCalibration,0,6*sizeof(Float_t));
memset(fZN1EqualCoeff,0,5*sizeof(Float_t));
memset(fZP1EqualCoeff,0,5*sizeof(Float_t));
memset(fZN2EqualCoeff,0,5*sizeof(Float_t));
memset(fZP2EqualCoeff,0,5*sizeof(Float_t));
}
void AliZDCCalib::Print(Option_t *) const
{
printf("\n\n ####### Energy calibration coefficients ####### \n");
printf(" ZN1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[0]);
printf(" ZP1 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[1]);
printf(" ZN2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[2]);
printf(" ZP2 = %.4f (E[TeV]/ADCch.) \n",fEnCalibration[3]);
printf(" ZEM1 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[4]);
printf(" ZEM2 = %.2f (E[TeV]/ADCch.) \n",fEnCalibration[5]);
printf("\n\n ####### Equalization coefficients ####### \n");
printf(" ZN1 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
fZN1EqualCoeff[0],fZN1EqualCoeff[1],fZN1EqualCoeff[2],fZN1EqualCoeff[3],fZN1EqualCoeff[4]);
printf(" ZP1 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
fZP1EqualCoeff[0],fZP1EqualCoeff[1],fZP1EqualCoeff[2],fZP1EqualCoeff[3],fZP1EqualCoeff[4]);
printf(" ZN2 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
fZN2EqualCoeff[0],fZN2EqualCoeff[1],fZN2EqualCoeff[2],fZN2EqualCoeff[3],fZN2EqualCoeff[4]);
printf(" ZP2 -> %1.2f %1.2f %1.2f %1.2f %1.2f \n",
fZP2EqualCoeff[0],fZP2EqualCoeff[1],fZP2EqualCoeff[2],fZP2EqualCoeff[3],fZP2EqualCoeff[4]);
}
void AliZDCCalib::SetEnCalib(Float_t* EnCalib)
{
if(EnCalib) for(int t=0; t<6; t++) fEnCalibration[t] = EnCalib[t];
else for(int t=0; t<6; t++) fEnCalibration[t] = 0.;
}
void AliZDCCalib::SetZN1EqualCoeff(Float_t* EqualCoeff)
{
if(EqualCoeff) for(int t=0; t<5; t++) fZN1EqualCoeff[t] = EqualCoeff[t];
else for(int t=0; t<5; t++) fZN1EqualCoeff[t] = 1.;
}
void AliZDCCalib::SetZP1EqualCoeff(Float_t* EqualCoeff)
{
if(EqualCoeff) for(int t=0; t<5; t++) fZP1EqualCoeff[t] = EqualCoeff[t];
else for(int t=0; t<5; t++) fZP1EqualCoeff[t] = 1.;
}
void AliZDCCalib::SetZN2EqualCoeff(Float_t* EqualCoeff)
{
if(EqualCoeff) for(int t=0; t<5; t++) fZN2EqualCoeff[t] = EqualCoeff[t];
else for(int t=0; t<5; t++) fZN2EqualCoeff[t] = 1.;
}
void AliZDCCalib::SetZP2EqualCoeff(Float_t* EqualCoeff)
{
if(EqualCoeff) for(int t=0; t<5; t++) fZP2EqualCoeff[t] = EqualCoeff[t];
else for(int t=0; t<5; t++) fZP2EqualCoeff[t] = 1.;
}