Skip to content

Commit 34d709e

Browse files
committed
Add post-finding track efficiency output
This commit adds plots of the tracking efficiency post-fitting to the ROOT files produced by the finding performance writer.
1 parent cc20cad commit 34d709e

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

examples/run/cuda/seeding_example_cuda.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
9797
.truth_config = truth_finding_opts,
9898
.track_truth_config = track_matching_opts},
9999
logger().clone("FindingPerformanceWriter"));
100+
traccc::finding_performance_writer postfit_find_performance_writer(
101+
traccc::finding_performance_writer::config{
102+
.file_path = "performance_track_postfit_finding.root",
103+
.truth_config = truth_finding_opts,
104+
.track_truth_config = track_matching_opts,
105+
.require_fit = true},
106+
logger().clone("PostFitFindingPerformanceWriter"));
100107
traccc::fitting_performance_writer fit_performance_writer(
101108
traccc::fitting_performance_writer::config{},
102109
logger().clone("FittingPerformanceWriter"));
@@ -444,6 +451,11 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
444451
traccc::default_algebra>::const_data(track_candidates_cuda),
445452
evt_data);
446453

454+
postfit_find_performance_writer.write(
455+
traccc::edm::track_container<
456+
traccc::default_algebra>::const_data(track_states_cuda),
457+
evt_data);
458+
447459
for (unsigned int i = 0; i < track_states_cuda.tracks.size(); i++) {
448460
host_detector_visitor<detector_type_list>(
449461
host_det, [&]<typename detector_traits_t>(
@@ -461,6 +473,7 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
461473
sd_performance_writer.finalize();
462474
nsd_performance_writer.finalize();
463475
find_performance_writer.finalize();
476+
postfit_find_performance_writer.finalize();
464477
fit_performance_writer.finalize();
465478
std::cout << nsd_performance_writer.generate_report_str();
466479
}

performance/include/traccc/efficiency/finding_performance_writer.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ class finding_performance_writer : public messaging {
5656
truth_matching_config truth_config;
5757
track_matching_config track_truth_config;
5858

59+
bool require_fit = false;
60+
5961
stat_plot_tool_config stat_config{};
6062
};
6163

performance/src/efficiency/finding_performance_writer.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "duplication_plot_tool.hpp"
1313
#include "eff_plot_tool.hpp"
1414
#include "fake_tracks_plot_tool.hpp"
15+
#include "traccc/edm/track_fit_outcome.hpp"
1516
#include "traccc/utils/logging.hpp"
1617
#include "track_classification.hpp"
1718

@@ -90,7 +91,8 @@ namespace {
9091
* with its corresponding measurements.
9192
*/
9293
std::vector<std::vector<measurement>> prepare_data(
93-
const edm::track_container<default_algebra>::const_view& track_view) {
94+
const edm::track_container<default_algebra>::const_view& track_view,
95+
bool require_fit = false) {
9496
std::vector<std::vector<measurement>> result;
9597

9698
// Set up the input containers.
@@ -102,6 +104,10 @@ std::vector<std::vector<measurement>> prepare_data(
102104
result.reserve(n_tracks);
103105

104106
for (unsigned int i = 0; i < n_tracks; i++) {
107+
if (require_fit &&
108+
tracks.tracks.at(i).fit_outcome() != track_fit_outcome::SUCCESS) {
109+
continue;
110+
}
105111
std::vector<measurement> result_measurements;
106112
for (const edm::track_constituent_link& link :
107113
tracks.tracks.constituent_links().at(i)) {
@@ -301,13 +307,18 @@ void finding_performance_writer::write(
301307

302308
const unsigned int n_tracks = tracks.tracks.size();
303309
for (unsigned int i = 0; i < n_tracks; i++) {
310+
if (m_cfg.require_fit &&
311+
tracks.tracks.at(i).fit_outcome() != track_fit_outcome::SUCCESS) {
312+
continue;
313+
}
304314

305315
// Fill stat plots
306316
m_data->m_stat_plot_tool.fill(m_data->m_stat_plot_cache,
307317
tracks.tracks.at(i));
308318
}
309319

310-
std::vector<std::vector<measurement>> prep_data = prepare_data(track_view);
320+
std::vector<std::vector<measurement>> prep_data =
321+
prepare_data(track_view, m_cfg.require_fit);
311322
write_common(prep_data, evt_data);
312323
}
313324

0 commit comments

Comments
 (0)