Skip to content

Commit b7fbdd4

Browse files
committed
Reintroduce print_fitted_tracks_statistics(...).
But now as a function in the examples code. Not as part of traccc::core.
1 parent 85adb18 commit b7fbdd4

File tree

6 files changed

+73
-5
lines changed

6 files changed

+73
-5
lines changed

examples/run/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# TRACCC library, part of the ACTS project (R&D line)
22
#
3-
# (c) 2021-2023 CERN for the benefit of the ACTS project
3+
# (c) 2021-2025 CERN for the benefit of the ACTS project
44
#
55
# Mozilla Public License Version 2.0
66

@@ -11,6 +11,8 @@ include( traccc-compiler-options-cpp )
1111
add_library(traccc_examples_common STATIC
1212
"common/make_magnetic_field.hpp"
1313
"common/make_magnetic_field.cpp"
14+
"common/print_fitted_tracks_statistics.hpp"
15+
"common/print_fitted_tracks_statistics.cpp"
1416
"common/throughput_mt.hpp"
1517
"common/throughput_mt.ipp"
1618
"common/throughput_st.hpp"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/** TRACCC library, part of the ACTS project (R&D line)
2+
*
3+
* (c) 2025 CERN for the benefit of the ACTS project
4+
*
5+
* Mozilla Public License Version 2.0
6+
*/
7+
8+
// Local include(s).
9+
#include "print_fitted_tracks_statistics.hpp"
10+
11+
namespace traccc::details {
12+
13+
void print_fitted_tracks_statistics(
14+
const edm::track_fit_container<default_algebra>::host& tracks,
15+
const Logger& log) {
16+
17+
std::size_t success = 0;
18+
std::size_t non_positive_ndf = 0;
19+
std::size_t not_all_smoothed = 0;
20+
21+
for (track_fit_outcome outcome : tracks.tracks.fit_outcome()) {
22+
if (outcome == track_fit_outcome::SUCCESS) {
23+
++success;
24+
} else if (outcome == track_fit_outcome::FAILURE_NON_POSITIVE_NDF) {
25+
++non_positive_ndf;
26+
} else if (outcome == track_fit_outcome::FAILURE_NOT_ALL_SMOOTHED) {
27+
++not_all_smoothed;
28+
}
29+
}
30+
31+
auto logger = [&log]() -> const Logger& { return log; };
32+
TRACCC_INFO("Success: " << success
33+
<< " Non positive NDF: " << non_positive_ndf
34+
<< " Not all smoothed: " << not_all_smoothed
35+
<< " Total: " << tracks.tracks.size());
36+
}
37+
38+
} // namespace traccc::details
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/** TRACCC library, part of the ACTS project (R&D line)
2+
*
3+
* (c) 2025 CERN for the benefit of the ACTS project
4+
*
5+
* Mozilla Public License Version 2.0
6+
*/
7+
8+
#pragma once
9+
10+
// Project include(s).
11+
#include "traccc/edm/track_fit_container.hpp"
12+
#include "traccc/utils/logging.hpp"
13+
14+
namespace traccc::details {
15+
16+
/// Print statistics for the fitted tracks.
17+
///
18+
/// @param tracks The fitted tracks to print statistics for
19+
/// @param log The logger to use for outputting the statistics
20+
///
21+
void print_fitted_tracks_statistics(
22+
const edm::track_fit_container<default_algebra>::host& tracks,
23+
const Logger& log);
24+
25+
} // namespace traccc::details

examples/run/cpu/misaligned_truth_fitting_example.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
// Project include(s).
99
#include "../common/make_magnetic_field.hpp"
10+
#include "../common/print_fitted_tracks_statistics.hpp"
1011
#include "traccc/definitions/common.hpp"
1112
#include "traccc/definitions/primitives.hpp"
1213
#include "traccc/fitting/kalman_fitting_algorithm.hpp"
@@ -166,7 +167,7 @@ int main(int argc, char* argv[]) {
166167
{vecmem::get_data(truth_track_candidates.tracks),
167168
vecmem::get_data(truth_track_candidates.measurements)});
168169

169-
// print_fitted_tracks_statistics(track_states);
170+
details::print_fitted_tracks_statistics(track_states, logger());
170171

171172
const std::size_t n_fitted_tracks = track_states.tracks.size();
172173

@@ -191,7 +192,7 @@ int main(int argc, char* argv[]) {
191192
{vecmem::get_data(truth_track_candidates.tracks),
192193
vecmem::get_data(truth_track_candidates.measurements)});
193194

194-
// print_fitted_tracks_statistics(track_states);
195+
details::print_fitted_tracks_statistics(track_states, logger());
195196

196197
const std::size_t n_fitted_tracks = track_states.tracks.size();
197198

examples/run/cpu/truth_finding_example.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
// Project include(s).
99
#include "../common/make_magnetic_field.hpp"
10+
#include "../common/print_fitted_tracks_statistics.hpp"
1011
#include "traccc/definitions/common.hpp"
1112
#include "traccc/definitions/primitives.hpp"
1213
#include "traccc/efficiency/finding_performance_writer.hpp"
@@ -163,7 +164,7 @@ int seq_run(const traccc::opts::track_finding& finding_opts,
163164
{vecmem::get_data(track_candidates),
164165
vecmem::get_data(measurements_per_event)});
165166

166-
// print_fitted_tracks_statistics(track_states);
167+
details::print_fitted_tracks_statistics(track_states, logger());
167168

168169
const std::size_t n_fitted_tracks = track_states.tracks.size();
169170

examples/run/cpu/truth_fitting_example.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
// Project include(s).
99
#include "../common/make_magnetic_field.hpp"
10+
#include "../common/print_fitted_tracks_statistics.hpp"
1011
#include "traccc/definitions/common.hpp"
1112
#include "traccc/definitions/primitives.hpp"
1213
#include "traccc/fitting/kalman_fitting_algorithm.hpp"
@@ -140,7 +141,7 @@ int main(int argc, char* argv[]) {
140141
{vecmem::get_data(truth_track_candidates.tracks),
141142
vecmem::get_data(truth_track_candidates.measurements)});
142143

143-
// print_fitted_tracks_statistics(track_states);
144+
details::print_fitted_tracks_statistics(track_states, logger());
144145

145146
const std::size_t n_fitted_tracks = track_states.tracks.size();
146147

0 commit comments

Comments
 (0)