12#include "detray/core/concepts.hpp"
13#include "detray/io/backend/geometry_writer.hpp"
14#include "detray/io/backend/homogeneous_material_writer.hpp"
15#include "detray/io/backend/material_map_writer.hpp"
16#include "detray/io/backend/surface_grid_writer.hpp"
17#include "detray/io/frontend/detail/detector_components_writer.hpp"
18#include "detray/io/frontend/detector_writer_config.hpp"
19#include "detray/io/json/json_converter.hpp"
28template <
class detector_t>
29void add_json_writers(detector_components_writer<detector_t>& writers,
30 const detray::io::detector_writer_config& cfg) {
32 using json_geometry_writer = json_converter<detector_t, geometry_writer>;
34 writers.template add<json_geometry_writer>();
39 if constexpr (detray::concepts::has_homogeneous_material<detector_t>) {
40 using json_homogeneous_material_writer =
41 json_converter<detector_t, homogeneous_material_writer>;
43 writers.template add<json_homogeneous_material_writer>();
46 if constexpr (detray::concepts::has_material_maps<detector_t>) {
47 using json_material_map_writer =
48 json_converter<detector_t, material_map_writer>;
50 writers.template add<json_material_map_writer>();
54 if constexpr (detray::concepts::has_surface_grids<detector_t>) {
55 using json_surface_grid_writer =
56 json_converter<detector_t, surface_grid_writer>;
59 writers.template add<json_surface_grid_writer>();
The following enums are global for all detectors.
Definition concepts.hpp:18
config struct for detector writing.
Definition detector_writer_config.hpp:21
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