ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::intersector_base< intersector_t > Struct Template Reference

Base class for an intersector: Provides mask based call interfaces for convenience. More...

#include <detray/navigation/intersection/intersector_base.hpp>

Inheritance diagram for detray::intersector_base< intersector_t >:
[legend]
Collaboration diagram for detray::intersector_base< intersector_t >:
[legend]

Public Types

template<typename surface_descr_t>
using intersection_type
 Intersection result type associated with a surface descriptor.
using result_type = typename intersector_t::result_type
 Always includes the intersection position, in order to resolve the mask.
template<typename other_algebra_t>
using trajectory_type
 Trajectory representation accepted for the requested algebra layout.
using algebra_type = typename intersector_t::algebra_type
 linear algebra types
using value_type = dvalue<algebra_type>
 Scalar value type for the configured algebra layout.
using scalar_type = dscalar<algebra_type>
 Scalar calculation type for the configured algebra layout.
using point2_type = dpoint2D<algebra_type>
 Two-dimensional point type for the configured algebra layout.
using point3_type = dpoint3D<algebra_type>
 Three-dimensional point type for the configured algebra layout.
using vector3_type = dvector3D<algebra_type>
 Three-dimensional vector type for the configured algebra layout.
using transform3_type = dtransform3D<algebra_type>
 Transform type used to place the surface in 3D.

Public Member Functions

template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t>
constexpr decltype(auto) operator() (const trajectory_type< other_algebra_t > &traj, const surface_descr_t &sf, const mask_t &mask, const transform3_type &trf, const scalar_type mask_tolerance, const scalar_type overstep_tol=0.f) const
 Interface that uses fixed mask tolerance.
template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t, std::uint8_t N = n_solutions>
requires (N == 1u)
constexpr intersection_type< surface_descr_t > operator() (const trajectory_type< other_algebra_t > &traj, const surface_descr_t &sf, const mask_t &mask, const transform3_type &trf, const intersection::config &cfg={}, const scalar_type external_mask_tol=0.f) const
 Operator function to find intersections between trajectory and a surface.
template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t, std::uint8_t N = n_solutions>
requires (N > 1u)
constexpr darray< intersection_type< surface_descr_t >, n_solutions > operator() (const trajectory_type< other_algebra_t > &traj, const surface_descr_t &sf, const mask_t &mask, const transform3_type &trf, const intersection::config &cfg={}, const scalar_type external_mask_tol=0.f) const
 Shapes that produce multiple solutions.

Static Public Attributes

static constexpr std::uint8_t n_solutions {intersector_t::n_solutions}
 Maximum number of solutions this intersector can produce.

Detailed Description

template<typename intersector_t>
struct detray::intersector_base< intersector_t >

Base class for an intersector: Provides mask based call interfaces for convenience.

Member Typedef Documentation

◆ intersection_type

template<typename intersector_t>
template<typename surface_descr_t>
using detray::intersector_base< intersector_t >::intersection_type
Initial value:
typename intersector_t::template intersection_type<surface_descr_t>
typename intersector_t::template intersection_type< surface_descr_t > intersection_type
Intersection result type associated with a surface descriptor.
Definition intersector_base.hpp:53

Intersection result type associated with a surface descriptor.

◆ trajectory_type

template<typename intersector_t>
template<typename other_algebra_t>
using detray::intersector_base< intersector_t >::trajectory_type
Initial value:
typename intersector_t::template trajectory_type<other_algebra_t>
typename intersector_t::template trajectory_type< other_algebra_t > trajectory_type
Trajectory representation accepted for the requested algebra layout.
Definition intersector_base.hpp:58

Trajectory representation accepted for the requested algebra layout.

Member Function Documentation

◆ operator()() [1/3]

template<typename intersector_t>
template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t, std::uint8_t N = n_solutions>
requires (N > 1u)
darray< intersection_type< surface_descr_t >, n_solutions > detray::intersector_base< intersector_t >::operator() ( const trajectory_type< other_algebra_t > & traj,
const surface_descr_t & sf,
const mask_t & mask,
const transform3_type & trf,
const intersection::config & cfg = {},
const scalar_type external_mask_tol = 0.f ) const
constexpr

Shapes that produce multiple solutions.

Parameters
trajTrajectory to intersect with the surface.
sfSurface descriptor associated with the mask.
maskSurface mask used to classify each candidate point.
trfTransform from the surface frame to the global frame.
cfgIntersection tolerances and path cutoff.
external_mask_tolAdditional tolerance for the mask boundary.
Returns
The resolved intersection candidates.

◆ operator()() [2/3]

template<typename intersector_t>
template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t, std::uint8_t N = n_solutions>
requires (N == 1u)
intersection_type< surface_descr_t > detray::intersector_base< intersector_t >::operator() ( const trajectory_type< other_algebra_t > & traj,
const surface_descr_t & sf,
const mask_t & mask,
const transform3_type & trf,
const intersection::config & cfg = {},
const scalar_type external_mask_tol = 0.f ) const
constexpr

Operator function to find intersections between trajectory and a surface.

Template Parameters
surface_descr_tis the type of surface handle
mask_tis the input mask type Shapes that produce one solution
Parameters
trajTrajectory to intersect with the surface.
sfSurface descriptor associated with the mask.
maskSurface mask used to classify the candidate point.
trfTransform from the surface frame to the global frame.
cfgIntersection tolerances and path cutoff.
external_mask_tolAdditional tolerance for the mask boundary.
Returns
The resolved intersection, including mask status.

◆ operator()() [3/3]

template<typename intersector_t>
template<typename surface_descr_t, typename mask_t, concepts::algebra other_algebra_t>
decltype(auto) detray::intersector_base< intersector_t >::operator() ( const trajectory_type< other_algebra_t > & traj,
const surface_descr_t & sf,
const mask_t & mask,
const transform3_type & trf,
const scalar_type mask_tolerance,
const scalar_type overstep_tol = 0.f ) const
constexpr

Interface that uses fixed mask tolerance.

Parameters
trajTrajectory to intersect with the surface.
sfSurface descriptor associated with the mask.
maskMask defining the finite extent of the surface.
trfTransform from the surface frame to the global frame.
mask_toleranceFixed tolerance used to classify the mask boundary.
overstep_tolMinimum accepted signed path length.
Returns
The resolved intersection result or results.