From 18eba197ce842f16da78a7ae19b4e69a481acee4 Mon Sep 17 00:00:00 2001 From: hristov Date: Tue, 9 Sep 2008 09:57:40 +0000 Subject: [PATCH] Do not use tracks when the propagation to the vertex failed --- STEER/AliVertexerTracks.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/STEER/AliVertexerTracks.cxx b/STEER/AliVertexerTracks.cxx index de798a17268..1c5517d7081 100644 --- a/STEER/AliVertexerTracks.cxx +++ b/STEER/AliVertexerTracks.cxx @@ -558,21 +558,27 @@ Int_t AliVertexerTracks::PrepareTracks(TObjArray &trkArrayOrig, delete track; continue; } + Bool_t propagateOK = kFALSE; // propagate track to vertex if(optImpParCut<2 || fOnlyFitter) { // optImpParCut==1 or 0 - track->PropagateToDCA(initVertex,GetFieldkG(),100.,d0z0,covd0z0); + propagateOK = track->PropagateToDCA(initVertex,GetFieldkG(),100.,d0z0,covd0z0); } else { // optImpParCut==2 fCurrentVertex->GetSigmaXYZ(sigmaCurr); normdistx = TMath::Abs(fCurrentVertex->GetXv()-fNominalPos[0])/TMath::Sqrt(sigmaCurr[0]*sigmaCurr[0]+fNominalCov[0]); normdisty = TMath::Abs(fCurrentVertex->GetYv()-fNominalPos[1])/TMath::Sqrt(sigmaCurr[1]*sigmaCurr[1]+fNominalCov[2]); if(normdistx < 3. && normdisty < 3. && (sigmaCurr[0]+sigmaCurr[1])<(TMath::Sqrt(fNominalCov[0])+TMath::Sqrt(fNominalCov[2]))) { - track->PropagateToDCA(fCurrentVertex,GetFieldkG(),100.,d0z0,covd0z0); + propagateOK = track->PropagateToDCA(fCurrentVertex,GetFieldkG(),100.,d0z0,covd0z0); } else { - track->PropagateToDCA(initVertex,GetFieldkG(),100.,d0z0,covd0z0); + propagateOK = track->PropagateToDCA(initVertex,GetFieldkG(),100.,d0z0,covd0z0); } } + if(!propagateOK) { + if(fDebug) printf(" rejected\n"); + delete track; continue; + } + sigmad0 = TMath::Sqrt(covd0z0[0]); maxd0rphi = fNSigma*sigmad0; if(optImpParCut==1) maxd0rphi *= 5.; -- 2.43.5