#include "AliLog.h"
#include "AliTOFRecoParam.h"
ClassImp(AliTOFRecoParam)
AliTOFRecoParam::AliTOFRecoParam():
AliDetectorRecoParam(),
fTimeZero(kFALSE),
fTimeZerofromT0(kFALSE),
fTimeZerofromTOF(kFALSE),
fTimeWalkCorr(kFALSE),
fApplyPbPbCuts(kFALSE),
fWindowSizeMaxY(50.),
fWindowSizeMaxZ(35.),
fWindowScaleFact(5.),
fDistanceCut(3.),
fSensRadius(379.5),
fStepSize(0.1),
fMaxChi2(10.),
fMaxChi2TRD(150.),
fTimeResolution(80.),
fTimeNSigma(5.),
fMaxDeltaTime(2),
fStartTimeType(1)
{
SetNameTitle("TOF","TOF");
}
AliTOFRecoParam::AliTOFRecoParam(const AliTOFRecoParam &p):
AliDetectorRecoParam(p),
fTimeZero(p.fTimeZero),
fTimeZerofromT0(p.fTimeZerofromT0),
fTimeZerofromTOF(p.fTimeZerofromTOF),
fTimeWalkCorr(p.fTimeWalkCorr),
fApplyPbPbCuts(p.fApplyPbPbCuts),
fWindowSizeMaxY(p.fWindowSizeMaxY),
fWindowSizeMaxZ(p.fWindowSizeMaxZ),
fWindowScaleFact(p.fWindowScaleFact),
fDistanceCut(p.fDistanceCut),
fSensRadius(p.fSensRadius),
fStepSize(p.fStepSize),
fMaxChi2(p.fMaxChi2),
fMaxChi2TRD(p.fMaxChi2TRD),
fTimeResolution(p.fTimeResolution),
fTimeNSigma(p.fTimeNSigma),
fMaxDeltaTime(p.fMaxDeltaTime),
fStartTimeType(p.fStartTimeType)
{
}
AliTOFRecoParam& AliTOFRecoParam::operator=(const AliTOFRecoParam &p)
{
if (this == &p)
return *this;
AliDetectorRecoParam::operator=(p);
fTimeZero=p.fTimeZero;
fTimeZerofromT0=p.fTimeZerofromT0;
fTimeZerofromTOF=p.fTimeZerofromTOF;
fTimeWalkCorr=p.fTimeWalkCorr;
fApplyPbPbCuts=p.fApplyPbPbCuts;
fWindowSizeMaxY=p.fWindowSizeMaxY;
fWindowSizeMaxZ=p.fWindowSizeMaxZ;
fDistanceCut=p.fDistanceCut;
fWindowScaleFact=p.fWindowScaleFact;
fStepSize=p.fStepSize;
fSensRadius=p.fSensRadius;
fMaxChi2=p.fMaxChi2;
fMaxChi2TRD=p.fMaxChi2TRD;
fTimeResolution=p.fTimeResolution;
fTimeNSigma=p.fTimeNSigma;
fMaxDeltaTime=p.fMaxDeltaTime;
fStartTimeType=p.fStartTimeType;
return *this;
}
AliTOFRecoParam::~AliTOFRecoParam()
{
}
AliTOFRecoParam *AliTOFRecoParam::GetPbPbparam(){
AliTOFRecoParam *param = new AliTOFRecoParam();
param->fApplyPbPbCuts = kTRUE;
param->fWindowScaleFact = 5.;
param->fDistanceCut = 3.;
param->fMaxDeltaTime = 2;
return param;
}
AliTOFRecoParam *AliTOFRecoParam::GetPPparam(){
AliTOFRecoParam *param = new AliTOFRecoParam();
param->fApplyPbPbCuts = kFALSE;
param->fWindowScaleFact = 5.;
param->fDistanceCut = 10.;
param->fMaxDeltaTime = 2;
return param;
}
void AliTOFRecoParam::PrintParameters() const
{
AliInfo(Form(" Use Time Zero info in Pid: %i", fTimeZero));
AliInfo(Form(" Use Time Zero as determined by T0: %i", fTimeZerofromT0));
AliInfo(Form(" Use Time Zero as determined from TOF: %i",
fTimeZerofromTOF));
AliInfo(Form(" Correct for signal time walk in z: %i", fTimeWalkCorr));
AliInfo(Form(" Apply high flux cuts: %i", fApplyPbPbCuts));
AliInfo(Form(" Cluster search window - size, Y: %f cm", fWindowSizeMaxY));
AliInfo(Form(" Cluster search window - size, Z: %f cm", fWindowSizeMaxZ));
AliInfo(Form(" Cluster search window - scale factor: %f",
fWindowScaleFact));
AliInfo(Form(" Cut on the closest approach distance: %f", fDistanceCut));
AliInfo(Form(" Average radius of sensitive volumes: %f cm", fSensRadius));
AliInfo(Form(" Propagation step size: %f cm", fStepSize));
AliInfo(Form(" Maximum X2 track-tof clusters: %f", fMaxChi2));
AliInfo(Form(" Maximum X2 track-tof clusters (TRD): %f", fMaxChi2TRD));
AliInfo(Form(" Time resolution for responce function in PID: %f ps",
fTimeResolution));
AliInfo(Form(" N-Sigma Range used for responce function in PID: %f",
fTimeNSigma));
AliInfo(Form(" Max time difference between two (or more) time measurements"
" coming from two (or more) neighbouring pads"
" to define if they are coming from the same ionization event"
" or not: %2d bins -> %f ps",
fMaxDeltaTime, fMaxDeltaTime*AliTOFGeometry::TdcBinWidth()));
}