From: hristov Date: Sun, 14 Nov 2010 19:24:29 +0000 (+0000) Subject: Fixes for bug #75092: AliTPCtrackerMI - floating point exception in RAW reco of Pb... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=ef3508c5211446c6f0fbbd22747c6cea20fd26ac;hp=feed67f931505c6414beabb39375e372dc9d00a8;p=u%2Fmrichter%2FAliRoot.git Fixes for bug #75092: AliTPCtrackerMI - floating point exception in RAW reco of Pb+Pb data --- diff --git a/ITS/AliITStrackerMI.cxx b/ITS/AliITStrackerMI.cxx index 7cf10c3fa16..7f56c9b8eab 100644 --- a/ITS/AliITStrackerMI.cxx +++ b/ITS/AliITStrackerMI.cxx @@ -747,8 +747,16 @@ Int_t AliITStrackerMI::RefitInward(AliESDEvent *event) { ResetTrackToFollow(*t); fTrackToFollow.ResetClusters(); - if ((esd->GetStatus()&AliESDtrack::kTPCin)==0) + // ITS standalone tracks + if ((esd->GetStatus()&AliESDtrack::kTPCin)==0) { fTrackToFollow.ResetCovariance(10.); + // protection for loopers that can have parameters screwed up + if(TMath::Abs(fTrackToFollow.GetY())>1000. || + TMath::Abs(fTrackToFollow.GetZ())>1000.) { + delete t; + continue; + } + } //Refitting... Bool_t pe=(AliITSReconstructor::GetRecoParam()->GetComputePlaneEff() && @@ -2394,7 +2402,7 @@ Bool_t AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *track, track->SetModuleIndexInfo(ilayer,idet,modstatus,xloc,zloc); - if (extra) { // search for extra clusters in overlapped modules + if (extra && clAcc) { // search for extra clusters in overlapped modules AliITStrackV2 tmp(*track); if (!ComputeRoad(track,ilayer,idet,zmin,zmax,ymin,ymax)) return kFALSE; layer.SelectClusters(zmin,zmax,ymin,ymax); diff --git a/STEER/AliExternalTrackParam.cxx b/STEER/AliExternalTrackParam.cxx index 295830b4793..bbd1760334a 100644 --- a/STEER/AliExternalTrackParam.cxx +++ b/STEER/AliExternalTrackParam.cxx @@ -1868,6 +1868,14 @@ Bool_t AliExternalTrackParam::PropagateToBxByBz(Double_t xk, const Double_t b[3] Double_t dx=xk-fX; if (TMath::Abs(dx)<=kAlmost0) return kTRUE; if (TMath::Abs(fP[4])<=kAlmost0) return kFALSE; + // Do not propagate tracks outside the ALICE detector + if (TMath::Abs(dx)>1e5 || + TMath::Abs(GetY())>1e5 || + TMath::Abs(GetZ())>1e5) { + AliWarning(Form("Anomalous track, target X:%f",xk)); + Print(); + return kFALSE; + } Double_t crv=GetC(b[2]); if (TMath::Abs(b[2]) < kAlmost0Field) crv=0.;