#include "TMath.h"
#include "AliEMCALSimParam.h"
#include "AliLog.h"
ClassImp(AliEMCALSimParam)
AliEMCALSimParam * AliEMCALSimParam::fgSimParam = 0 ;
AliEMCALSimParam::AliEMCALSimParam() :
TNamed(),
fDigitThreshold(0),
fMeanPhotonElectron(0),
fGainFluctuations(0),
fPinNoise(0),
fTimeNoise(0),
fTimeDelay(0),
fTimeResolutionPar0(0),
fTimeResolutionPar1(0),
fNADCEC(0),
fA(0.),
fB(0.),
fECPrimThreshold(0.)
{
fMeanPhotonElectron = 4400;
fGainFluctuations = 15.;
fPinNoise = 0.012;
fDigitThreshold = 3;
fTimeNoise = 1.28e-5;
fTimeResolutionPar0 = 0.26666;
fTimeResolutionPar1 = 1.45861;
fTimeDelay = 600e-9 ;
fNADCEC = (Int_t) TMath::Power(2,16) ;
fA = 0;
fB = 1.e+6;
fECPrimThreshold = 0.05;
}
AliEMCALSimParam::AliEMCALSimParam(const AliEMCALSimParam& ):
TNamed(),
fDigitThreshold(0),
fMeanPhotonElectron(0),
fGainFluctuations(0),
fPinNoise(0),
fTimeNoise(0),
fTimeDelay(0),
fTimeResolutionPar0(0),
fTimeResolutionPar1(0),
fNADCEC(0),
fA(0.),
fB(0.),
fECPrimThreshold(0.)
{
AliError("Should not use copy constructor for singleton") ;
fgSimParam = this ;
}
AliEMCALSimParam * AliEMCALSimParam::GetInstance(){
if(!fgSimParam){
fgSimParam = new AliEMCALSimParam() ;
}
return fgSimParam ;
}
AliEMCALSimParam& AliEMCALSimParam::operator = (const AliEMCALSimParam& simParam)
{
if(this != &simParam) {
AliError("Should not use operator= for singleton\n") ;
}
return *this;
}
void AliEMCALSimParam::Print(Option_t *) const
{
printf("=== Parameters in Digitizer === \n");
printf("\t Electronics noise in EMC (fPinNoise) = %f, (fTimeNoise) = %e\n", fPinNoise, fTimeNoise) ;
printf("\t Threshold in EMC (fDigitThreshold) = %d\n", fDigitThreshold) ;
printf("\t Time Resolution (fTimeResolutionPar0) = %g\n", fTimeResolutionPar0) ;
printf("\t Time Resolution (fTimeResolutionPar1) = %g\n", fTimeResolutionPar1) ;
printf("\t Time Delay (fTimeDelay) = %g\n", fTimeDelay) ;
printf("\t Mean Photon-Electron (fMeanPhotonElectron) = %d, Gain Fluc. (fGainFluctuations) %2.1f\n", fMeanPhotonElectron,fGainFluctuations) ;
printf("\t N channels in EC section ADC (fNADCEC) = %d\n", fNADCEC) ;
printf("\n");
printf("=== Parameters in SDigitizer === \n");
printf("\t sdigitization parameters A = %f\n", fA);
printf("\t B = %f\n", fB);
printf("\t Threshold for EC Primary assignment = %f\n", fECPrimThreshold);
}