@@ -321,7 +321,7 @@ void TrackInterpolation::interpolateTrack(int iSeed)
321321 trackData.clAvailTOF = gidTable[GTrackID::TOF].isIndexSet () ? 1 : 0 ;
322322
323323 TrackParams params; // for refitted track parameters and flagging rejected clusters
324- if (validateTrack (trackData, params, clusterResiduals)) {
324+ if (mParams -> skipOutlierFiltering || validateTrack (trackData, params, clusterResiduals)) {
325325 // track is good
326326 int nClValidated = 0 ;
327327 int iRow = 0 ;
@@ -396,7 +396,7 @@ void TrackInterpolation::extrapolateTrack(int iSeed)
396396 trackData.clIdx .setEntries (nMeasurements);
397397
398398 TrackParams params; // for refitted track parameters and flagging rejected clusters
399- if (validateTrack (trackData, params, clusterResiduals)) {
399+ if (mParams -> skipOutlierFiltering || validateTrack (trackData, params, clusterResiduals)) {
400400 // track is good
401401 int nClValidated = 0 ;
402402 int iRow = 0 ;
@@ -437,7 +437,7 @@ bool TrackInterpolation::validateTrack(const TrackData& trk, TrackParams& params
437437 LOG (debug) << " Skipping track too far from helix approximation" ;
438438 return false ;
439439 }
440- if (fabsf (params.qpt ) > mParams ->maxQ2Pt ) {
440+ if (fabsf (mBz ) > 0.01 && fabsf ( params.qpt ) > mParams ->maxQ2Pt ) {
441441 LOG (debug) << " Skipping track with too high q/pT: " << params.qpt ;
442442 return false ;
443443 }
@@ -500,6 +500,10 @@ bool TrackInterpolation::compareToHelix(const TrackData& trk, TrackParams& param
500500 sPath [iP] = sPath [iP - 1 ] + ds;
501501 }
502502 }
503+ if (fabsf (mBz ) < 0.01 ) {
504+ // for B=0 we don't need to try a circular fit...
505+ return true ;
506+ }
503507 float xcSec = 0 .f ;
504508 float ycSec = 0 .f ;
505509 float r = 0 .f ;
0 commit comments