12#include "detray/definitions/detail/qualifiers.hpp"
13#include "detray/geometry/coordinates/coordinates.hpp"
14#include "detray/geometry/shapes.hpp"
15#include "detray/material/material_map.hpp"
16#include "detray/material/material_rod.hpp"
17#include "detray/material/material_slab.hpp"
18#include "detray/utils/type_registry.hpp"
38 portal_cylinder2 = 4u,
64 concentric_cylinder2_map = 3u,
78template <detray::concepts::algebra algebra_t>
93 concentric_cylinder2_grid = 4u,
103template <detray::concepts::algebra algebra_t>
110#define _enum_print(x) \
122 _enum_print(annulus2);
123 _enum_print(cuboid3);
124 _enum_print(cylinder2);
125 _enum_print(cylinder3);
126 _enum_print(portal_cylinder2);
127 _enum_print(rectangle2);
129 _enum_print(trapezoid2);
130 _enum_print(drift_cell);
131 _enum_print(straw_tube);
132 _enum_print(single1);
133 _enum_print(single2);
134 _enum_print(single3);
137 os <<
"unknown/n_shapes";
152 os <<
"annulus2_map/ring2_map";
156 os <<
"rectangle2_map/trapezoid2_map";
158 _enum_print(cuboid3_map);
159 _enum_print(concentric_cylinder2_map);
160 _enum_print(cylinder2_map);
161 _enum_print(cylinder3_map);
164 _enum_print(raw_material);
167 os <<
"unknown/n_mats";
180 _enum_print(brute_force);
181 _enum_print(cartesian2_grid);
182 _enum_print(cuboid3_grid);
183 _enum_print(polar2_grid);
184 _enum_print(concentric_cylinder2_grid);
185 _enum_print(cylinder2_grid);
186 _enum_print(cylinder3_grid);
187 _enum_print(unknown);
Geometrical shape of a stereo annulus that is used for the ITk strip endcaps.
Definition annulus2D.hpp:48
Geometrical shape of a 2D concentric cylinder.
Definition concentric_cylinder2D.hpp:32
Geometrical shape of a full 3D cuboid.
Definition cuboid3D.hpp:32
Geometrical shape of a 2D cylinder.
Definition cylinder2D.hpp:33
Geometrical shape of a full 3D cylinder.
Definition cylinder3D.hpp:32
Geometrical shape of a rectangle2D.
Definition rectangle2D.hpp:30
Geometrical shape of a closed ring.
Definition ring2D.hpp:34
Underlying geometry for a single parameter bound mask.
Definition single3D.hpp:34
Geometrical shape of a trapezoid2D.
Definition trapezoid2D.hpp:34
match types with indices/identifiers and vice versa.
Definition type_registry.hpp:33
The following enums are global for all detectors.
Definition concepts.hpp:18
types::registry< io::accel_id, void, cartesian2D< algebra_t >, cartesian3D< algebra_t >, polar2D< algebra_t >, concentric_cylindrical2D< algebra_t >, cylindrical2D< algebra_t >, cylindrical3D< algebra_t > > frame_registry
Register the grid shapes to the accel_id enum.
Definition definitions.hpp:104
std::ostream & operator<<(std::ostream &os, shape_id sid)
Write a surface-shape identifier using its enumerator name.
Definition definitions.hpp:119
shape_id
Enumerate the shape primitives globally.
Definition definitions.hpp:33
double scalar
Default scalar precision used for serialized geometry payloads.
Definition definitions.hpp:27
accel_id
Enumerate the different acceleration data structures.
Definition definitions.hpp:88
types::registry< shape_id, annulus2D, cuboid3D, cylinder2D, cylinder3D, concentric_cylinder2D, rectangle2D, ring2D, trapezoid2D, line_square, line_circular, single3D< 0 >, single3D< 1 >, single3D< 2 > > shape_registry
Register the mask shapes to the IO shape_id enum.
Definition definitions.hpp:52
types::registry< io::material_id, polar2D< algebra_t >, cartesian2D< algebra_t >, cartesian3D< algebra_t >, concentric_cylindrical2D< algebra_t >, cylindrical2D< algebra_t >, cylindrical3D< algebra_t >, material_slab< dscalar< algebra_t > >, material_rod< dscalar< algebra_t > >, material< dscalar< algebra_t > > > material_registry
Register the material types to the material_id enum.
Definition definitions.hpp:79
material_id
Enumerate the different material types.
Definition definitions.hpp:59
format
Supported serialization formats.
Definition definitions.hpp:30
line< false > line_circular
Radial crossection, boundary check in polar coordinates.
Definition line.hpp:340
line< true > line_square
Square crossection, boundary check in cartesian coordinates.
Definition line.hpp:342
Projection into a 2D cartesian coordinate frame.
Definition cartesian2D.hpp:19
Projection into a 3D cartesian coordinate frame.
Definition cartesian3D.hpp:19
Projection into a 2D concentric cylindrical frame (No rotation in coordinate transformation).
Definition concentric_cylindrical2D.hpp:21
Projection into a 2D cylindrical coordinate frame.
Definition cylindrical2D.hpp:20
Projection into a 3D cylindrical coordinate frame.
Definition cylindrical3D.hpp:20
Rod structure to be mapped on the line mask.
Definition material_rod.hpp:26
Slab structure to be mapped on the mask (plane, cylinder).
Definition material_slab.hpp:25
Material composition properties and density data used by interactions.
Definition material.hpp:36
Projection into a polar coordinate frame.
Definition polar2D.hpp:20