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

The interface to the actors and aborters in the propagation. More...

#include <detray/propagator/actor_chain.hpp>

Inheritance diagram for detray::actor_chain< actors_t >:
[legend]

Public Types

using actor_tuple = dtuple<actors_t...>
 Types of the actors that are registered in the chain.
using state_ref_tuple
 Tuple of state references that is used in the propagator.
using state_tuple
 Tuple of actor states (including states of observing actors, if present).

Public Member Functions

constexpr const actor_tuple & actors () const
template<typename actor_states_t, typename propagator_state_t>
void operator() (actor_states_t &states, propagator_state_t &p_state) const
 Call all actors in the chain.

Static Public Member Functions

static constexpr auto make_default_actor_states ()
static constexpr state_ref_tuple setup_actor_states (state_tuple &t)
 Create references to each actor state in the tuple.

Detailed Description

template<concepts::actor... actors_t>
class detray::actor_chain< actors_t >

The interface to the actors and aborters in the propagation.

It can hold both simple actors, as well as an actor with its observers. The states of the actors need to be passed to the chain in an external tuple

Template Parameters
actors_tthe types of the actors in the chain.

Member Typedef Documentation

◆ state_ref_tuple

template<concepts::actor... actors_t>
using detray::actor_chain< actors_t >::state_ref_tuple
Initial value:
detail::unique_t<
detail::tuple_cat_t<detail::state_ref_tuple_t<actors_t>...>>

Tuple of state references that is used in the propagator.

◆ state_tuple

template<concepts::actor... actors_t>
using detray::actor_chain< actors_t >::state_tuple
Initial value:
detail::unique_t<detail::tuple_cat_t<detail::state_tuple_t<actors_t>...>>

Tuple of actor states (including states of observing actors, if present).

Member Function Documentation

◆ actors()

template<concepts::actor... actors_t>
const actor_tuple & detray::actor_chain< actors_t >::actors ( ) const
constexpr
Returns
the actor list

◆ make_default_actor_states()

template<concepts::actor... actors_t>
constexpr auto detray::actor_chain< actors_t >::make_default_actor_states ( )
staticconstexpr
Returns
a tuple of default constructible actor states

◆ operator()()

template<concepts::actor... actors_t>
template<typename actor_states_t, typename propagator_state_t>
void detray::actor_chain< actors_t >::operator() ( actor_states_t & states,
propagator_state_t & p_state ) const

Call all actors in the chain.

Parameters
statesthe states of the actors.
p_statethe propagation state.

◆ setup_actor_states()

template<concepts::actor... actors_t>
constexpr state_ref_tuple detray::actor_chain< actors_t >::setup_actor_states ( state_tuple & t)
staticconstexpr

Create references to each actor state in the tuple.

Parameters
tTuple of actor states.
Returns
a tuple of reference for every state in the tuple t