|
ACTS
Experiment-independent tracking
|
Facade for a detray detector volume. More...
#include <detray/geometry/tracking_volume.hpp>
Public Types | |
| using | name_map = detray::name_map |
| In case the geometry needs to be printed. | |
| using | object_id = descr_t::object_id |
| Object identifier enum used by the volume descriptor's accelerator links. | |
Public Member Functions | |
| tracking_volume ()=delete | |
| Not allowed: always needs a detector and a descriptor. | |
| constexpr | tracking_volume (const detector_t &det, const descr_t &desc) |
| Construct a volume facade from its detector and descriptor. | |
| constexpr | tracking_volume (const detector_t &det, const dindex vol_idx) |
| Constructor from detector. | |
| constexpr auto | center () const -> point3_type |
| auto | detector () const -> const detector_t & |
| constexpr bool | has_material () const |
| constexpr auto | id () const -> volume_id |
| constexpr auto | index () const -> dindex |
| constexpr auto | material_parameters (const point3_type &loc_p) const -> const detray::material< scalar_type > * |
| constexpr dindex | n_passives () const |
| constexpr dindex | n_portals () const |
| constexpr dindex | n_sensitives () const |
| auto | name (const name_map &names) const -> std::string |
| constexpr auto | operator== (const tracking_volume &rhs) const -> bool |
| Equality operator. | |
| constexpr decltype(auto) | portals () const |
| bool | self_check (std::ostream &os) const |
| Do a consistency check on the volume after building the detector. | |
| template<surface_id sf_type = surface_id::e_all> | |
| constexpr decltype(auto) | surfaces () const |
| constexpr auto | transform () const -> const typename detector_t::transform3_type & |
| template<object_id I, typename functor_t, typename... Args> | |
| constexpr void | visit_accelerator (Args &&...args) const |
| Apply a functor to all surfaces in one of the volume's acceleration structures. | |
| template<typename functor_t, int I = static_cast<int>(object_id::e_all) - 1, typename... Args> | |
| constexpr void | visit_accelerators (Args &&...args) const |
| Apply a functor to all acceleration structures of this volume. | |
| template<typename functor_t, typename... Args> | |
| constexpr void | visit_daughter_volumes (Args &&...args) const |
| Apply a functor to all daughter volumes. | |
| template<typename functor_t, typename... Args> | |
| constexpr auto | visit_material (Args &&...args) const |
| Call a functor on the volume material with additional arguments. | |
| template<object_id I, typename functor_t, typename track_t, concepts::arithmetic window_size_t, typename... Args> | |
| constexpr void | visit_neighborhood (const track_t &track, const search_window< window_size_t, 2 > &win_size, const context_t &ctx, Args &&...args) const |
| Apply a functor to a neighborhood of geometric objects around a track position in the volume. | |
| template<surface_id I, typename functor_t, typename... Args> | |
| constexpr void | visit_surfaces (Args &&...args) const |
| Apply a functor to all surfaces of a given surface id (portal, passive, sensitive) in the volume. | |
Facade for a detray detector volume.
Volume class that acts as a logical container in the detector for geometry objects, i.e. surfaces. The volume boundary surfaces, the so-called portals, carry index links that join adjacent volumes. The volume class itself does not contain any data itself, but keeps a descriptor with index-based links into the data containers that are managed by the detector. Every type of surface that is known by the volume (determined by the type and size of the ID enum in the descriptor) lives in it's own geometry accelerator data structure, e.g. portals reside in a brute force accelerator (a simple vector), while sensitive surfaces are usually sorted into a spatial grid.
|
constexpr |
Construct a volume facade from its detector and descriptor.
| det | Detector that owns the volume data. |
| desc | Descriptor containing links for this volume. |
|
constexpr |
Constructor from detector.
| det | and volume index |
| vol_idx | in that detector. |
|
constexpr |
| auto detray::tracking_volume< detector_t >::detector | ( | ) | const->constdetector_t & |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
| loc_p |
|
constexpr |
|
constexpr |
|
constexpr |
| auto detray::tracking_volume< detector_t >::name | ( | const name_map & | names | ) | const->std::string |
| names | Optional detector volume names indexed by volume index. |
|
constexpr |
Equality operator.
| rhs | is the right hand side to be compared to |
|
constexpr |
| bool detray::tracking_volume< detector_t >::self_check | ( | std::ostream & | os | ) | const |
Do a consistency check on the volume after building the detector.
| os | output stream for error messages. |
|
constexpr |
|
constexpr |
|
constexpr |
Apply a functor to all surfaces in one of the volume's acceleration structures.
| I | type of object to retrieve (passive, portal, sensitive etc) |
| functor_t | the prescription to be applied to the surfaces |
| Args | types of additional arguments to the functor |
| args | Arguments forwarded to the accelerator visitor. |
|
constexpr |
Apply a functor to all acceleration structures of this volume.
| I | type of object to retrieve (surface types, daughters etc) |
| functor_t | the prescription to be applied to the acc structure |
| Args | types of additional arguments to the functor |
| args | Arguments forwarded to each accelerator visitor. |
|
constexpr |
Apply a functor to all daughter volumes.
| functor_t | the prescription to be applied to the daughter volumes |
| Args | types of additional arguments to the functor |
| args | Arguments forwarded to the daughter-volume visitor. |
|
constexpr |
Call a functor on the volume material with additional arguments.
| functor_t | the prescription to be applied to the material |
| Args | types of additional arguments to the functor |
| args | Arguments forwarded to the material visitor. |
|
constexpr |
Apply a functor to a neighborhood of geometric objects around a track position in the volume.
| functor_t | the prescription to be applied to the surfaces (customization point for the navigation) |
| track_t | the track around which to build up the neighborhood |
| Args | types of additional arguments to the functor |
| track | Track position and direction used for neighborhood lookup. |
| win_size | Search window around the track position. |
| ctx | Geometry context used to resolve transforms. |
| args | Additional arguments forwarded to the neighborhood visitor. |
|
constexpr |
Apply a functor to all surfaces of a given surface id (portal, passive, sensitive) in the volume.
Translates the detray surface type id to the volume geometry object id
| functor_t | the prescription to be applied to the surfaces |
| Args | types of additional arguments to the functor |
| args | Arguments forwarded to the surface visitor. |