@@ -167,15 +167,14 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger& GPUrestrict() merger, int32_
167167 NTolerated++;
168168 continue ;
169169 }
170-
171- if (currentClusterStatus) {
172- nMissed++;
173- nMissed2++;
174- continue ;
170+ // clang-format off
171+ CADEBUG (if (!CheckCov ()){printf (" INVALID COV AFTER PROPAGATE!!!\n " );});
172+ CADEBUG (printf (" \t %21sPropaga Alpha %8.3f , X %8.3f - Y %8.3f, Z %8.3f - QPt %7.2f (%7.2f), SP %5.2f (%5.2f) --- Res %8.3f %8.3f --- Cov sY %8.3f sZ %8.3f sSP %8.3f sPt %8.3f - YPt %8.3f - PErr %d" , " " , prop.GetAlpha (), mX , mP [0 ], mP [1 ], mP [4 ], prop.GetQPt0 (), mP [2 ], prop.GetSinPhi0 (), mP [0 ] - yy, mP [1 ] - zz, sqrtf (mC [0 ]), sqrtf (mC [2 ]), sqrtf (mC [5 ]), sqrtf (mC [14 ]), mC [10 ], retValProp));
173+ // clang-format on
174+ if (mNDF >= 0 && (mC [0 ] > param.rec .tpc .trackFitCovLimit || mC [2 ] > param.rec .tpc .trackFitCovLimit )) {
175+ break ; // bad chi2 for the whole track, stop the fit
175176 }
176177
177- CADEBUG (printf (" \t Sector %2d %11sTrack Alpha %8.3f %s, X %8.3f - Y %8.3f, Z %8.3f - QPt %7.2f (%7.2f), SP %5.2f (%5.2f) %28s --- Cov sY %8.3f sZ %8.3f sSP %8.3f sPt %8.3f - YPt %8.3f\n " , (int32_t )cluster.sector , " " , prop.GetAlpha (), (CAMath::Abs (prop.GetAlpha () - clAlpha) < 0.01 ? " " : " R!" ), mX , mP [0 ], mP [1 ], mP [4 ], prop.GetQPt0 (), mP [2 ], prop.GetSinPhi0 (), " " , sqrtf (mC [0 ]), sqrtf (mC [2 ]), sqrtf (mC [5 ]), sqrtf (mC [14 ]), mC [10 ]));
178-
179178 if ((uint32_t )interpolationIndex >= interpolation.size ) {
180179 merger.raiseError (GPUErrors::ERROR_MERGER_INTERPOLATION_OVERFLOW , interpolationIndex, interpolation.size );
181180 break ;
@@ -184,6 +183,14 @@ GPUd() bool GPUTPCGMTrackParam::Fit(GPUTPCGMMerger& GPUrestrict() merger, int32_
184183
185184 float uncorrectedY = -1e6f;
186185
186+ if (currentClusterStatus) {
187+ nMissed++;
188+ nMissed2++;
189+ continue ;
190+ }
191+
192+ CADEBUG (printf (" \t Sector %2d %11sTrack Alpha %8.3f %s, X %8.3f - Y %8.3f, Z %8.3f - QPt %7.2f (%7.2f), SP %5.2f (%5.2f) %28s --- Cov sY %8.3f sZ %8.3f sSP %8.3f sPt %8.3f - YPt %8.3f\n " , (int32_t )cluster.sector , " " , prop.GetAlpha (), (CAMath::Abs (prop.GetAlpha () - clAlpha) < 0.01 ? " " : " R!" ), mX , mP [0 ], mP [1 ], mP [4 ], prop.GetQPt0 (), mP [2 ], prop.GetSinPhi0 (), " " , sqrtf (mC [0 ]), sqrtf (mC [2 ]), sqrtf (mC [5 ]), sqrtf (mC [14 ]), mC [10 ]));
193+
187194 const bool crossCE = lastUpdateSector != 255 && ((lastUpdateSector < 18 ) ^ (clusters[ihit].sector < 18 ));
188195 int32_t retValHit = FitHit (merger, iTrk, track, xx, yy, zz, clusterState, clAlpha, iWay, inFlyDirection, crossCE, deltaZ, lastUpdateX, clusters, prop, inter, dEdx, dEdxAlt, sumInvSqrtCharge, nAvgCharge, ihit, ihitMergeFirst, allowChangeClusters, refit, finalFit, nMissed, nMissed2, resetT0, uncorrectedY);
189196 if (retValHit == 0 ) {
@@ -284,11 +291,7 @@ GPUdii() int32_t GPUTPCGMTrackParam::FitHit(GPUTPCGMMerger& GPUrestrict() merger
284291 }
285292
286293 const float maxSinForUpdate = CAMath::Sin (70 .f * CAMath::Deg2Rad ());
287- const bool sinPhiErr = mNDF > 0 && CAMath::Abs (prop.GetSinPhi0 ()) >= maxSinForUpdate;
288- if (mNDF >= 0 && (mC [0 ] > param.rec .tpc .trackFitCovLimit || mC [2 ] > param.rec .tpc .trackFitCovLimit )) {
289- return 1 ; // bad chi2 for the whole track, stop the fit
290- }
291- if (sinPhiErr) {
294+ if (mNDF > 0 && CAMath::Abs (prop.GetSinPhi0 ()) >= maxSinForUpdate) {
292295 MarkClusters (clusters, ihitMergeFirst, ihit, wayDirection, GPUTPCGMMergedTrackHit::flagHighIncl);
293296 nMissed2++;
294297 CADEBUG (printf (" --- break-sinphi\n " ));
0 commit comments