ClassImp(AliEMCALRecParam)
- TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings
+TObjArray* AliEMCALRecParam::fgkMaps =0; //ALTRO mappings
AliEMCALRecParam::AliEMCALRecParam() :
AliDetectorRecoParam(),
fMinECut(0.45),
fUnfold(kFALSE),
fLocMaxCut(0.03),
- fTimeCut(1.),// high value, accept all//clustering
- fTrkCutX(6.0),
- fTrkCutY(6.0),
- fTrkCutZ(6.0),
- fTrkCutR(10.0),
- fTrkCutAlphaMin(-50.0),
- fTrkCutAlphaMax(50.0),
- fTrkCutAngle(10000.0),
- fTrkCutNITS(3.0),
- fTrkCutNTPC(20.0), //track matching
+ fTimeCut(1.),// high value, accept all
+ fTimeMin(-1.),// small value, accept all
+ fTimeMax(1.),// high value, accept all//clustering
+ fClusterizerFlag(AliEMCALRecParam::kClusterizerv1),
+ fMthCutEta(0.025),
+ fMthCutPhi(0.05),
+ fStep(50),
+ fTrkCutPt(0.0),
+ fTrkCutNITS(0.0),
+ fTrkCutNTPC(50.0), //track matching
fHighLowGainFactor(16.0),
fOrderParameter(2),
fTau(2.35),
fNoiseThreshold(3),
fNPedSamples(5),
- fRemoveBadChannels(kTRUE),
- fFittingAlgorithm(0)//raw signal
+ fRemoveBadChannels(kFALSE),
+ fFittingAlgorithm(0),
+ fUseFALTRO(kTRUE),
+ fFitLEDEvents(kFALSE)//raw signal
{
// default reco values
// Pb Pb
// as a first step, all array elements are initialized to 0.0
- Int_t i, j;
+ Int_t i=0, j=0;
for (i = 0; i < 6; i++) {
for (j = 0; j < 6; j++) {
fGamma[i][j] = fPiZero[i][j] = fHadron[i][j] = 0.;
fHadron[1][3] = -2.368500e-03;
fHadron[1][4] = 0.;
-
fHadron[2][0] = 0.;
fHadron[2][1] = -2.463152e-02;
fHadron[2][2] = 1.349257e-01;
fHadron[2][3] = -1.089440e-03;
fHadron[2][4] = 0.;
-
-
fHadron[3][0] = 0.;
fHadron[3][1] = 5.101560e-01;
fHadron[3][2] = 1.458679e-01;
fHadronEnergyProb[3]= 2.030230e+00;
fHadronEnergyProb[4]= -6.402242e-02;
-
-}
-
+ //unfolding
+ fSSPars[0] = 0.9262;
+ fSSPars[1] = 3.365;
+ fSSPars[2] = 1.548;
+ fSSPars[3] = 0.1625;
+ fSSPars[4] = -0.4195;
+ fSSPars[5] = 0.;
+ fSSPars[6] = 0.;
+ fSSPars[7] = 2.332;
+ fPar5[0] = 12.31;
+ fPar5[1] = -0.007381;
+ fPar5[2] = -0.06936;
+ fPar6[0] = 0.05452;
+ fPar6[1] = 0.0001228;
+ fPar6[2] = 0.001361;
+}
//-----------------------------------------------------------------------------
AliEMCALRecParam::AliEMCALRecParam(const AliEMCALRecParam& rp) :
fMinECut(rp.fMinECut),
fUnfold(rp.fUnfold),
fLocMaxCut(rp.fLocMaxCut),
- fTimeCut(rp.fTimeCut),//clustering
- fTrkCutX(rp.fTrkCutX),
- fTrkCutY(rp.fTrkCutY),
- fTrkCutZ(rp.fTrkCutZ),
- fTrkCutR(rp.fTrkCutR),
- fTrkCutAlphaMin(rp.fTrkCutAlphaMin),
- fTrkCutAlphaMax(rp.fTrkCutAlphaMax),
- fTrkCutAngle(rp.fTrkCutAngle),
+ fTimeCut(rp.fTimeCut),
+ fTimeMin(rp.fTimeMin),
+ fTimeMax(rp.fTimeMax),//clustering
+ fClusterizerFlag(rp.fClusterizerFlag),
+ fMthCutEta(rp.fMthCutEta),
+ fMthCutPhi(rp.fMthCutPhi),
+ fStep(rp.fStep),
+ fTrkCutPt(rp.fTrkCutPt),
fTrkCutNITS(rp.fTrkCutNITS),
fTrkCutNTPC(rp.fTrkCutNTPC), // track matching
fHighLowGainFactor(rp.fHighLowGainFactor),
fNoiseThreshold(rp.fNoiseThreshold),
fNPedSamples(rp.fNPedSamples),
fRemoveBadChannels(rp.fRemoveBadChannels),
- fFittingAlgorithm(rp.fFittingAlgorithm) //raw signal
+ fFittingAlgorithm(rp.fFittingAlgorithm),
+ fUseFALTRO(rp.fUseFALTRO),
+ fFitLEDEvents(rp.fFitLEDEvents) //raw signal
{
//copy constructor
//PID values
- Int_t i, j;
+ Int_t i=0, j=0;
for (i = 0; i < 6; i++) {
for (j = 0; j < 6; j++) {
fGamma[i][j] = rp.fGamma[i][j];
}
+ //unfolding
+ for (i = 0; i < 8; i++) {
+ fSSPars[i] = rp.fSSPars[i];
+ }
+ for (i = 0; i < 3; i++) {
+ fPar5[i] = rp.fPar5[i];
+ fPar6[i] = rp.fPar6[i];
+ }
+
}
//-----------------------------------------------------------------------------
fMinECut = rp.fMinECut;
fUnfold = rp.fUnfold;
fLocMaxCut = rp.fLocMaxCut;
- fTimeCut = rp.fTimeCut;//clustering
- fTrkCutX = rp.fTrkCutX;
- fTrkCutY = rp.fTrkCutY;
- fTrkCutZ = rp.fTrkCutZ;
- fTrkCutR = rp.fTrkCutR;
- fTrkCutAlphaMin = rp.fTrkCutAlphaMin;
- fTrkCutAlphaMax = rp.fTrkCutAlphaMax;
- fTrkCutAngle = rp.fTrkCutAngle;
- fTrkCutNITS = rp.fTrkCutNITS;
- fTrkCutNTPC = rp.fTrkCutNTPC; //track matching
+ fTimeCut = rp.fTimeCut;
+ fTimeMax = rp.fTimeMax;
+ fTimeMin = rp.fTimeMin;//clustering
+ fClusterizerFlag = rp.fClusterizerFlag;
+ fMthCutEta = rp.fMthCutEta;
+ fMthCutPhi = rp.fMthCutPhi;
+ fStep = rp.fStep;
+ fTrkCutPt = rp.fTrkCutPt;
+ fTrkCutNITS = rp.fTrkCutNITS;
+ fTrkCutNTPC = rp.fTrkCutNTPC; //track matching
fHighLowGainFactor = rp.fHighLowGainFactor;
fOrderParameter = rp.fOrderParameter;
fTau = rp.fTau;
fNoiseThreshold = rp.fNoiseThreshold;
fNPedSamples = rp.fNPedSamples;
fRemoveBadChannels = rp.fRemoveBadChannels;
- fFittingAlgorithm = rp.fFittingAlgorithm;//raw signal
+ fFittingAlgorithm = rp.fFittingAlgorithm;
+ fUseFALTRO = rp.fUseFALTRO;
+ fFitLEDEvents = rp.fFitLEDEvents;//raw signal
//PID values
- Int_t i, j;
+ Int_t i=0, j=0;
for (i = 0; i < 6; i++) {
for (j = 0; j < 6; j++) {
fGamma[i][j] = rp.fGamma[i][j];
fPiZeroEnergyProb[i] = rp.fPiZeroEnergyProb[i];
fHadronEnergyProb[i] = rp.fHadronEnergyProb[i];
}
-
+ //unfolding
+ for (i = 0; i < 8; i++) {
+ fSSPars[i] = rp.fSSPars[i];
+ }
+ for (i = 0; i < 3; i++) {
+ fPar5[i] = rp.fPar5[i];
+ fPar6[i] = rp.fPar6[i];
+ }
+
}
return *this;
//PID parameters for pp implemented
// as a first step, all array elements are initialized to 0.0
- Int_t i, j;
+ Int_t i=0, j=0;
for (i = 0; i < 6; i++) {
for (j = 0; j < 6; j++) {
params->SetGamma(i,j,0.);
params->SetName("High Flux - Pb+Pb");
params->SetTitle("High Flux - Pb+Pb");
params->SetEventSpecie(AliRecoParam::kHighMult);
+ params->SetTrkCutPt(0.15);//This value can be higher if necessary
return params;
}
//-----------------------------------------------------------------------------
-void AliEMCALRecParam::Print(Option_t *) const
+void AliEMCALRecParam::Print(Option_t * opt) const
{
// Print reconstruction parameters to stdout
- AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f,\n fTimeCut=%f \n",
- fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut,fTimeCut));
-
- AliInfo(Form("Track-matching cuts :\n x %f, y %f, z %f, R %f \n alphaMin %f, alphaMax %f, Angle %f, NITS %f, NTPC %\n", fTrkCutX, fTrkCutY, fTrkCutZ, fTrkCutR,fTrkCutAlphaMin,fTrkCutAlphaMax, fTrkCutAngle,fTrkCutNITS,fTrkCutNTPC));
-
- AliInfo(Form("PID parameters, Gamma :\n"));
- for(Int_t i = 0; i < 6; i++){
- for(Int_t j = 0; j < 6; j++){
- printf(" %f, ", fGamma[i][j]);
+ // if nothing is specified print all, if "reco" just clusterization/track matching
+ // if "pid", just PID parameters, if "raw", just raw utils parameters.
+ if(!strcmp("",opt) || !strcmp("reco",opt)){
+ AliInfo(Form("Clusterizer selected: %d", fClusterizerFlag));
+ AliInfo(Form("Clusterization parameters :\n fClusteringThreshold=%.3f,\n fW0=%.3f,\n fMinECut=%.3f,\n fUnfold=%d,\n fLocMaxCut=%.3f,\n fTimeCut=%2.1f ns\n fTimeMin=%2.1f ns\n fTimeMax=%2.1f ns\n",
+ fClusteringThreshold,fW0,fMinECut,fUnfold,fLocMaxCut,fTimeCut*1.e9,fTimeMin*1e9,fTimeMax*1e9));
+
+ AliInfo(Form("Track-matching cuts :\n dEta<%f, dPhi<%f, step=%f[cm], pT>%f, NITS>%f, NTPC>%f\n",
+ fMthCutEta, fMthCutPhi, fStep, fTrkCutPt, fTrkCutNITS,fTrkCutNTPC));
+
+ AliInfo(Form("Unfolding parameters, Shower shape function :\n"));
+ for(Int_t i = 0; i < 8; i++){
+ printf(" %f, ", fSSPars[i]);
+ }
+ printf("\n Parameter 5 : ");
+ for(Int_t i = 0; i < 3; i++){
+ printf(" %f, ", fPar5[i]);
+ }
+ printf("\n Parameter 6 : ");
+ for(Int_t i = 0; i < 3; i++){
+ printf(" %f, ", fPar6[i]);
}
printf("\n");
}
-
- AliInfo(Form("PID parameters, Hadron :\n"));
- for(Int_t i = 0; i < 6; i++){
- for(Int_t j = 0; j < 6; j++){
- printf(" %f, ", fHadron[i][j]);
+ if(!strcmp("",opt) || !strcmp("pid",opt)){
+ AliInfo(Form("PID parameters, Gamma :\n"));
+ for(Int_t i = 0; i < 6; i++){
+ for(Int_t j = 0; j < 6; j++){
+ printf(" %f, ", fGamma[i][j]);
+ }
+ printf("\n");
+ }
+
+
+ AliInfo(Form("PID parameters, Hadron :\n"));
+ for(Int_t i = 0; i < 6; i++){
+ for(Int_t j = 0; j < 6; j++){
+ printf(" %f, ", fHadron[i][j]);
+ }
+ printf("\n");
}
+
printf("\n");
- }
-
- printf("\n");
-
- AliInfo(Form("PID parameters, Pi0zero :\n"));
- for(Int_t i = 0; i < 6; i++){
- for(Int_t j = 0; j < 6; j++){
- printf(" %f, ", fPiZero[i][j]);
+
+ AliInfo(Form("PID parameters, Pi0zero :\n"));
+ for(Int_t i = 0; i < 6; i++){
+ for(Int_t j = 0; j < 6; j++){
+ printf(" %f, ", fPiZero[i][j]);
+ }
+ printf("\n");
}
+
printf("\n");
+
+ }
+
+ if(!strcmp("",opt) || !strcmp("raw",opt)){
+ AliInfo(Form("Raw signal parameters: \n gain factor=%f, order=%d, tau=%f, noise threshold=%d, nped samples=%d \n",
+ fHighLowGainFactor,fOrderParameter,fTau,fNoiseThreshold,fNPedSamples));
+ AliInfo(Form("Raw signal: remove bad channels? %d, \n \t with fitting algorithm %d, \n \t Use FALTRO %d, Fit LED events %d \n",
+ fRemoveBadChannels, fFittingAlgorithm, fUseFALTRO, fFitLEDEvents));
}
-
- printf("\n");
-
-
- AliInfo(Form("Raw signal parameters: \n gain factor=%f, order=%d, tau=%f, noise threshold=%d, nped samples=%d \n",
- fHighLowGainFactor,fOrderParameter,fTau,fNoiseThreshold,fNPedSamples));
- AliInfo(Form("Raw signal: with bad channels? %d, \n \t with fitting algorithm %d \n",
- fRemoveBadChannels, fFittingAlgorithm));
-
}
//-----------------------------------------------------------------------------