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

Facade for a detray detector surface with extra tracking capabilities. More...

#include <detray/geometry/tracking_surface.hpp>

Inheritance diagram for detray::tracking_surface< det_t >:
[legend]
Collaboration diagram for detray::tracking_surface< det_t >:
[legend]

Public Types

using algebra_type = typename base_surface_t::algebra_type
 Algebra backend used for surface tracking calculations.
using context = typename base_surface_t::context
 Geometry context type used to resolve contextual transforms.
using point2_type = typename base_surface_t::point2_type
 Two-dimensional local point type.
using point3_type = typename base_surface_t::point3_type
 Three-dimensional point type.
using scalar_type = typename base_surface_t::scalar_type
 Scalar type used for track parameters and geometry values.
using transform3_type = typename base_surface_t::transform3_type
 Transform type used by the underlying surface.
using vector3_type = typename base_surface_t::vector3_type
 Three-dimensional vector type.
Public Types inherited from detray::geometry::surface< const det_t >
using algebra_type
 Algebra backend used by the detector geometry.
using context
 Geometry context type used for contextual transforms.
using point2_type
 Two-dimensional local point type.
using point3_type
 Three-dimensional point type.
using scalar_type
 Scalar type used for geometry calculations.
using transform3_type
 Transform type used to place the surface.
using vector3_type
 Three-dimensional vector type.

Public Member Functions

constexpr tracking_surface (const base_surface_t sf)
 Decorate a geometric surface with tracking functionality.
constexpr auto bound_to_free_jacobian (const context &ctx, const bound_param_vector_type &bound_vec) const
constexpr auto bound_to_free_vector (const context &ctx, const bound_param_vector_type &bound_vec) const
constexpr auto free_to_bound_jacobian (const context &ctx, const free_param_vector_type &free_vec) const
constexpr auto free_to_bound_vector (const context &ctx, const free_param_vector_type &free_vec) const
constexpr auto free_to_path_derivative (const context &ctx, const vector3_type &pos, const vector3_type &dir, const vector3_type &dtds) const
template<typename detector_type = detector_t>
requires (!std::is_const_v<detector_type>)
constexpr operator tracking_surface< const detector_type > () const
 Conversion to surface interface around constant detector type, which has no semantic difference (the detector is always const internally).
constexpr auto path_correction (const context &ctx, const vector3_type &pos, const vector3_type &dir, const vector3_type &dtds, const scalar_type dqopds) const
Public Member Functions inherited from detray::geometry::surface< const det_t >
 surface ()=delete
 Not allowed: always needs a detector and a descriptor.
constexpr auto boundary (std::size_t index) const
constexpr auto center (const context &ctx) const -> point3_type
constexpr auto centroid () const -> point3_type
constexpr auto extra () const -> dindex
constexpr point2_type global_to_bound (const context &ctx, const point3_type &global, const vector3_type &dir) const
constexpr point3_type global_to_local (const context &ctx, const point3_type &global, const vector3_type &dir) const
constexpr bool has_material () const
constexpr auto id () const -> surface_id
constexpr auto identifier () const -> geometry::identifier
constexpr auto index () const -> dindex
constexpr bool is_inside (const point_t &loc_p, const scalar_type tol) const
constexpr auto is_passive () const -> bool
constexpr auto is_portal () const -> bool
constexpr auto is_sensitive () const -> bool
constexpr point3_type local_to_global (const context &ctx, const point_t &local, const vector3_type &dir) const
constexpr const material< scalar_type > * material_parameters (const point2_type &loc_p) const
std::size_t n_masks () const
constexpr auto normal (const context &ctx, const point_t &p) const -> vector3_type
constexpr operator surface< const detector_type > () const
 Allow conversion from surface<detector_t> to surface<const detector_t>, which has no semantic difference (the detector is always const internally).
constexpr auto operator== (const surface &rhs) const -> bool
 Equality operator.
bool self_check (std::ostream &os) const
 Do a consistency check on the surface after building the detector.
constexpr auto shape_id () const
std::string shape_name () const
constexpr auto source () const
constexpr auto transform (const context &ctx) const -> const transform3_type &
constexpr auto visit_mask (Args &&...args) const
 Call a functor on the surfaces mask with additional arguments.
constexpr auto visit_material (Args &&...args) const
 Call a functor on the surfaces material with additional arguments.
constexpr auto volume () const -> dindex
constexpr auto volume_links () const

Additional Inherited Members

Protected Member Functions inherited from detray::geometry::surface< const det_t >
descr_t descriptor () const
const detector_t & detector () const

Detailed Description

template<concepts::detector det_t>
class detray::tracking_surface< det_t >

Facade for a detray detector surface with extra tracking capabilities.

Constructor & Destructor Documentation

◆ tracking_surface()

template<concepts::detector det_t>
detray::tracking_surface< det_t >::tracking_surface ( const base_surface_t sf)
explicitconstexpr

Decorate a geometric surface with tracking functionality.

Parameters
sfGeometric surface to decorate.

Member Function Documentation

◆ bound_to_free_jacobian()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::bound_to_free_jacobian ( const context & ctx,
const bound_param_vector_type & bound_vec ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
bound_vecTrack parameters in the surface's bound representation.
Returns
the jacobian to go from a bound to a free track parametrization

◆ bound_to_free_vector()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::bound_to_free_vector ( const context & ctx,
const bound_param_vector_type & bound_vec ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
bound_vecTrack parameters in the surface's bound representation.
Returns
the global track parametrization from a bound representation

◆ free_to_bound_jacobian()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::free_to_bound_jacobian ( const context & ctx,
const free_param_vector_type & free_vec ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
free_vecTrack parameters in global coordinates.
Returns
the jacobian to go from a free to a bound track parametrization

◆ free_to_bound_vector()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::free_to_bound_vector ( const context & ctx,
const free_param_vector_type & free_vec ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
free_vecTrack parameters in global coordinates.
Returns
the track parametrization projected onto the surface (bound)

◆ free_to_path_derivative()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::free_to_path_derivative ( const context & ctx,
const vector3_type & pos,
const vector3_type & dir,
const vector3_type & dtds ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
posParticle position in global coordinates.
dirParticle direction in global coordinates.
dtdsDerivative of direction with respect to path length.
Returns
the free to path derivative

◆ operator tracking_surface< const detector_type >()

template<concepts::detector det_t>
template<typename detector_type = detector_t>
requires (!std::is_const_v<detector_type>)
detray::tracking_surface< det_t >::operator tracking_surface< const detector_type > ( ) const
constexpr

Conversion to surface interface around constant detector type, which has no semantic difference (the detector is always const internally).

Returns
Equivalent tracking surface with a const detector type.

◆ path_correction()

template<concepts::detector det_t>
auto detray::tracking_surface< det_t >::path_correction ( const context & ctx,
const vector3_type & pos,
const vector3_type & dir,
const vector3_type & dtds,
const scalar_type dqopds ) const
constexpr
Parameters
ctxGeometry context for resolving the surface transform.
posParticle position in global coordinates.
dirParticle direction in global coordinates.
dtdsDerivative of direction with respect to path length.
dqopdsDerivative of q/p with respect to path length.
Returns
the path correction term