ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::telescope_metadata< algebra_t, mask_shape_t > Struct Template Reference

Defines a special telescope test detector type with only rectangle portals and one additional kind of contained module surfaces (mask_shape_t). More...

#include <detray/detectors/telescope_metadata.hpp>

Public Types

enum class  accel_id : std::uint_least8_t { e_surface_brute_force = 0u , e_volume_brute_force = 1u , e_surface_default = e_surface_brute_force , e_volume_default = e_volume_brute_force }
 Acceleration data structures.
template<typename container_t = host_container_types>
using accelerator_store
 How to store the brute force search data structure.
using algebra_type = algebra_t
 Define the algebra type for the geometry and navigation Algebra backend used by the detector geometry and scalar types.
enum  geo_objects : std::uint_least8_t {
  e_sensitive = 0u , e_portal = 0u , e_passive = 0u , e_volume = 1u ,
  e_size = 2u , e_all = e_size
}
 No grids/other acceleration data structure, everything is brute forced.
enum class  mask_id : std::uint_least8_t {
  e_rectangle2D = 0u , e_annulus2D = 1u , e_cylinder2D = 1u , e_ring2D = 1u ,
  e_trapezoid2D = 1u , e_single1D = 1u , e_single2D = 1u , e_single3D = 1u ,
  e_straw_tube = 1u , e_drift_cell = 1u , e_unbounded_annulus2 = 1u , e_unbounded_cell2 = 1u ,
  e_unbounded_cylinder2 = 1u , e_unbounded_disc2 = 1u , e_unbounded_rectangle2 = 1u , e_unbounded_trapezoid2 = 1u ,
  e_unbounded_line_circular2 = 1u , e_unmasked2 = 1u
}
 Rectangles are always needed as portals (but they have the same type as module rectangles). More...
using mask_link = typename mask_store<>::single_link
 Link type for a range of telescope surface masks.
template<template< typename... > class vector_t = dvector>
using mask_store
 How to store masks.
enum class  material_id : std::uint_least8_t { e_material_slab = 0u , e_raw_material = 1u , e_material_rod = 2u , e_none = 3u }
 Identifiers for material payload and map alternatives.
using material_link = typename material_store<>::single_link
 Link type used to refer to the corresponding detector component store.
using material_rod_t = material_rod<scalar_t>
 Material rod representation used by telescope supports.
using material_slab_t = material_slab<scalar_t>
 Material types (slabs for portals, rods are optional).
template<typename container_t = host_container_types>
using material_store
 How to store materials.
using module_t = mask<mask_shape_t, algebra_type, nav_link>
 Mask type describing a telescope module.
using nav_link = std::uint_least16_t
 Index type in the masks to find the adjacent volumes.
using object_link_type
 One link for all surfaces (in the brute force method).
using rectangle2D_t = mask<detray::rectangle2D, algebra_type, nav_link>
 Rectangles are needed for the portals.
using scalar_t = dscalar<algebra_type>
 Scalar type associated with the metadata algebra.
using surface_type
 Surface type used for sensitives, passives and portals Surface descriptor type combining links to its geometry components.
using transform_link = typename transform_store<>::single_link
 How to link to the entries in the data stores.
template<template< typename... > class vector_t = dvector>
using transform_store
 How to store coordinate transform matrices.

Detailed Description

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
struct detray::telescope_metadata< algebra_t, mask_shape_t >

Defines a special telescope test detector type with only rectangle portals and one additional kind of contained module surfaces (mask_shape_t).

Template Parameters
algebra_tAlgebra backend used by the detector.
mask_shape_tShape of the contained module surfaces.

Member Typedef Documentation

◆ accelerator_store

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
template<typename container_t = host_container_types>
using detray::telescope_metadata< algebra_t, mask_shape_t >::accelerator_store
Initial value:
multi_store<accel_id, empty_context, dtuple,
A collection of brute force surface finders, callable by index.
Definition brute_force.hpp:38
detray::tuple< types... > dtuple
Tuple type used by detray storage and dispatch.
Definition containers.hpp:46
accel_id
Identifiers for navigation accelerator alternatives.
Definition default_metadata.hpp:268

How to store the brute force search data structure.

◆ mask_store

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
template<template< typename... > class vector_t = dvector>
using detray::telescope_metadata< algebra_t, mask_shape_t >::mask_store
Initial value:
std::conditional_t<
std::same_as<module_t, rectangle2D_t>,
regular_multi_store<mask_id, empty_context, dtuple, vector_t,
regular_multi_store<mask_id, empty_context, dtuple, vector_t,
mask< detray::rectangle2D, algebra_type, nav_link > rectangle2D_t
Type alias used by this detector metadata configuration.
Definition default_metadata.hpp:55
mask_id
Identifiers for the supported surface masks.
Definition default_metadata.hpp:73
mask< mask_shape_t, algebra_type, nav_link > module_t
Mask type describing a telescope module.
Definition telescope_metadata.hpp:54

How to store masks.

◆ material_store

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
template<typename container_t = host_container_types>
using detray::telescope_metadata< algebra_t, mask_shape_t >::material_store
Initial value:
std::conditional_t<
regular_multi_store<material_id, empty_context, dtuple,
container_t::template vector_type, material_slab_t,
regular_multi_store<material_id, empty_context, dtuple,
container_t::template vector_type, material_slab_t,
Definition concepts.hpp:163
material_id
Identifiers for material payload and map alternatives.
Definition default_metadata.hpp:156
Material composition properties and density data used by interactions.
Definition material.hpp:36
material_rod< scalar_t > material_rod_t
Material rod representation used by telescope supports.
Definition telescope_metadata.hpp:110
material_slab< scalar_t > material_slab_t
Material types (slabs for portals, rods are optional).
Definition telescope_metadata.hpp:108

How to store materials.

◆ object_link_type

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
using detray::telescope_metadata< algebra_t, mask_shape_t >::object_link_type
Initial value:
detail::multi_index< index_t, DIM > dmulti_index
Index that consists of multiple subindices.
Definition indexing.hpp:33

One link for all surfaces (in the brute force method).

◆ surface_type

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
using detray::telescope_metadata< algebra_t, mask_shape_t >::surface_type
Initial value:
Templated surface class for detector surfaces and portals.
Definition surface_descriptor.hpp:35

Surface type used for sensitives, passives and portals Surface descriptor type combining links to its geometry components.

◆ transform_store

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
template<template< typename... > class vector_t = dvector>
using detray::telescope_metadata< algebra_t, mask_shape_t >::transform_store
Initial value:
single_store<dtransform3D<algebra_type>, vector_t, geometry_context>

How to store coordinate transform matrices.

Member Enumeration Documentation

◆ mask_id

template<concepts::algebra algebra_t, typename mask_shape_t = rectangle2D>
enum class detray::telescope_metadata::mask_id : std::uint_least8_t
strong

Rectangles are always needed as portals (but they have the same type as module rectangles).

Only one additional mask shape is allowed