Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the event map #692

Merged
merged 8 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion benchmarks/cpu/toy_detector_cpu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include "traccc/seeding/track_params_estimation.hpp"

// Traccc IO include(s).
#include "traccc/io/event_map2.hpp"
#include "traccc/io/read_detector.hpp"
#include "traccc/io/read_geometry.hpp"
#include "traccc/io/read_measurements.hpp"
Expand Down
1 change: 0 additions & 1 deletion benchmarks/cuda/toy_detector_cuda.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#include "traccc/cuda/seeding/track_params_estimation.hpp"
#include "traccc/device/container_d2h_copy_alg.hpp"
#include "traccc/geometry/detector.hpp"
#include "traccc/io/event_map2.hpp"
#include "traccc/io/read_detector.hpp"
#include "traccc/io/read_geometry.hpp"
#include "traccc/io/read_measurements.hpp"
Expand Down
2 changes: 2 additions & 0 deletions core/include/traccc/definitions/primitives.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

namespace traccc {

using measurement_id = std::uint64_t;
using particle_id = std::uint64_t;
using geometry_id = std::uint64_t;
using channel_id = unsigned int;

Expand Down
1 change: 1 addition & 0 deletions core/include/traccc/utils/seed_generator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "detray/propagator/actors/aborters.hpp"
#include "detray/propagator/actors/parameter_resetter.hpp"
#include "detray/propagator/actors/parameter_transporter.hpp"
#include "detray/propagator/actors/pointwise_material_interactor.hpp"
#include "detray/propagator/base_actor.hpp"
#include "detray/propagator/propagator.hpp"

Expand Down
4 changes: 2 additions & 2 deletions examples/io/create_binaries.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ int create_binaries(const traccc::opts::detector& detector_opts,
// Read the hits from the relevant event file
traccc::spacepoint_collection_types::host spacepoints{&host_mr};
traccc::io::read_spacepoints(spacepoints, event, input_opts.directory,
&det_descr, input_opts.format);
nullptr, input_opts.format);

// Write binary file
traccc::io::write(event, output_opts.directory,
Expand All @@ -62,7 +62,7 @@ int create_binaries(const traccc::opts::detector& detector_opts,
// Read the measurements from the relevant event file
traccc::measurement_collection_types::host measurements{&host_mr};
traccc::io::read_measurements(measurements, event, input_opts.directory,
&det_descr, input_opts.format);
nullptr, input_opts.format);

// Write binary file
traccc::io::write(event, output_opts.directory,
Expand Down
2 changes: 2 additions & 0 deletions examples/options/include/traccc/options/input_data.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class input_data : public interface {
/// @name Options
/// @{

// Use acts geometry source
bool use_acts_geom_source = false;
/// The data format of the input files
traccc::data_format format = data_format::csv;
/// Directory of the input files
Expand Down
8 changes: 7 additions & 1 deletion examples/options/src/input_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ static const char* data_format_option = "input-data-format";

input_data::input_data() : interface("Input Data Options") {

m_desc.add_options()(
"use-acts-geom-source",
po::bool_switch(&use_acts_geom_source)->default_value(false),
"Use acts geometry source");
m_desc.add_options()(data_format_option,
po::value<data_format_type>()->default_value("csv"),
"Format of the input file(s)");
Expand Down Expand Up @@ -57,7 +61,9 @@ void input_data::read(const po::variables_map& vm) {

std::ostream& input_data::print_impl(std::ostream& out) const {

out << " Input data format : " << format << "\n"
out << " Use ACTS geometry source : "
<< (use_acts_geom_source ? "yes" : "no") << "\n"
<< " Input data format : " << format << "\n"
<< " Input directory : " << directory << "\n"
<< " Number of input events : " << events << "\n"
<< " Number of input events to skip: " << skip;
Expand Down
26 changes: 14 additions & 12 deletions examples/run/alpaka/seeding_example_alpaka.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#include "traccc/finding/finding_algorithm.hpp"
#include "traccc/fitting/fitting_algorithm.hpp"
#include "traccc/io/read_detector.hpp"
#include "traccc/io/read_detector_description.hpp"
#include "traccc/io/read_measurements.hpp"
#include "traccc/io/read_spacepoints.hpp"
#include "traccc/io/utils.hpp"
Expand Down Expand Up @@ -173,14 +172,16 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
traccc::performance::timer t("Hit reading (cpu)",
elapsedTimes);
// Read the hits from the relevant event file
traccc::io::read_spacepoints(spacepoints_per_event, event,
input_opts.directory, nullptr,
input_opts.format);
traccc::io::read_spacepoints(
spacepoints_per_event, event, input_opts.directory,
(input_opts.use_acts_geom_source ? &host_det : nullptr),
input_opts.format);

// Read measurements
traccc::io::read_measurements(measurements_per_event, event,
input_opts.directory, nullptr,
input_opts.format);
traccc::io::read_measurements(
measurements_per_event, event, input_opts.directory,
(input_opts.use_acts_geom_source ? &host_det : nullptr),
input_opts.format);
} // stop measuring hit reading timer

/*----------------------------
Expand Down Expand Up @@ -277,13 +278,14 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
------------*/

if (performance_opts.run) {
traccc::event_map2 evt_map(event, input_opts.directory,
input_opts.directory,
input_opts.directory);

sd_performance_writer.write(vecmem::get_data(seeds_alpaka),
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source,
&host_det, input_opts.format, false);

sd_performance_writer.write(vecmem::get_data(seeds),
vecmem::get_data(spacepoints_per_event),
evt_map);
evt_data);
}
}

Expand Down
14 changes: 8 additions & 6 deletions examples/run/alpaka/seq_example_alpaka.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -307,12 +307,14 @@ int seq_run(const traccc::opts::detector& detector_opts,

if (performance_opts.run) {

traccc::event_map evt_map(
event, input_opts.directory, input_opts.directory,
input_opts.directory, host_det_descr, host_mr);
sd_performance_writer.write(
vecmem::get_data(seeds_alpaka),
vecmem::get_data(spacepoints_per_event_alpaka), evt_map);
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source,
&host_detector, input_opts.format,
false);

sd_performance_writer.write(vecmem::get_data(seeds),
vecmem::get_data(spacepoints_per_event),
evt_data);
}
}

Expand Down
29 changes: 16 additions & 13 deletions examples/run/cpu/seeding_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,10 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
// Read the hits from the relevant event file
traccc::spacepoint_collection_types::host spacepoints_per_event{
&host_mr};
traccc::io::read_spacepoints(spacepoints_per_event, event,
input_opts.directory, nullptr,
input_opts.format);
traccc::io::read_spacepoints(
spacepoints_per_event, event, input_opts.directory,
(input_opts.use_acts_geom_source ? &detector : nullptr),
input_opts.format);
n_spacepoints += spacepoints_per_event.size();

/*----------------
Expand All @@ -175,9 +176,10 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
// Read measurements
traccc::measurement_collection_types::host measurements_per_event{
&host_mr};
traccc::io::read_measurements(measurements_per_event, event,
input_opts.directory, nullptr,
input_opts.format);
traccc::io::read_measurements(
measurements_per_event, event, input_opts.directory,
(input_opts.use_acts_geom_source ? &detector : nullptr),
input_opts.format);
n_measurements += measurements_per_event.size();

/*------------------------
Expand Down Expand Up @@ -217,19 +219,20 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,

if (performance_opts.run) {

traccc::event_map2 evt_map(event, input_opts.directory,
input_opts.directory,
input_opts.directory);
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source,
&detector, input_opts.format, false);

sd_performance_writer.write(vecmem::get_data(seeds),
vecmem::get_data(spacepoints_per_event),
evt_map);
evt_data);

find_performance_writer.write(traccc::get_data(track_candidates),
evt_map);
evt_data);

if (resolution_opts.run) {
ar_performance_writer.write(traccc::get_data(track_states_ar),
evt_map);
evt_data);
}

for (unsigned int i = 0; i < track_states.size(); i++) {
Expand All @@ -238,7 +241,7 @@ int seq_run(const traccc::opts::track_seeding& seeding_opts,
const auto& fit_res = track_states[i].header;

fit_performance_writer.write(trk_states_per_track, fit_res,
detector, evt_map);
detector, evt_data);
}
}
}
Expand Down
31 changes: 19 additions & 12 deletions examples/run/cpu/seq_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ int seq_run(const traccc::opts::input_data& input_opts,
fitting_cfg.propagation = propagation_config;

// Algorithms
traccc::host::clusterization_algorithm ca(host_mr);
traccc::host::sparse_ccl_algorithm cc(host_mr);
traccc::host::measurement_creation_algorithm mc(host_mr);
spacepoint_formation_algorithm sf(host_mr);
traccc::seeding_algorithm sa(seeding_opts.seedfinder,
{seeding_opts.seedfinder},
Expand Down Expand Up @@ -157,7 +158,10 @@ int seq_run(const traccc::opts::input_data& input_opts,
for (unsigned int event = input_opts.skip;
event < input_opts.events + input_opts.skip; ++event) {

traccc::host::clusterization_algorithm::output_type
traccc::edm::silicon_cell_collection::host cells_per_event{host_mr};
traccc::host::sparse_ccl_algorithm::output_type clusters_per_event{
host_mr};
traccc::host::measurement_creation_algorithm::output_type
measurements_per_event{&host_mr};
traccc::host::spacepoint_formation_algorithm<
const traccc::default_detector>::output_type spacepoints_per_event{
Expand All @@ -172,8 +176,6 @@ int seq_run(const traccc::opts::input_data& input_opts,
{ // Start measuring wall time.
traccc::performance::timer timer_wall{"Wall time", elapsedTimes};

traccc::edm::silicon_cell_collection::host cells_per_event{host_mr};

{
traccc::performance::timer timer{"Read cells", elapsedTimes};
// Read the cells from the relevant event file
Expand All @@ -189,8 +191,11 @@ int seq_run(const traccc::opts::input_data& input_opts,
{
traccc::performance::timer timer{"Clusterization",
elapsedTimes};

clusters_per_event = cc(vecmem::get_data(cells_per_event));
measurements_per_event =
ca(vecmem::get_data(cells_per_event), det_descr_data);
mc(vecmem::get_data(cells_per_event),
vecmem::get_data(clusters_per_event), det_descr_data);
}

// Perform seeding, track finding and fitting only when using a
Expand Down Expand Up @@ -284,28 +289,30 @@ int seq_run(const traccc::opts::input_data& input_opts,

if (performance_opts.run) {

traccc::event_map2 evt_map(event, input_opts.directory,
input_opts.directory,
input_opts.directory);
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source,
&detector, input_opts.format, true);
evt_data.fill_cca_result(cells_per_event, clusters_per_event,
measurements_per_event, det_descr);

sd_performance_writer.write(vecmem::get_data(seeds),
vecmem::get_data(spacepoints_per_event),
evt_map);
evt_data);
find_performance_writer.write(traccc::get_data(track_candidates),
evt_map);
evt_data);

for (unsigned int i = 0; i < track_states.size(); i++) {
const auto& trk_states_per_track = track_states.at(i).items;

const auto& fit_res = track_states[i].header;

fit_performance_writer.write(trk_states_per_track, fit_res,
detector, evt_map);
detector, evt_data);
}

if (resolution_opts.run) {
ar_performance_writer.write(
traccc::get_data(resolved_track_states), evt_map);
traccc::get_data(resolved_track_states), evt_data);
}
}
}
Expand Down
18 changes: 10 additions & 8 deletions examples/run/cpu/truth_finding_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,11 +128,12 @@ int seq_run(const traccc::opts::track_finding& finding_opts,
event < input_opts.events + input_opts.skip; ++event) {

// Truth Track Candidates
traccc::event_map2 evt_map2(event, input_opts.directory,
input_opts.directory, input_opts.directory);
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source, &detector,
input_opts.format, false);

traccc::track_candidate_container_types::host truth_track_candidates =
evt_map2.generate_truth_candidates(sg, host_mr);
evt_data.generate_truth_candidates(sg, host_mr);

// Prepare truth seeds
traccc::bound_track_parameters_collection_types::host seeds(&host_mr);
Expand All @@ -144,9 +145,10 @@ int seq_run(const traccc::opts::track_finding& finding_opts,
// Read measurements
traccc::measurement_collection_types::host measurements_per_event{
&host_mr};
traccc::io::read_measurements(measurements_per_event, event,
input_opts.directory, nullptr,
input_opts.format);
traccc::io::read_measurements(
measurements_per_event, event, input_opts.directory,
(input_opts.use_acts_geom_source ? &detector : nullptr),
input_opts.format);

// Run finding
auto track_candidates =
Expand All @@ -165,15 +167,15 @@ int seq_run(const traccc::opts::track_finding& finding_opts,

if (performance_opts.run) {
find_performance_writer.write(traccc::get_data(track_candidates),
evt_map2);
evt_data);

for (unsigned int i = 0; i < n_fitted_tracks; i++) {
const auto& trk_states_per_track = track_states.at(i).items;

const auto& fit_res = track_states[i].header;

fit_performance_writer.write(trk_states_per_track, fit_res,
detector, evt_map2);
detector, evt_data);
}
}
}
Expand Down
10 changes: 5 additions & 5 deletions examples/run/cpu/truth_fitting_example.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include "traccc/fitting/fitting_algorithm.hpp"
#include "traccc/fitting/kalman_filter/kalman_fitter.hpp"
#include "traccc/io/read_geometry.hpp"
#include "traccc/io/read_measurements.hpp"
#include "traccc/io/utils.hpp"
#include "traccc/options/detector.hpp"
#include "traccc/options/input_data.hpp"
Expand Down Expand Up @@ -128,11 +127,12 @@ int main(int argc, char* argv[]) {
event < input_opts.events + input_opts.skip; ++event) {

// Truth Track Candidates
traccc::event_map2 evt_map2(event, input_opts.directory,
input_opts.directory, input_opts.directory);
traccc::event_data evt_data(input_opts.directory, event, host_mr,
input_opts.use_acts_geom_source, &host_det,
input_opts.format, false);

traccc::track_candidate_container_types::host truth_track_candidates =
evt_map2.generate_truth_candidates(sg, host_mr);
evt_data.generate_truth_candidates(sg, host_mr);

// Run fitting
auto track_states =
Expand All @@ -151,7 +151,7 @@ int main(int argc, char* argv[]) {
const auto& fit_res = track_states[i].header;

fit_performance_writer.write(trk_states_per_track, fit_res,
host_det, evt_map2);
host_det, evt_data);
}
}
}
Expand Down
Loading
Loading