ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t > Struct Template Reference

State struct holding the track. More...

#include <detray/propagator/base_stepper.hpp>

Public Types

using internal_jacobian_type = internal_jacobian_t
 Internal representation used to accumulate the transport Jacobian.

Public Member Functions

template<concepts::detector detector_t>
 state (const bound_track_parameters_type &bound_params, const detector_t &det, const typename detector_t::geometry_context &ctx)
 Sets track parameters from bound track parameter.
 state (const free_track_parameters_type &free_params)
 Sets track parameters.
scalar_type abs_path_length () const
const constraint_t & constraints () const
void count_trials ()
 Updates the total number of step trials.
step::direction direction () const
 Get stepping direction.
constexpr auto & inspector ()
internal_jacobian_type & internal_transport_jacobian ()
const internal_jacobian_type & internal_transport_jacobian () const
std::size_t n_total_trials () const
free_track_parameters_type & operator() ()
const free_track_parameters_type & operator() () const
const auto & particle_hypothesis () const
scalar_type path_length () const
policy_t::state & policy_state ()
template<step::constraint type = step::constraint::e_actor>
void release_step ()
 Remove [all] constraints.
void reset_transport_jacobian ()
 Reset transport Jacbian.
void run_inspector (const stepping::config &cfg, const char *message, const scalar_type dist)
 Call the stepping inspector.
template<step::constraint type = step::constraint::e_actor>
void set_constraint (scalar_type step_size)
 Set new step constraint.
void set_particle (const pdg_particle< scalar_type > &ptc)
 Set new particle hypothesis.
void set_step_size (const scalar_type step)
 Set the current step size.
scalar_type step_size () const
free_matrix_type & transport_jacobian ()
const free_matrix_type & transport_jacobian () const
free_matrix_type transport_jacobian () const
void update_path_lengths (scalar_type seg)
 Add a new segment to all path lengths (forward or backward).

Detailed Description

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
struct detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >

State struct holding the track.

Note
It has to cast into a const track via the call operation.

Constructor & Destructor Documentation

◆ state() [1/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::state ( const free_track_parameters_type & free_params)
explicit

Sets track parameters.

Parameters
free_paramsInitial free parameters.

◆ state() [2/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
template<concepts::detector detector_t>
detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::state ( const bound_track_parameters_type & bound_params,
const detector_t & det,
const typename detector_t::geometry_context & ctx )

Sets track parameters from bound track parameter.

Template Parameters
detector_tDetector owning the bound parameters' surface.
Parameters
bound_paramsInitial bound parameters and covariance.
detDetector used to resolve the departure surface.
ctxGeometry context for the bound-to-free conversion.

Member Function Documentation

◆ abs_path_length()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
scalar_type detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::abs_path_length ( ) const
Returns
this states total integration path length.

◆ constraints()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
const constraint_t & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::constraints ( ) const
Returns
access to this states step constraints

◆ direction()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
step::direction detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::direction ( ) const

Get stepping direction.

Returns
Forward or backward direction according to the signed step.

◆ inspector()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
auto & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::inspector ( )
constexpr
Returns
the stepping inspector

◆ internal_transport_jacobian() [1/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
internal_jacobian_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::internal_transport_jacobian ( )
Returns
the current transport Jacbian.

◆ internal_transport_jacobian() [2/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
const internal_jacobian_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::internal_transport_jacobian ( ) const
Returns
the current transport Jacbian.

◆ n_total_trials()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
std::size_t detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::n_total_trials ( ) const
Returns
the total number of step trials. For steppers that don't use adaptive step size scaling, this is the number of steps

◆ operator()() [1/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
free_track_parameters_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::operator() ( )
Returns
free track parameters - non-const access

◆ operator()() [2/2]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
const free_track_parameters_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::operator() ( ) const
Returns
free track parameters - const access

◆ particle_hypothesis()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
const auto & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::particle_hypothesis ( ) const
Returns
the current particle hypothesis

◆ path_length()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
scalar_type detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::path_length ( ) const
Returns
this states path length.

◆ policy_state()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
policy_t::state & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::policy_state ( )
Returns
access to this states navigation policy state

◆ run_inspector()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
void detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::run_inspector ( const stepping::config & cfg,
const char * message,
const scalar_type dist )

Call the stepping inspector.

Parameters
cfgStepping configuration supplied to the inspector.
messageContext message describing the inspection point.
distDistance associated with the current step.

◆ set_constraint()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
template<step::constraint type = step::constraint::e_actor>
void detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::set_constraint ( scalar_type step_size)

Set new step constraint.

Template Parameters
typeConstraint category to update.
Parameters
step_sizeMaximum step size imposed by the constraint.

◆ set_particle()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
void detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::set_particle ( const pdg_particle< scalar_type > & ptc)

Set new particle hypothesis.

Parameters
ptcParticle hypothesis to use.

◆ set_step_size()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
void detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::set_step_size ( const scalar_type step)

Set the current step size.

Parameters
stepSigned step length used for the next advancement.

◆ step_size()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
scalar_type detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::step_size ( ) const
Returns
the step size of the current step.

◆ transport_jacobian() [1/3]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
free_matrix_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::transport_jacobian ( )
Returns
the current transport Jacbian.

◆ transport_jacobian() [2/3]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
const free_matrix_type & detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::transport_jacobian ( ) const
Returns
the current transport Jacbian - const

◆ transport_jacobian() [3/3]

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
free_matrix_type detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::transport_jacobian ( ) const
Returns
the current transport Jacbian - const
Note
converts to the full 8x8 matrix in case the reduced storage

◆ update_path_lengths()

template<concepts::algebra algebra_t, typename constraint_t, typename policy_t, typename inspector_t = stepping::void_inspector>
template<typename internal_jacobian_t = free_matrix_type>
void detray::base_stepper< algebra_t, constraint_t, policy_t, inspector_t >::state< internal_jacobian_t >::update_path_lengths ( scalar_type seg)

Add a new segment to all path lengths (forward or backward).

Parameters
segSigned segment length.