ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t > Class Template Reference

Templated propagator class, using a stepper and a navigator object in succession. More...

#include <detray/propagator/perigee_extrapolator.hpp>

Public Types

using actor_chain_type = actor_chain_t
 Actor chain run by the propagator.
using algebra_type = typename detector_type::algebra_type
 Algebra backend used by detector and stepper.
using bound_track_parameters_type
 Bound track parameter representation used by the stepper.
using detector_type = detector_t
 Detector type used for geometry and navigation.
using free_track_parameters_type
 Free track parameter representation used by the stepper.
using intersection_type = typename navigator_type::intersection_type
 Intersection result type produced by the navigator.
using navigator_type
 Navigator configured to intersect the perigee surface.
using perigee_surface
 External line surface representing the perigee target.
using propagator_type
 Propagator type combining the stepper, navigator, and actor chain.
using scalar_type = dscalar<algebra_type>
 Scalar type for propagation calculations.
using state = typename propagator_type::state
 Propagation state returned by this extrapolator.
using stepper_type = stepper_t
 Stepper used to transport the track.

Public Member Functions

constexpr perigee_extrapolator (const propagation::config &cfg)
 Construct from a propagator configuration.
template<typename track_t>
state create_state (const track_t &track, const detector_t &det) const
 Create the propagation state for the extrapolator.
auto extrapolate (state &propagation)
 Overload for empty actor chain.
auto extrapolate (state &propagation, typename actor_chain_type::state_ref_tuple actor_state_refs=typename actor_chain_type::state_ref_tuple{}) const
 Propagate method: Coordinates the calls of the stepper, navigator and all registered actors.
bool finished (const state &propagation) const
 Return whether or not the propagation completed successfully.

Detailed Description

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
class detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >

Templated propagator class, using a stepper and a navigator object in succession.

Template Parameters
stepper_tfor the transport
navigator_tfor the navigation

Member Typedef Documentation

◆ bound_track_parameters_type

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
using detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::bound_track_parameters_type
Initial value:
typename stepper_t::bound_track_parameters_type

Bound track parameter representation used by the stepper.

◆ free_track_parameters_type

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
using detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::free_track_parameters_type
Initial value:
typename stepper_t::free_track_parameters_type

Free track parameter representation used by the stepper.

◆ navigator_type

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
using detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::navigator_type
Initial value:
direct_navigator<detector_t,
Navigator that visits an externally supplied sequence of surfaces in order.
Definition direct_navigator.hpp:38
Struct that implements a view on a single element.
Definition single.hpp:29

Navigator configured to intersect the perigee surface.

◆ perigee_surface

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
using detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::perigee_surface
Initial value:
nav_link_t>
Surface descriptor used for geometry supplied outside the detector store.
Definition external_surface.hpp:32

External line surface representing the perigee target.

◆ propagator_type

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
using detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::propagator_type
Initial value:
Templated propagator class, using a stepper and a navigator object in succession.
Definition propagator.hpp:35

Propagator type combining the stepper, navigator, and actor chain.

Constructor & Destructor Documentation

◆ perigee_extrapolator()

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::perigee_extrapolator ( const propagation::config & cfg)
explicitconstexpr

Construct from a propagator configuration.

Parameters
cfgConfiguration passed to the underlying propagator.

Member Function Documentation

◆ create_state()

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
template<typename track_t>
state detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::create_state ( const track_t & track,
const detector_t & det ) const

Create the propagation state for the extrapolator.

Parameters
trackthe free track parameters (initial state)
detthe detector
Returns
the propagation state.

◆ extrapolate() [1/2]

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
auto detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::extrapolate ( state & propagation)

Overload for empty actor chain.

Parameters
propagationState of the propagation flow.
Returns
Bound track parameters at the perigee surface.

◆ extrapolate() [2/2]

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
auto detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::extrapolate ( state & propagation,
typename actor_chain_type::state_ref_tuple actor_state_refs = typename actor_chain_type::state_ref_tuple{} ) const

Propagate method: Coordinates the calls of the stepper, navigator and all registered actors.

Parameters
propagationthe state of a propagation flow
actor_state_refstule containing references to the actor states
Returns
propagation success.

◆ finished()

template<typename detector_t, typename stepper_t, concepts::actor_chain actor_chain_t = actor_chain<>>
bool detray::perigee_extrapolator< detector_t, stepper_t, actor_chain_t >::finished ( const state & propagation) const

Return whether or not the propagation completed successfully.

Parameters
propagationthe state of the extrapolator
Returns
propagation success.