File indexing completed on 2026-07-26 08:22:13
0001
0002
0003
0004
0005
0006
0007
0008
0009 #include "traccc/io/read_cells.hpp"
0010 #include "traccc/io/read_detector_description.hpp"
0011 #include "traccc/io/read_measurements.hpp"
0012 #include "traccc/io/read_spacepoints.hpp"
0013 #include "traccc/io/write.hpp"
0014 #include "traccc/options/detector.hpp"
0015 #include "traccc/options/input_data.hpp"
0016 #include "traccc/options/output_data.hpp"
0017 #include "traccc/options/program_options.hpp"
0018
0019
0020 #include <vecmem/memory/host_memory_resource.hpp>
0021
0022
0023 #include <cstdlib>
0024
0025 int create_binaries(const traccc::opts::detector& detector_opts,
0026 const traccc::opts::input_data& input_opts,
0027 const traccc::opts::output_data& output_opts,
0028 std::unique_ptr<const traccc::Logger> logger) {
0029
0030 vecmem::host_memory_resource host_mr;
0031
0032
0033 traccc::detector_design_description::host det_descr{host_mr};
0034 traccc::detector_conditions_description::host det_cond{host_mr};
0035 traccc::io::read_detector_description(
0036 det_descr, det_cond, detector_opts.detector_file,
0037 detector_opts.digitization_file, detector_opts.conditions_file,
0038 traccc::data_format::json);
0039
0040
0041 for (std::size_t event = input_opts.skip;
0042 event < input_opts.events + input_opts.skip; ++event) {
0043
0044 traccc::edm::silicon_cell_collection::host cells{host_mr};
0045 traccc::io::read_cells(cells, event, input_opts.directory, logger->clone(),
0046 &det_cond, input_opts.format);
0047
0048
0049 traccc::io::write(event, output_opts.directory, traccc::data_format::binary,
0050 vecmem::get_data(cells), vecmem::get_data(det_descr),
0051 vecmem::get_data(det_cond));
0052
0053
0054 traccc::edm::measurement_collection::host measurements{host_mr};
0055 traccc::edm::spacepoint_collection::host spacepoints{host_mr};
0056 traccc::io::read_spacepoints(spacepoints, measurements, event,
0057 input_opts.directory, nullptr, nullptr,
0058 nullptr, input_opts.format);
0059
0060
0061 traccc::io::write(event, output_opts.directory, traccc::data_format::binary,
0062 vecmem::get_data(spacepoints),
0063 vecmem::get_data(measurements));
0064 }
0065
0066 return EXIT_SUCCESS;
0067 }
0068
0069
0070
0071 int main(int argc, char* argv[]) {
0072 std::unique_ptr<const traccc::Logger> logger = traccc::getDefaultLogger(
0073 "TracccExampleCreateBinaries", traccc::Logging::Level::INFO);
0074
0075
0076 traccc::opts::detector detector_opts;
0077 traccc::opts::input_data input_opts;
0078 traccc::opts::output_data output_opts;
0079 traccc::opts::program_options program_opts{
0080 "Binary File Creation",
0081 {detector_opts, input_opts, output_opts},
0082 argc,
0083 argv,
0084 logger->cloneWithSuffix("Options")};
0085
0086
0087 return create_binaries(detector_opts, input_opts, output_opts,
0088 logger->clone());
0089 }