|
ACTS
Experiment-independent tracking
|
The detray detector volume descriptor. More...
#include <detray/geometry/volume_descriptor.hpp>
Public Types | |
| using | accel_link_type = dmulti_index<acc_link_t, ID::e_size> |
| How to access objects (e.g. | |
| using | material_id = typename material_link::id_type |
| Identifier type used by the volume material link. | |
| using | material_link = mat_link_t |
| How to link to the volume material, if any. | |
| using | object_id = ID |
| Ids of objects that can be distinguished by the volume. | |
| using | sf_link_type |
| How to access the surface ranges in the detector surface lookup. | |
Public Member Functions | |
| constexpr | volume_descriptor ()=default |
| Default constructor builds an ~infinitely long cylinder. | |
| constexpr | volume_descriptor (const volume_id id) |
| Constructor from shape id. | |
| template<ID obj_id> | |
| constexpr auto | accel_link () const -> const acc_link_t & |
| constexpr auto | accel_link () const -> const accel_link_type & |
| constexpr auto | accel_link (const ID &id) const -> const acc_link_t & |
| constexpr auto | full_sf_range () const -> typename sf_link_type::index_type |
| constexpr auto | has_material () const -> bool |
| constexpr auto | id () const -> volume_id |
| constexpr auto | index () const -> dindex |
| constexpr auto | material () const -> const material_link & |
| constexpr dindex | n_surfaces () const |
| constexpr auto | operator== (const volume_descriptor &rhs) const -> bool |
| Equality operator. | |
| template<ID obj_id> | |
| constexpr auto | set_accel_link (const acc_link_t link) -> void |
| Set surface finder link from. | |
| constexpr auto | set_accel_link (const ID obj_id, const typename acc_link_t::id_type accel_id, const typename acc_link_t::index_type index) -> void |
Set link for a type of surfaces ( obj_id ) from accel_id and index of the acceleration data structure (e.g. | |
| template<ID obj_id> | |
| constexpr auto | set_accel_link (const typename acc_link_t::id_type id, const typename acc_link_t::index_type index) -> void |
| Set link from. | |
| constexpr auto | set_index (const dindex index) -> void |
| constexpr auto | set_material (const material_id mat_id, const dindex mat_idx) -> void |
| Set the volume material link using the given material type id. | |
| constexpr auto | set_material (const material_link &mat_link) -> void |
| Set the volume material link to. | |
| constexpr auto | set_transform (const dindex trf_idx) -> void |
| template<surface_id id> | |
| constexpr auto | sf_link () -> typename sf_link_type::index_type & |
| constexpr auto | sf_link () const -> const sf_link_type & |
| template<surface_id id> | |
| constexpr auto | sf_link () const -> const typename sf_link_type::index_type & |
| constexpr dindex | to_global_sf_index (dindex sf_idx) const |
| constexpr dindex | to_local_sf_index (dindex sf_idx) const |
| constexpr auto | transform () const -> dindex |
| template<surface_id id> | |
| auto | update_sf_link (const typename sf_link_type::index_type &other) noexcept -> void |
| Set or update the index into a geometry container identified by the obj_id. | |
| template<surface_id id> | |
| auto | update_sf_link (std::size_t shift, std::size_t n_surfaces=0) noexcept -> void |
| Set or update the index into a geometry container identified by the obj_id. | |
Static Public Member Functions | |
| static consteval bool | is_surface_id (const object_id id) |
| static consteval bool | is_volume_id (const object_id id) |
The detray detector volume descriptor.
Contains the data and links to describe a detector volume. This is the type that is stored in the detector data stores.
| ID | enum of object types contained in the volume ( |
default_metadata ). | link_t | the type of link to the volumes surfaces finder(s) (accelerator structure, e.g. a grid). The surface finder types cannot be given directly, since the containers differ between host and device. The surface finders reside in an 'unrollable tuple container' and are called per volume in the navigator during local navigation. |
| using detray::volume_descriptor< ID, acc_link_t, mat_link_t >::accel_link_type = dmulti_index<acc_link_t, ID::e_size> |
How to access objects (e.g.
sensitives/passives/portals) in this volume. Keeps one accelerator structure link per object type (by ID):
acc_link_t : id and index of the accelerator structure in the detector's surface store.
E.g. a 'portal' can be found under ID::e_portal in this link, and will then receive link to the brute_force acceleration structure that holds the portals (the accelerator structure's id and index).
| using detray::volume_descriptor< ID, acc_link_t, mat_link_t >::sf_link_type |
How to access the surface ranges in the detector surface lookup.
|
explicitconstexpr |
Constructor from shape id.
| id | id values that determines how to interpret the bounds. |
|
constexpr |
|
constexpr |
|
constexpr |
| id | Object type whose accelerator link is requested. |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
staticconsteval |
| id | Object identifier to classify. |
|
staticconsteval |
| id | Object identifier to classify. |
|
constexpr |
|
constexpr |
|
constexpr |
Equality operator.
| rhs | is the right-hand side to compare against. |
|
constexpr |
Set surface finder link from.
| link |
|
constexpr |
Set link for a type of surfaces ( obj_id ) from accel_id and index of the acceleration data structure (e.g.
type and index of a grid in the accelerator store)
| obj_id | Object type to associate with the link. |
| accel_id | Accelerator structure type. |
| index | Index of the accelerator structure in its store. |
|
constexpr |
Set link from.
| id | and |
| index | of the acceleration data structure (e.g. type and index of a grid in the accelerator store) |
|
constexpr |
| index | the index of the volume in the detector volume container. |
|
constexpr |
Set the volume material link using the given material type id.
| mat_id | and index of the material instance |
| mat_idx |
|
constexpr |
Set the volume material link to.
| mat_link |
|
constexpr |
| trf_idx | Index of this volume's transform in the transform store. |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
| sf_idx | Surface index relative to this volume's surface range. |
|
constexpr |
| sf_idx | Surface index in the detector-wide surface collection. |
|
constexpr |
|
noexcept |
Set or update the index into a geometry container identified by the obj_id.
| other | Surface index range |
|
noexcept |
Set or update the index into a geometry container identified by the obj_id.
| shift | shift of the surface range in a larger container. |
| n_surfaces | the number of surfaces in this range. |