ClassImp(AliTRDrecoParam)
+
//______________________________________________________________
AliTRDrecoParam::AliTRDrecoParam()
:AliDetectorRecoParam()
,fkRoad1z(20.0)
,fkRoad2y(3.0)
,fkRoad2z(20.0)
+ ,fkPtThreshold(2.0)
,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation
+ ,fkRoadzMultiplicator(1.5)
,fkFindable(.333)
,fkChi2Z(30./*14.*//*12.5*/)
,fkChi2Y(.25)
- ,fkChi2YCut(7.73)
- ,fkChi2ZCut(0.069)
- ,fkPhiCut(10.6)
+ ,fkChi2YSlope(7.73)
+ ,fkChi2ZSlope(0.069)
+ ,fkChi2YCut(0.5)
+ ,fkPhiSlope(10.6)
,fkNMeanClusters(20.)
,fkNSigmaClusters(2.)
,fkNClusterNoise(0.)
,fkNMeanTracklets(5.5)
,fkTrackLikelihood(-15.)
+ ,fFlags(0)
+ ,fRawStreamVersion("REAL")
,fMinMaxCutSigma(4.)
,fMinLeftRightCutSigma(8.)
,fClusMaxThresh(4.5)
//
// Default constructor
//
- SetTailCancelation();
- SetLUT();
- SetClusterSharing(kFALSE);
- SetVertexConstrained();
- SetImproveTracklets(kFALSE);
-
- fSysCovMatrix[0] = 1.; // y direction (1 cm)
- fSysCovMatrix[1] = 1.; // z direction (1 cm)
+ fSysCovMatrix[0] = 0.; // y direction (1 cm)
+ fSysCovMatrix[1] = 0.; // z direction (1 cm)
fSysCovMatrix[2] = 0.; // snp
fSysCovMatrix[3] = 0.; // tgl
fSysCovMatrix[4] = 0.; // 1/pt
+ // Xe tail cancellation parameters
+ fTCParams[0] = 1.156; // r1
+ fTCParams[1] = 0.130; // r2
+ fTCParams[2] = 0.114; // c1
+ fTCParams[3] = 0.624; // c2
+ // Ar tail cancellation parameters
+ fTCParams[4] = 6.; // r1
+ fTCParams[5] = 0.62; // r2
+ fTCParams[6] = 0.0087;// c1
+ fTCParams[7] = 0.07; // c2
+
memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
+ memset(fStreamLevel, 0, kTRDreconstructionTasks * sizeof(Int_t));
+
+ SetPIDNeuralNetwork();
+ SetEightSlices();
+ SetImproveTracklets();
+ SetLUT();
+ SetTailCancelation();
}
//______________________________________________________________
,fkRoad1z(ref.fkRoad1z)
,fkRoad2y(ref.fkRoad2y)
,fkRoad2z(ref.fkRoad2z)
+ ,fkPtThreshold(ref.fkPtThreshold)
,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold)
+ ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator)
,fkFindable(ref.fkFindable)
,fkChi2Z(ref.fkChi2Z)
,fkChi2Y(ref.fkChi2Y)
- ,fkChi2YCut(ref.fkChi2YCut)
- ,fkChi2ZCut(ref.fkChi2ZCut)
- ,fkPhiCut(ref.fkPhiCut)
+ ,fkChi2YSlope(ref.fkChi2YSlope)
+ ,fkChi2ZSlope(ref.fkChi2ZSlope)
+ ,fkChi2YCut(ref.fkChi2YCut)
+ ,fkPhiSlope(ref.fkPhiSlope)
,fkNMeanClusters(ref.fkNMeanClusters)
,fkNSigmaClusters(ref.fkNSigmaClusters)
,fkNClusterNoise(ref.fkNClusterNoise)
,fkNMeanTracklets(ref.fkNMeanTracklets)
,fkTrackLikelihood(ref.fkTrackLikelihood)
+ ,fFlags(ref.fFlags)
+ ,fRawStreamVersion(ref.fRawStreamVersion)
,fMinMaxCutSigma(ref.fMinMaxCutSigma)
,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma)
,fClusMaxThresh(ref.fClusMaxThresh)
//
// Copy constructor
//
- SetClusterSharing(ref.IsClusterSharing());
- SetVertexConstrained(ref.IsVertexConstrained());
- SetLUT(ref.IsLUT());
- SetTailCancelation(ref.IsTailCancelation());
- SetImproveTracklets(ref.HasImproveTracklets());
-
memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
+ memcpy(fTCParams, ref.fTCParams, 8*sizeof(Double_t));
memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
+ memcpy(fStreamLevel, ref.fStreamLevel, kTRDreconstructionTasks * sizeof(Int_t));
}
//______________________________________________________________
AliTRDrecoParam *rec = new AliTRDrecoParam();
rec->fkdNchdy = 12.; // pp in TRD
+ rec->SetVertexConstrained();
+ rec->SetCheckTimeConsistency();
return rec;
}
AliTRDrecoParam *rec = new AliTRDrecoParam();
rec->fkdNchdy = 4000.; // PbPb in TRD
- rec->SetImproveTracklets(kTRUE);
-
+ rec->SetVertexConstrained();
+ rec->SetCheckTimeConsistency();
return rec;
}
// Parameters for the cosmics data
//
- AliTRDrawStreamBase::SetRawStreamVersion("TB");
AliTRDrecoParam *par = new AliTRDrecoParam();
- par->SetVertexConstrained(kFALSE);
- par->fkChi2YCut = 1.136;
- par->fkChi2ZCut = 0.069;
+ par->fSysCovMatrix[0] = 2.; // y direction (1 cm)
+ par->fSysCovMatrix[1] = 2.; // z direction (1 cm)
+ par->fkChi2YSlope = 0.11853;
+ par->fkChi2ZSlope = 0.04527;
+ par->fkChi2YCut = 1.;
+ par->fkPhiSlope = 10.; //3.17954;
par->fkMaxTheta = 2.1445;
par->fkMaxPhi = 2.7475;
- par->fkNMeanClusters = 12.;
- par->fkNSigmaClusters = 2.5;
+ par->fkNMeanClusters = 12.89;
+ par->fkNSigmaClusters = 2.095;
+ par->fkRoadzMultiplicator = 3.;
+ par->fStreamLevel[kTracker] = 1;
+ par->SetCheckTimeConsistency();
return par;
}
nclusters *= 1.+fkNClusterNoise;
return nclusters;
}
+
+//______________________________________________________________
+void AliTRDrecoParam::SetPIDLQslices(Int_t s)
+{
+// Setting number of slices used by the PID LQ method s={1, 2}
+// If PID NN is set this function will change to PID LQ.
+
+ if(IsPIDNeuralNetwork()){
+ AliWarning("PID set to NN. Changing to LQ.");
+ SetPIDNeuralNetwork(kFALSE);
+ }
+
+ switch(s){
+ case 1:
+ if(TESTBIT(fFlags, kLQ2D)) CLRBIT(fFlags, kLQ2D);
+ break;
+ case 2:
+ SETBIT(fFlags, kLQ2D);
+ break;
+ default:
+ AliWarning(Form("N[%d] PID LQ slices not implemented. Using default 2.", s));
+ SETBIT(fFlags, kLQ2D);
+ break;
+ }
+}
+