X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDrecoParam.cxx;h=9ff9cd06c37a64b88250afac104485032ff04484;hb=89f7cf4499fd4322a07a522e5d9c6b5cf68cccb2;hp=c60fb5386a69ff7c61a4adeeebe52b4a573add87;hpb=566bf88701f29a57ead95f17240d28f0d8c765d7;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDrecoParam.cxx b/TRD/AliTRDrecoParam.cxx index c60fb5386a6..9ff9cd06c37 100644 --- a/TRD/AliTRDrecoParam.cxx +++ b/TRD/AliTRDrecoParam.cxx @@ -25,11 +25,13 @@ // // /////////////////////////////////////////////////////////////////////////////// +#include "AliLog.h" + #include "AliTRDrecoParam.h" -#include "AliTRDrawStreamBase.h" ClassImp(AliTRDrecoParam) + //______________________________________________________________ AliTRDrecoParam::AliTRDrecoParam() :AliDetectorRecoParam() @@ -42,6 +44,7 @@ AliTRDrecoParam::AliTRDrecoParam() ,fkRoad1z(20.0) ,fkRoad2y(3.0) ,fkRoad2z(20.0) + ,fkPtThreshold(2.0) ,fkPlaneQualityThreshold(5.0)// 4.2? under Investigation ,fkRoadzMultiplicator(1.5) ,fkFindable(.333) @@ -49,18 +52,22 @@ AliTRDrecoParam::AliTRDrecoParam() ,fkChi2Y(.25) ,fkChi2YSlope(7.73) ,fkChi2ZSlope(0.069) - ,fkChi2YCut(0.5) + ,fkChi2YCut(0.5) ,fkPhiSlope(10.6) ,fkNMeanClusters(20.) ,fkNSigmaClusters(2.) ,fkNClusterNoise(0.) ,fkNMeanTracklets(5.5) ,fkTrackLikelihood(-15.) + ,fNumberOfConfigs(3) + ,fFlags(0) + ,fRawStreamVersion("REAL") ,fMinMaxCutSigma(4.) ,fMinLeftRightCutSigma(8.) ,fClusMaxThresh(4.5) ,fClusSigThresh(3.5) ,fTCnexp(1) + ,fRecEveryNTB(1) ,fNumberOfPresamples(0) ,fNumberOfPostsamples(0) { @@ -73,7 +80,25 @@ AliTRDrecoParam::AliTRDrecoParam() 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(); } //______________________________________________________________ @@ -88,6 +113,7 @@ AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref) ,fkRoad1z(ref.fkRoad1z) ,fkRoad2y(ref.fkRoad2y) ,fkRoad2z(ref.fkRoad2z) + ,fkPtThreshold(ref.fkPtThreshold) ,fkPlaneQualityThreshold(ref.fkPlaneQualityThreshold) ,fkRoadzMultiplicator(ref.fkRoadzMultiplicator) ,fkFindable(ref.fkFindable) @@ -95,18 +121,22 @@ AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref) ,fkChi2Y(ref.fkChi2Y) ,fkChi2YSlope(ref.fkChi2YSlope) ,fkChi2ZSlope(ref.fkChi2ZSlope) - ,fkChi2YCut(ref.fkChi2YCut) + ,fkChi2YCut(ref.fkChi2YCut) ,fkPhiSlope(ref.fkPhiSlope) ,fkNMeanClusters(ref.fkNMeanClusters) ,fkNSigmaClusters(ref.fkNSigmaClusters) ,fkNClusterNoise(ref.fkNClusterNoise) ,fkNMeanTracklets(ref.fkNMeanTracklets) ,fkTrackLikelihood(ref.fkTrackLikelihood) + ,fNumberOfConfigs(ref.fNumberOfConfigs) + ,fFlags(ref.fFlags) + ,fRawStreamVersion(ref.fRawStreamVersion) ,fMinMaxCutSigma(ref.fMinMaxCutSigma) ,fMinLeftRightCutSigma(ref.fMinLeftRightCutSigma) ,fClusMaxThresh(ref.fClusMaxThresh) ,fClusSigThresh(ref.fClusSigThresh) ,fTCnexp(ref.fTCnexp) + ,fRecEveryNTB(ref.fRecEveryNTB) ,fNumberOfPresamples(ref.fNumberOfPresamples) ,fNumberOfPostsamples(ref.fNumberOfPostsamples) { @@ -114,7 +144,9 @@ AliTRDrecoParam::AliTRDrecoParam(const AliTRDrecoParam &ref) // Copy constructor // 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)); } //______________________________________________________________ @@ -126,6 +158,21 @@ AliTRDrecoParam *AliTRDrecoParam::GetLowFluxParam() AliTRDrecoParam *rec = new AliTRDrecoParam(); rec->fkdNchdy = 12.; // pp in TRD + rec->SetVertexConstrained(); + rec->SetCheckTimeConsistency(); + return rec; + +} + +//______________________________________________________________ +AliTRDrecoParam *AliTRDrecoParam::GetLowFluxHLTParam() +{ + // + // Parameters for the high flux environment in HLT + // + + AliTRDrecoParam *rec = GetLowFluxParam(); + rec->fNumberOfConfigs = 2; return rec; } @@ -139,7 +186,21 @@ AliTRDrecoParam *AliTRDrecoParam::GetHighFluxParam() AliTRDrecoParam *rec = new AliTRDrecoParam(); rec->fkdNchdy = 4000.; // PbPb in TRD + rec->SetVertexConstrained(); + rec->SetCheckTimeConsistency(); + return rec; +} + +//______________________________________________________________ +AliTRDrecoParam *AliTRDrecoParam::GetHighFluxHLTParam() +{ + // + // Parameters for the high flux environment in HLT + // + + AliTRDrecoParam *rec = GetHighFluxParam(); + rec->fNumberOfConfigs = 1; return rec; } @@ -151,7 +212,6 @@ AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam() // Parameters for the cosmics data // - AliTRDrawStreamBase::SetRawStreamVersion("TB"); AliTRDrecoParam *par = new AliTRDrecoParam(); par->fSysCovMatrix[0] = 2.; // y direction (1 cm) par->fSysCovMatrix[1] = 2.; // z direction (1 cm) @@ -164,6 +224,8 @@ AliTRDrecoParam *AliTRDrecoParam::GetCosmicTestParam() par->fkNMeanClusters = 12.89; par->fkNSigmaClusters = 2.095; par->fkRoadzMultiplicator = 3.; + par->fStreamLevel[kTracker] = 1; + par->SetCheckTimeConsistency(); return par; } @@ -178,3 +240,29 @@ Float_t AliTRDrecoParam::GetNClusters() const 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; + } +} +