@@ -424,6 +424,7 @@ TRACCC_HOST_DEVICE inline void find_tracks(
424424 .meas_idx = meas_idx,
425425 .seed_idx = seed_idx,
426426 .n_skipped = n_skipped,
427+ .n_consecutive_skipped = 0 ,
427428 .chi2 = chi2,
428429 .chi2_sum = prev_chi2_sum + chi2,
429430 .ndf_sum =
@@ -494,6 +495,8 @@ TRACCC_HOST_DEVICE inline void find_tracks(
494495 unsigned int prev_link_idx = std::numeric_limits<unsigned int >::max ();
495496 unsigned int seed_idx = std::numeric_limits<unsigned int >::max ();
496497 unsigned int n_skipped = std::numeric_limits<unsigned int >::max ();
498+ unsigned int n_consecutive_skipped =
499+ std::numeric_limits<unsigned int >::max ();
497500 unsigned int prev_ndf_sum = 0u ;
498501 scalar prev_chi2_sum = 0 .f ;
499502
@@ -511,8 +514,13 @@ TRACCC_HOST_DEVICE inline void find_tracks(
511514 seed_idx =
512515 payload.step > 0 ? links.at (prev_link_idx).seed_idx : in_param_id;
513516 n_skipped = payload.step == 0 ? 0 : links.at (prev_link_idx).n_skipped ;
517+ n_consecutive_skipped =
518+ payload.step == 0 ? 0
519+ : links.at (prev_link_idx).n_consecutive_skipped ;
514520 in_param_can_create_hole =
515- (n_skipped < cfg.max_num_skipping_per_cand ) && (!last_step);
521+ (n_skipped < cfg.max_num_skipping_per_cand ) &&
522+ (n_consecutive_skipped < cfg.max_num_consecutive_skipped ) &&
523+ (!last_step);
516524 prev_ndf_sum = payload.step == 0 ? 0 : links.at (prev_link_idx).ndf_sum ;
517525 prev_chi2_sum =
518526 payload.step == 0 ? 0 .f : links.at (prev_link_idx).chi2_sum ;
@@ -587,6 +595,7 @@ TRACCC_HOST_DEVICE inline void find_tracks(
587595 .meas_idx = std::numeric_limits<unsigned int >::max (),
588596 .seed_idx = seed_idx,
589597 .n_skipped = n_skipped + 1 ,
598+ .n_consecutive_skipped = n_consecutive_skipped + 1 ,
590599 .chi2 = std::numeric_limits<traccc::scalar>::max (),
591600 .chi2_sum = prev_chi2_sum,
592601 .ndf_sum = prev_ndf_sum};
0 commit comments