Skip to content

Commit cea18b8

Browse files
committed
new stuff
1 parent fb0537f commit cea18b8

File tree

8 files changed

+41
-28
lines changed

8 files changed

+41
-28
lines changed

core/include/traccc/finding/actors/ckf_aborter.hpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
#include "traccc/definitions/qualifiers.hpp"
1313

1414
// detray include(s)
15+
#include <detray/definitions/indexing.hpp>
1516
#include <detray/propagator/base_actor.hpp>
17+
#include <detray/utils/log.hpp>
1618

1719
// System include(s)
1820
#include <limits>
@@ -24,35 +26,34 @@ struct ckf_aborter : detray::actor {
2426
struct state {
2527
// minimal step length to prevent from staying on the same surface
2628
scalar min_step_length = 0.5f;
29+
2730
/// Maximum step counts that track can make to reach the next surface
28-
unsigned int max_count = 100;
31+
unsigned int max_count = 100u;
32+
unsigned int count = 0u;
2933

34+
detray::dindex surface_index{detray::dindex_invalid};
3035
bool success = false;
31-
unsigned int count = 0;
32-
33-
scalar path_from_surface{0.f};
3436
};
3537

3638
template <typename propagator_state_t>
3739
TRACCC_HOST_DEVICE void operator()(state &abrt_state,
3840
propagator_state_t &prop_state) const {
3941

4042
auto &navigation = prop_state._navigation;
41-
const auto &stepping = prop_state._stepping;
4243

4344
abrt_state.count++;
44-
abrt_state.path_from_surface += stepping.step_size();
45+
46+
DETRAY_DEBUG_HOST("Checking CKF aborter...");
47+
DETRAY_DEBUG_HOST("=> last sensitive: " << abrt_state.surface_index);
4548

4649
// Stop at the next sensitive surface
4750
if (navigation.is_on_sensitive() &&
48-
abrt_state.path_from_surface > abrt_state.min_step_length) {
49-
prop_state._heartbeat &= navigation.pause();
50-
abrt_state.success = navigation.is_alive();
51-
}
51+
(abrt_state.surface_index != navigation.barcode().index())) {
52+
abrt_state.surface_index = navigation.barcode().index();
5253

53-
// Reset path from surface
54-
if (navigation.is_on_sensitive()) {
55-
abrt_state.path_from_surface = 0.f;
54+
DETRAY_DEBUG_HOST("FOUND SURFACE : " << abrt_state.surface_index);
55+
prop_state._heartbeat &= navigation.pause();
56+
abrt_state.success = true;
5657
}
5758

5859
if (abrt_state.count > abrt_state.max_count) {

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ combinatorial_kalman_filter(
128128
std::vector<std::pair<unsigned int, unsigned int>> tips;
129129

130130
// Create propagator
131+
// auto config_alt{config.propagation};
132+
// config_alt.navigation.estimate_scattering_noise = false;
131133
traccc::details::ckf_propagator_t<detector_t, bfield_t> propagator(
132134
config.propagation);
133135

@@ -336,9 +338,9 @@ combinatorial_kalman_filter(
336338
.previous_candidate_idx = in_param_id,
337339
.meas_idx = std::numeric_limits<unsigned int>::max(),
338340
.seed_idx = orig_param_id,
341+
.n_cand = n_cand,
339342
.n_skipped = is_edge ? skip_counter : skip_counter + 1,
340343
.n_consecutive_skipped = consecutive_skipped + 1,
341-
.n_cand = n_cand,
342344
.chi2 = std::numeric_limits<traccc::scalar>::max(),
343345
.chi2_sum = prev_chi2_sum,
344346
.ndf_sum = prev_ndf_sum});
@@ -519,9 +521,11 @@ combinatorial_kalman_filter(
519521
config.propagation};
520522
typename detray::momentum_aborter<scalar_type>::state s4{};
521523
typename ckf_aborter::state s5;
524+
522525
// Update the actor config
523526
s4.min_pT(static_cast<scalar_type>(config.min_pT));
524527
s4.min_p(static_cast<scalar_type>(config.min_p));
528+
s5.surface_index = param.surface_link().index();
525529
s5.min_step_length = config.min_step_length_for_next_surface;
526530
s5.max_count = config.max_step_counts_for_next_surface;
527531

@@ -531,7 +535,7 @@ combinatorial_kalman_filter(
531535
detray::tie(s0, s1, s2, s3, s4, s5));
532536

533537
DETRAY_DEBUG_HOST(
534-
"FINISHED PROPAGATING. PATH: " << s5.path_from_surface);
538+
"FINISHED PROPAGATING. SF: " << s5.surface_index);
535539

536540
// If a surface found, add the parameter for the next
537541
// step

core/include/traccc/finding/finding_config.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ struct finding_config {
2727

2828
/// Min/Max number of track candidates per track
2929
unsigned int min_track_candidates_per_track = 3;
30-
unsigned int max_track_candidates_per_track = 100;
30+
unsigned int max_track_candidates_per_track = 200;
3131

3232
/// Maximum allowed number of skipped steps per candidate
3333
unsigned int max_num_skipping_per_cand = 3;

core/include/traccc/fitting/kalman_filter/gain_matrix_updater.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#pragma once
99

1010
// Project include(s).
11+
#include <detray/utils/log.hpp>
12+
1113
#include "traccc/definitions/qualifiers.hpp"
1214
#include "traccc/definitions/track_parametrization.hpp"
1315
#include "traccc/edm/measurement.hpp"
@@ -161,6 +163,11 @@ struct gain_matrix_updater {
161163
trk_state.filtered_params().set_covariance(filtered_cov);
162164
trk_state.filtered_chi2() = getter::element(chi2, 0, 0);
163165

166+
DETRAY_DEBUG_HOST("MEASUREMENT POS: " << meas_local);
167+
DETRAY_DEBUG_HOST("MEASUREMENT VARIANCE: " << V);
168+
DETRAY_DEBUG_HOST("FILTERED PARAM: " << trk_state.filtered_params());
169+
DETRAY_DEBUG_HOST("CHI2: " << trk_state.filtered_chi2());
170+
164171
// Wrap the phi in the range of [-pi, pi]
165172
wrap_phi(trk_state.filtered_params());
166173

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,9 +593,9 @@ TRACCC_HOST_DEVICE inline void find_tracks(
593593
.previous_candidate_idx = prev_link_idx,
594594
.meas_idx = std::numeric_limits<unsigned int>::max(),
595595
.seed_idx = seed_idx,
596+
.n_cand = n_cand,
596597
.n_skipped = is_edge ? n_skipped : n_skipped + 1,
597598
.n_consecutive_skipped = n_consecutive_skipped + 1,
598-
.n_cand = n_cand,
599599
.chi2 = std::numeric_limits<traccc::scalar>::max(),
600600
.chi2_sum = prev_chi2_sum,
601601
.ndf_sum = prev_ndf_sum};

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ TRACCC_HOST_DEVICE inline void propagate_to_next_surface(
6565
const bound_track_parameters<> in_par = params.at(param_id);
6666

6767
// Create propagator
68-
auto alt_prop_cfg{cfg.propagation};
69-
alt_prop_cfg.navigation.estimate_scattering_noise = false;
70-
propagator_t propagator(alt_prop_cfg);
68+
propagator_t propagator(cfg.propagation);
7169

7270
// Create propagator state
7371
typename propagator_t::state propagation(in_par, payload.field_data, det);
@@ -93,15 +91,17 @@ TRACCC_HOST_DEVICE inline void propagate_to_next_surface(
9391
s3};
9492
// Parameter resetter
9593
typename detray::detail::tuple_element<4, actor_tuple_type>::type::state s4{
96-
alt_prop_cfg};
94+
cfg.propagation};
9795
// Momentum aborter
9896
typename detray::detail::tuple_element<5, actor_tuple_type>::type::state s5;
9997
// CKF aborter
10098
typename detray::detail::tuple_element<6, actor_tuple_type>::type::state s6;
101-
s6.min_step_length = cfg.min_step_length_for_next_surface;
102-
s6.max_count = cfg.max_step_counts_for_next_surface;
99+
103100
s5.min_pT(static_cast<scalar_t>(cfg.min_pT));
104101
s5.min_p(static_cast<scalar_t>(cfg.min_p));
102+
s6.surface_index = in_par.surface_link().index();
103+
s6.min_step_length = cfg.min_step_length_for_next_surface;
104+
s6.max_count = cfg.max_step_counts_for_next_surface;
105105

106106
// Propagate to the next surface
107107
propagator.propagate(propagation, detray::tie(s0, s2, s3, s4, s5, s6));

examples/run/cpu/truth_finding_example.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -168,22 +168,22 @@ int seq_run(const traccc::opts::track_finding& finding_opts,
168168
<< std::endl;
169169

170170
// Run fitting
171-
auto track_states =
171+
/*auto track_states =
172172
host_fitting(polymorphic_detector, field,
173173
{vecmem::get_data(track_candidates),
174174
vecmem::get_data(measurements_per_event)});
175175
176176
details::print_fitted_tracks_statistics(track_states, logger());
177177
178-
const std::size_t n_fitted_tracks = track_states.tracks.size();
178+
const std::size_t n_fitted_tracks = track_states.tracks.size();*/
179179

180180
if (performance_opts.run) {
181181
find_performance_writer.write(
182182
{vecmem::get_data(track_candidates),
183183
vecmem::get_data(measurements_per_event)},
184184
evt_data);
185185

186-
for (std::size_t i = 0; i < n_fitted_tracks; i++) {
186+
/*for (std::size_t i = 0; i < n_fitted_tracks; i++) {
187187
host_detector_visitor<detector_type_list>(
188188
polymorphic_detector,
189189
[&]<typename detector_traits_t>(
@@ -192,13 +192,13 @@ int seq_run(const traccc::opts::track_finding& finding_opts,
192192
track_states.tracks.at(i), track_states.states,
193193
measurements_per_event, det, evt_data);
194194
});
195-
}
195+
}*/
196196
}
197197
}
198198

199199
if (performance_opts.run) {
200200
find_performance_writer.finalize();
201-
fit_performance_writer.finalize();
201+
// fit_performance_writer.finalize();
202202
}
203203

204204
return EXIT_SUCCESS;

performance/src/efficiency/finding_performance_writer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ void finding_performance_writer::write_common(
284284
n_matched_seeds_for_particle = it->second;
285285
total_duplicate_tracks += n_matched_seeds_for_particle - 1;
286286
} else {
287+
std::cout << pid << std::endl;
287288
TRACCC_DEBUG("Not matched: " << pid);
288289
}
289290

0 commit comments

Comments
 (0)