ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::surface_data< detector_t > Class Template Reference

Bind transform and mask data together for surface building. More...

#include <detray/builders/surface_factory_interface.hpp>

Public Types

using boundary_coll_type = std::vector<typename detector_t::scalar_type>
 Boundary-value collection type for one mask.
using navigation_link = typename detector_t::surface_type::navigation_link
 Navigation link stored for each mask attached to the surface.

Public Member Functions

 surface_data (const surface_id type, const typename detector_t::transform3_type &trf, navigation_link volume_link, const boundary_coll_type &mask_boundaries, const dindex idx=dindex_invalid, const std::uint64_t source=detail::invalid_value< std::uint64_t >())
 Parametrized constructor - surface with only one mask.
 surface_data (const surface_id type, const typename detector_t::transform3_type &trf, std::vector< navigation_link > volume_link, const std::vector< boundary_coll_type > &mask_boundaries, const dindex idx=dindex_invalid, const std::uint64_t source=detail::invalid_value< std::uint64_t >())
 Parametrized constructor.
auto get_data () -> std::tuple< surface_id &, std::vector< navigation_link > &, dindex &, std::uint64_t &, std::vector< boundary_coll_type > &, typename detector_t::transform3_type & >

Detailed Description

template<concepts::detector detector_t>
class detray::surface_data< detector_t >

Bind transform and mask data together for surface building.

Surface data is kept in separate detector containers and linked by indices, so during geometry building, great care has to be taken to make sure that all components of a surface get sorted and linked into the containers together and associated with the correct surface.

Constructor & Destructor Documentation

◆ surface_data() [1/2]

template<concepts::detector detector_t>
detray::surface_data< detector_t >::surface_data ( const surface_id type,
const typename detector_t::transform3_type & trf,
navigation_link volume_link,
const boundary_coll_type & mask_boundaries,
const dindex idx = dindex_invalid,
const std::uint64_t source = detail::invalid_value<std::uint64_t>() )

Parametrized constructor - surface with only one mask.

Parameters
typethe surface type (portal|sensitive|passive)
trfthe surface placement transformation
volume_linkthe mask volume link (used for navigation)
mask_boundariesdefine the extent of the surface
idxthe index of the surface in the global detector lookup, needs to be passed only if a special ordering should be observed
sourceOptional source identifier associated with the surface.

◆ surface_data() [2/2]

template<concepts::detector detector_t>
detray::surface_data< detector_t >::surface_data ( const surface_id type,
const typename detector_t::transform3_type & trf,
std::vector< navigation_link > volume_link,
const std::vector< boundary_coll_type > & mask_boundaries,
const dindex idx = dindex_invalid,
const std::uint64_t source = detail::invalid_value<std::uint64_t>() )

Parametrized constructor.

Parameters
typethe surface type (portal|sensitive|passive)
trfthe surface placement transformation
volume_linkthe volume link of each mask (used for navigation)
mask_boundariesdefine the extent of each mask of the surface
idxthe index of the surface in the global detector lookup, needs to be passed only if a special ordering should be observed
sourceOptional source identifier associated with the surface.

Member Function Documentation

◆ get_data()

template<concepts::detector detector_t>
auto detray::surface_data< detector_t >::get_data ( ) ->std::tuple< surface_id &, std::vector< navigation_link > &, dindex &, std::uint64_t &, std::vector< boundary_coll_type > &, typenamedetector_t::transform3_type & >
Returns
References to type, links, indices, source, boundaries, and transform.