#include "TNamed.h"
#include "AliCDBEntry.h"
#include "AliPMD.h"
#include "AliPMDCalibData.h"
ClassImp(AliPMDCalibData)
AliPMDCalibData::AliPMDCalibData()
{
Reset();
}
AliPMDCalibData::AliPMDCalibData(const char* name)
{
TString namst = "Calib_";
namst += name;
SetName(namst.Data());
SetTitle(namst.Data());
Reset();
}
AliPMDCalibData::AliPMDCalibData(const AliPMDCalibData& calibda) :
TNamed(calibda)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
Reset();
for(Int_t det = 0; det < kDet; det++)
{
for(Int_t smn = 0; smn < kModule; smn++)
{
for(Int_t row = 0; row < kRow; row++)
{
for(Int_t col = 0; col < kCol; col++)
{
fGainFact[det][smn][row][col] =
calibda.GetGainFact(det,smn,row,col);
}
}
}
}
}
AliPMDCalibData &AliPMDCalibData::operator =(const AliPMDCalibData& calibda)
{
SetName(calibda.GetName());
SetTitle(calibda.GetName());
Reset();
for(Int_t det = 0; det < kDet; det++)
{
for(Int_t smn = 0; smn < kModule; smn++)
{
for(Int_t row = 0; row < kRow; row++)
{
for(Int_t col = 0; col < kCol; col++)
{
fGainFact[det][smn][row][col] =
calibda.GetGainFact(det,smn,row,col);
}
}
}
}
return *this;
}
AliPMDCalibData::~AliPMDCalibData()
{
}
void AliPMDCalibData::Reset()
{
for(Int_t det = 0; det < kDet; det++)
{
for(Int_t smn = 0; smn < kModule; smn++)
{
for(Int_t row = 0; row < kRow; row++)
{
for(Int_t col = 0; col < kCol; col++)
{
fGainFact[det][smn][row][col] = 1.0;
}
}
}
}
}
Float_t AliPMDCalibData:: GetGainFact(Int_t det, Int_t smn, Int_t row, Int_t col) const
{
return fGainFact[det][smn][row][col];
}
void AliPMDCalibData::SetGainFact(Int_t det, Int_t smn, Int_t row, Int_t col, Float_t gain)
{
fGainFact[det][smn][row][col]= gain;
}
void AliPMDCalibData::Print(Option_t *) const
{
printf("\n ######gain factors for each cells are ####\n");
for(Int_t det = 0; det < kDet; det++)
{
for(Int_t smn = 0; smn < kModule; smn++)
{
for(Int_t row = 0; row < kRow; row++)
{
for(Int_t col = 0; col < kCol; col++)
{
printf("Gain[%d,%d,%d,%d]= %4.1f \n",det,smn,row,col,
fGainFact[det][smn][row][col]);
}
printf("\n");
}
}
}
}