12#include "detray/io/frontend/detector_reader_config.hpp"
13#include "detray/io/frontend/detector_writer_config.hpp"
16#include "detray/options/options_handling.hpp"
19#include "detray/options/boost_program_options.hpp"
25namespace detray::options {
29void add_options<detray::io::detector_reader_config>(
30 boost::program_options::options_description &desc,
31 const detray::io::detector_reader_config & ) {
32 desc.add_options()(
"geometry_file",
33 boost::program_options::value<std::string>(),
34 "Detector geometry input file")(
35 "grid_file", boost::program_options::value<std::string>(),
36 "Detector surface grid input file")(
37 "material_file", boost::program_options::value<std::string>(),
38 "Detector material input file");
43void configure_options<detray::io::detector_reader_config>(
44 const boost::program_options::variables_map &vm,
45 detray::io::detector_reader_config &cfg) {
47 if (vm.count(
"geometry_file") != 0u) {
48 cfg.
add_file(vm[
"geometry_file"].as<std::string>());
50 throw std::invalid_argument(
"Please specify a geometry input file!\n\n");
52 if (vm.count(
"material_file") != 0u) {
53 cfg.
add_file(vm[
"material_file"].as<std::string>());
55 if (vm.count(
"grid_file") != 0u) {
56 cfg.
add_file(vm[
"grid_file"].as<std::string>());
62void add_options<detray::io::detector_writer_config>(
63 boost::program_options::options_description &desc,
64 const detray::io::detector_writer_config &cfg) {
67 boost::program_options::value<std::string>()->default_value(cfg.
path()),
68 "Output directory for detector files")(
69 "compactify_json",
"not implemented")(
"write_material",
70 "toggle material output")(
71 "write_grids",
"toggle grid output")(
"replace_files",
72 "whether to replace existing files");
77void configure_options<detray::io::detector_writer_config>(
78 const boost::program_options::variables_map &vm,
79 detray::io::detector_writer_config &cfg) {
80 if (!vm[
"outdir"].defaulted()) {
81 cfg.
path(vm[
"outdir"].as<std::string>());
detector_reader_config & add_file(const std::string &file_name)
SettersAdd a detector component file to the input list.
Definition detector_reader_config.hpp:58
bool write_grids() const
Return whether accelerator grids are written.
Definition detector_writer_config.hpp:54
bool write_material() const
Return whether material data is written.
Definition detector_writer_config.hpp:51
bool compactify_json() const
Return whether JSON output is compacted.
Definition detector_writer_config.hpp:48
bool replace_files() const
Return whether existing output files are replaced.
Definition detector_writer_config.hpp:45
const std::string & path() const
GettersReturn the output directory used for detector files.
Definition detector_writer_config.hpp:39