Skip to content

Commit 9355f57

Browse files
authored
Merge pull request #1043 from stephenswat/refactor/more_ckf_info
Add additional information to candidate links
2 parents 4bc61e0 + 3672b56 commit 9355f57

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

core/include/traccc/finding/candidate_link.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ struct candidate_link {
3333

3434
// chi2
3535
traccc::scalar chi2;
36+
37+
// chi2 sum
38+
traccc::scalar chi2_sum;
39+
40+
// degrees of freedom
41+
unsigned int ndf_sum;
3642
};
3743

3844
} // namespace traccc

core/include/traccc/finding/details/combinatorial_kalman_filter.hpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,16 @@ combinatorial_kalman_filter(
186186
? 0
187187
: links[step - 1][param_to_link[step - 1][in_param_id]]
188188
.n_skipped);
189+
const scalar prev_chi2_sum =
190+
(step == 0
191+
? 0.f
192+
: links[step - 1][param_to_link[step - 1][in_param_id]]
193+
.chi2_sum);
194+
const unsigned int prev_ndf_sum =
195+
(step == 0
196+
? 0
197+
: links[step - 1][param_to_link[step - 1][in_param_id]]
198+
.ndf_sum);
189199

190200
TRACCC_VERBOSE("Processing input parameter "
191201
<< in_param_id + 1 << " / " << n_in_params << ": "
@@ -273,7 +283,10 @@ combinatorial_kalman_filter(
273283
.meas_idx = item_id,
274284
.seed_idx = orig_param_id,
275285
.n_skipped = skip_counter,
276-
.chi2 = chi2},
286+
.chi2 = chi2,
287+
.chi2_sum = prev_chi2_sum + chi2,
288+
.ndf_sum = prev_ndf_sum +
289+
trk_state.get_measurement().meas_dim},
277290
trk_state});
278291
}
279292
}
@@ -316,7 +329,9 @@ combinatorial_kalman_filter(
316329
.meas_idx = std::numeric_limits<unsigned int>::max(),
317330
.seed_idx = orig_param_id,
318331
.n_skipped = skip_counter + 1,
319-
.chi2 = std::numeric_limits<traccc::scalar>::max()});
332+
.chi2 = std::numeric_limits<traccc::scalar>::max(),
333+
.chi2_sum = prev_chi2_sum,
334+
.ndf_sum = prev_ndf_sum});
320335

321336
updated_params.push_back(in_param);
322337
TRACCC_VERBOSE("updated_params["

device/common/include/traccc/finding/device/impl/find_tracks.ipp

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -454,14 +454,23 @@ TRACCC_HOST_DEVICE inline void find_tracks(
454454
const unsigned int seed_idx =
455455
payload.step > 0 ? links.at(prev_link_idx).seed_idx
456456
: owner_global_thread_id;
457+
const scalar prev_chi2_sum =
458+
payload.step > 0 ? links.at(prev_link_idx).chi2_sum
459+
: 0.f;
460+
const unsigned int prev_ndf_sum =
461+
payload.step > 0 ? links.at(prev_link_idx).ndf_sum : 0;
457462

458463
tmp_links.at(p_offset + l_pos) = {
459464
.step = payload.step,
460465
.previous_candidate_idx = prev_link_idx,
461466
.meas_idx = meas_idx,
462467
.seed_idx = seed_idx,
463468
.n_skipped = n_skipped,
464-
.chi2 = chi2};
469+
.chi2 = chi2,
470+
.chi2_sum = prev_chi2_sum + chi2,
471+
.ndf_sum =
472+
prev_ndf_sum +
473+
std::get<0>(*result).get_measurement().meas_dim};
465474

466475
tmp_params.at(p_offset + l_pos) =
467476
std::get<0>(*result).filtered();
@@ -525,6 +534,8 @@ TRACCC_HOST_DEVICE inline void find_tracks(
525534
unsigned int prev_link_idx = std::numeric_limits<unsigned int>::max();
526535
unsigned int seed_idx = std::numeric_limits<unsigned int>::max();
527536
unsigned int n_skipped = std::numeric_limits<unsigned int>::max();
537+
unsigned int prev_ndf_sum = 0u;
538+
scalar prev_chi2_sum = 0.f;
528539

529540
unsigned int local_out_offset = 0;
530541
unsigned int local_num_params = 0;
@@ -542,6 +553,9 @@ TRACCC_HOST_DEVICE inline void find_tracks(
542553
n_skipped = payload.step == 0 ? 0 : links.at(prev_link_idx).n_skipped;
543554
in_param_can_create_hole =
544555
(n_skipped <= cfg.max_num_skipping_per_cand) && (!last_step);
556+
prev_ndf_sum = payload.step == 0 ? 0 : links.at(prev_link_idx).ndf_sum;
557+
prev_chi2_sum =
558+
payload.step == 0 ? 0.f : links.at(prev_link_idx).chi2_sum;
545559
}
546560

547561
/*
@@ -613,7 +627,9 @@ TRACCC_HOST_DEVICE inline void find_tracks(
613627
.meas_idx = std::numeric_limits<unsigned int>::max(),
614628
.seed_idx = seed_idx,
615629
.n_skipped = n_skipped + 1,
616-
.chi2 = std::numeric_limits<traccc::scalar>::max()};
630+
.chi2 = std::numeric_limits<traccc::scalar>::max(),
631+
.chi2_sum = prev_chi2_sum,
632+
.ndf_sum = prev_ndf_sum};
617633

618634
unsigned int param_pos = out_offset - payload.curr_links_idx;
619635

0 commit comments

Comments
 (0)