ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference > Struct Template Reference

Propagation that state aggregates a stepping and a navigation state. More...

#include <detray/propagator/propagator.hpp>

Inheritance diagram for detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >:
[legend]

Public Types

using actor_chain_type = actor_chain_t
 Actor chain associated with this propagator.
using algebra_type = typename detector_type::algebra_type
 Detector algebra backend.
using context_type = typename detector_type::geometry_context
 Geometry context type for the detector.
using detector_type = typename navigator_t::detector_type
 Detector associated with the navigator.
using navigator_state_type = typename navigator_t::state
 Navigator-owned state type.
using scalar_type = typename detector_type::scalar_type
 Scalar type used by propagation state.
using stepper_state_type = typename stepper_t::state
 Stepper-owned state type.

Public Member Functions

 state_base (const bound_track_parameters_type &param, const detector_type &det, const context_type &ctx={})
 Construct the propagation state with bound parameter.
template<typename field_t>
requires concepts::is_field_of<stepper_type, field_t>
 state_base (const bound_track_parameters_type &param, const field_t &magnetic_field, const detector_type &det, const context_type &ctx={})
 Construct the propagation state with bound parameter.
template<typename field_t>
requires concepts::is_field_of<stepper_type, field_t>
 state_base (const bound_track_parameters_type &param, const field_t &magnetic_field, const detector_type &det, typename navigator_type::state::view_type nav_view, const context_type &ctx={})
 Construct the propagation state with bound parameter and navigator state view.
 state_base (const free_track_parameters_type &free_params, const detector_type &det, const context_type &ctx)
 Construct the propagation state with free parameter.
 state_base (const free_track_parameters_type &free_params, const detector_type &det, typename navigator_type::state::view_type nav_view, const context_type &ctx={})
 Construct the propagation state from the navigator state view.
template<typename field_t>
requires (!states_as_reference && concepts::is_field_of<stepper_type, field_t>)
 state_base (const free_track_parameters_type &free_params, const field_t &magnetic_field, const detector_type &det, const context_type &ctx={})
 Construct the propagation state with free parameter.
template<typename field_t>
requires (!states_as_reference && concepts::is_field_of<stepper_type, field_t>)
 state_base (const free_track_parameters_type &free_params, const field_t &magnetic_field, const detector_type &det, typename navigator_type::state::view_type nav_view, const context_type &ctx={})
 Construct the propagation state from the navigator state view.
 state_base (stepper_state_type &stepping, navigator_state_type &navigation, const context_type &ctx={})
 Construct the propagation state with propagation and navigation state.
context_type & context ()
const context_type & context () const
bool debug () const
void debug (bool b)
 Enable or disable verbose propagation diagnostics.
bool heartbeat () const
void heartbeat (bool heartbeat)
 Set whether propagation is currently active.
bool is_alive () const
navigator_state_type & navigation ()
const navigator_state_type & navigation () const
void set_particle (const pdg_particle< scalar_type > &ptc)
 Set the particle hypothesis.
stepper_state_type & stepping ()
const stepper_state_type & stepping () const

Static Public Attributes

static constexpr bool stepper_uses_gradient = stepper_type::uses_gradient
 Whether the configured stepper transports field gradients.

Detailed Description

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
struct detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >

Propagation that state aggregates a stepping and a navigation state.

It also keeps references to the actor states.

Constructor & Destructor Documentation

◆ state_base() [1/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const free_track_parameters_type & free_params,
const detector_type & det,
const context_type & ctx )

Construct the propagation state with free parameter.

Parameters
free_paramsInitial free track parameters.
detDetector used for navigation.
ctxGeometry context for detector transforms.

◆ state_base() [2/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
template<typename field_t>
requires (!states_as_reference && concepts::is_field_of<stepper_type, field_t>)
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const free_track_parameters_type & free_params,
const field_t & magnetic_field,
const detector_type & det,
const context_type & ctx = {} )

Construct the propagation state with free parameter.

Parameters
free_paramsInitial free track parameters.
magnetic_fieldMagnetic field used by the stepper.
detDetector used for navigation.
ctxGeometry context for detector transforms.

◆ state_base() [3/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const free_track_parameters_type & free_params,
const detector_type & det,
typename navigator_type::state::view_type nav_view,
const context_type & ctx = {} )

Construct the propagation state from the navigator state view.

Parameters
free_paramsInitial free track parameters.
detDetector used for navigation.
nav_viewExisting navigator state view to initialize from.
ctxGeometry context for detector transforms.

◆ state_base() [4/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
template<typename field_t>
requires (!states_as_reference && concepts::is_field_of<stepper_type, field_t>)
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const free_track_parameters_type & free_params,
const field_t & magnetic_field,
const detector_type & det,
typename navigator_type::state::view_type nav_view,
const context_type & ctx = {} )

Construct the propagation state from the navigator state view.

Parameters
free_paramsInitial free track parameters.
magnetic_fieldMagnetic field used by the stepper.
detDetector used for navigation.
nav_viewExisting navigator state view to initialize from.
ctxGeometry context for detector transforms.

◆ state_base() [5/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const bound_track_parameters_type & param,
const detector_type & det,
const context_type & ctx = {} )

Construct the propagation state with bound parameter.

Parameters
paramInitial bound track parameters.
detDetector used for navigation.
ctxGeometry context for detector transforms.

◆ state_base() [6/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( stepper_state_type & stepping,
navigator_state_type & navigation,
const context_type & ctx = {} )

Construct the propagation state with propagation and navigation state.

Parameters
steppingExisting stepper state.
navigationExisting navigator state.
ctxGeometry context for detector transforms.

◆ state_base() [7/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
template<typename field_t>
requires concepts::is_field_of<stepper_type, field_t>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const bound_track_parameters_type & param,
const field_t & magnetic_field,
const detector_type & det,
const context_type & ctx = {} )

Construct the propagation state with bound parameter.

Parameters
paramInitial bound track parameters.
magnetic_fieldMagnetic field used by the stepper.
detDetector used for navigation.
ctxGeometry context for detector transforms.

◆ state_base() [8/8]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
template<typename field_t>
requires concepts::is_field_of<stepper_type, field_t>
detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::state_base ( const bound_track_parameters_type & param,
const field_t & magnetic_field,
const detector_type & det,
typename navigator_type::state::view_type nav_view,
const context_type & ctx = {} )

Construct the propagation state with bound parameter and navigator state view.

Parameters
paramInitial bound track parameters.
magnetic_fieldMagnetic field used by the stepper.
detDetector used for navigation.
nav_viewExisting navigator state view to initialize from.
ctxGeometry context for detector transforms.

Member Function Documentation

◆ context() [1/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
context_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::context ( )
Returns
The mutable geometry context used during propagation.

◆ context() [2/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
const context_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::context ( ) const
Returns
The geometry context used during propagation (read-only).

◆ debug() [1/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
bool detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::debug ( ) const
Returns
Whether verbose propagation diagnostics are enabled.

◆ debug() [2/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
void detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::debug ( bool b)

Enable or disable verbose propagation diagnostics.

Parameters
bTrue to enable diagnostics.

◆ heartbeat() [1/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
bool detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::heartbeat ( ) const
Returns
the propagation heartbeat

◆ heartbeat() [2/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
void detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::heartbeat ( bool heartbeat)

Set whether propagation is currently active.

Parameters
heartbeatTrue to continue propagation.

◆ is_alive()

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
bool detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::is_alive ( ) const
Returns
the propagation heartbeat

◆ navigation() [1/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
navigator_state_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::navigation ( )
Returns
The mutable navigator state.

◆ navigation() [2/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
const navigator_state_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::navigation ( ) const
Returns
The navigator state (read-only).

◆ set_particle()

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
void detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::set_particle ( const pdg_particle< scalar_type > & ptc)

Set the particle hypothesis.

Parameters
ptcParticle properties, including mass and charge.

◆ stepping() [1/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
stepper_state_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::stepping ( )
Returns
The mutable stepper state.

◆ stepping() [2/2]

template<typename stepper_t, typename navigator_t, concepts::actor_chain actor_chain_t>
template<bool states_as_reference = false>
const stepper_state_type & detray::propagator< stepper_t, navigator_t, actor_chain_t >::state_base< states_as_reference >::stepping ( ) const
Returns
The stepper state (read-only).