From b06a50a5f78aa1afba6e6c3f5e569754ded23417 Mon Sep 17 00:00:00 2001 From: abercuci Date: Wed, 17 Feb 2010 22:20:51 +0000 Subject: [PATCH] add pt threshold for TRD updating Kalman as discussed in the PWG1 meeting from 17.02.10 in view of solving savannah 44264 --- TRD/AliTRDrecoParam.cxx | 2 ++ TRD/AliTRDrecoParam.h | 8 +++++--- TRD/AliTRDtrackV1.cxx | 4 ++-- TRD/AliTRDtrackV1.h | 2 +- TRD/AliTRDtrackerV1.cxx | 6 ++++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/TRD/AliTRDrecoParam.cxx b/TRD/AliTRDrecoParam.cxx index f868a602d7a..78f8ae63f0d 100644 --- a/TRD/AliTRDrecoParam.cxx +++ b/TRD/AliTRDrecoParam.cxx @@ -43,6 +43,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) @@ -109,6 +110,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) diff --git a/TRD/AliTRDrecoParam.h b/TRD/AliTRDrecoParam.h index a33716bb67c..cc5f3691ce2 100644 --- a/TRD/AliTRDrecoParam.h +++ b/TRD/AliTRDrecoParam.h @@ -82,6 +82,7 @@ public: Int_t GetNumberOfPostsamples() const { return fNumberOfPostsamples;} Bool_t IsArgon() const { return TESTBIT(fFlags, kDriftGas); } Bool_t IsCheckTimeConsistency() const { return kCheckTimeConsistency;} + Bool_t IsOverPtThreshold(Double_t pt) const {return Bool_t(pt>fkPtThreshold);} Bool_t IsXenon() const { return !TESTBIT(fFlags, kDriftGas); } Bool_t IsPIDNeuralNetwork() const { return TESTBIT(fFlags, kSteerPID);} Bool_t IsVertexConstrained() const { return TESTBIT(fFlags, kVertexConstraint); } @@ -126,6 +127,7 @@ public: void SetClusMaxThresh(Float_t thresh) { fClusMaxThresh = thresh; }; void SetClusSigThresh(Float_t thresh) { fClusSigThresh = thresh; }; inline void SetPIDThreshold(Double_t *pid); + void SetPtThreshold(Double_t pt) {fkPtThreshold = pt;} void SetNexponential(Int_t nexp) { fTCnexp = nexp; }; inline void SetTCParams(Double_t *par); inline void SetStreamLevel(ETRDReconstructionTask task, Int_t level); @@ -138,7 +140,7 @@ private: Double_t fkdNchdy; // dNch/dy Double_t fkMaxTheta; // Maximum theta Double_t fkMaxPhi; // Maximum phi - momentum cut - + // Tracker params Double_t fkRoad0y; // Road for middle cluster Double_t fkRoad0z; // Road for middle cluster @@ -147,7 +149,7 @@ private: Double_t fkRoad2y; // Road in y for extrapolated cluster Double_t fkRoad2z; // Road in z for extrapolated cluster - + Double_t fkPtThreshold; // pt threshold for using TRD points for updating Kalaman track Double_t fkPlaneQualityThreshold; // Quality threshold Double_t fkRoadzMultiplicator; // Multiplicator for the Roads in z Double_t fkFindable; // minimum ratio of clusters per tracklet supposed to be attached. @@ -185,7 +187,7 @@ private: Int_t fNumberOfPresamples; // number of presamples Int_t fNumberOfPostsamples; // number of postsamples - ClassDef(AliTRDrecoParam, 10) // Reconstruction parameters for TRD detector + ClassDef(AliTRDrecoParam, 11) // Reconstruction parameters for TRD detector }; diff --git a/TRD/AliTRDtrackV1.cxx b/TRD/AliTRDtrackV1.cxx index 2e158db5ecb..baf5286bb19 100644 --- a/TRD/AliTRDtrackV1.cxx +++ b/TRD/AliTRDtrackV1.cxx @@ -788,13 +788,13 @@ void AliTRDtrackV1::UnsetTracklet(Int_t plane) //_______________________________________________________________ -Bool_t AliTRDtrackV1::Update(Double_t *p, Double_t *cov, Double_t chi2) +Bool_t AliTRDtrackV1::Update(Double_t *p, Double_t *cov, Double_t chi2, Bool_t use) { // // Update track // AliDebug(2, Form("Point:\n p=[%6.2f %6.2f]\n V=[%6.2f %6.2f]\n [%6.2f %6.2f]", p[0], p[1], cov[0], cov[1], cov[1], cov[2])); - if(!AliExternalTrackParam::Update(p, cov)) return kFALSE; + if(use && !AliExternalTrackParam::Update(p, cov)) return kFALSE; // Register info to track SetNumberOfClusters(); diff --git a/TRD/AliTRDtrackV1.h b/TRD/AliTRDtrackV1.h index 49624cd6772..10ec473b619 100644 --- a/TRD/AliTRDtrackV1.h +++ b/TRD/AliTRDtrackV1.h @@ -131,7 +131,7 @@ public: inline void SetReconstructor(const AliTRDReconstructor *rec); inline Float_t StatusForTOF(); void UnsetTracklet(Int_t plane); - Bool_t Update(Double_t *p, Double_t *cov, Double_t chi2); + Bool_t Update(Double_t *p, Double_t *cov, Double_t chi2, Bool_t useTRD=kTRUE); Bool_t Update(const AliCluster *, Double_t, Int_t) { return kFALSE; }; void UpdateESDtrack(AliESDtrack *t); diff --git a/TRD/AliTRDtrackerV1.cxx b/TRD/AliTRDtrackerV1.cxx index 537468d45c8..785b48847d8 100644 --- a/TRD/AliTRDtrackerV1.cxx +++ b/TRD/AliTRDtrackerV1.cxx @@ -699,7 +699,9 @@ Int_t AliTRDtrackerV1::FollowBackProlongation(AliTRDtrackV1 &t) tracklets[ip] = t.GetTracklet(ip); t.UnsetTracklet(ip); } - Bool_t kStoreIn = kTRUE, kPropagateIn = kTRUE; + Bool_t kStoreIn(kTRUE), // + kPropagateIn(kTRUE),// + kUseTRD(fkReconstructor->GetRecoParam()->IsOverPtThreshold(t.Pt()));// use TRD measurment to update Kalman // Loop through the TRD layers TGeoHMatrix *matrix = NULL; @@ -933,7 +935,7 @@ Int_t AliTRDtrackerV1::FollowBackProlongation(AliTRDtrackV1 &t) AliDebug(4, Form("Failed Chi2[%f]", chi2)); continue; } - if(!t.Update(p, cov, chi2)) { + if(!t.Update(p, cov, chi2, kUseTRD)) { n=-1; t.SetStatus(AliTRDtrackV1::kUpdate); if(debugLevel > 2){ -- 2.43.5