ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::ActorList< actors_t > Struct Template Reference

ActorList implementation to be used with the propagator. More...

#include <Acts/Propagator/ActorList.hpp>

Inheritance diagram for Acts::ActorList< actors_t >:
[legend]

Public Member Functions

 ActorList ()=default
 Default constructor.
 ActorList (ActorList< actors_t... > &&actors) noexcept=default
 Default move constructor.
 ActorList (const ActorList< actors_t... > &actors)=default
 Default copy constructor.
 ActorList (const std::tuple< actors_t... > &actors)
 Constructor from tuple.
 ActorList (std::tuple< actors_t... > &&actors)
 Constructor from tuple move.
template<typename propagator_state_t, typename stepper_t, typename navigator_t, typename... Args>
Result< void > act (propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Args &&... args) const
 Act call which broadcasts the call to the tuple() members of the list.
template<typename... appendices_t>
ActorList< actors_t..., appendices_t... > append (appendices_t... aps) const
 Append new entries and return a new condition.
template<typename propagator_state_t, typename stepper_t, typename navigator_t, typename... Args>
bool checkAbort (propagator_state_t &state, const stepper_t &stepper, const navigator_t &navigator, Args &&... args) const
 Check call which broadcasts the call to the tuple() members of the list.
template<typename actor_t>
actor_t & get ()
 Non-const retrieval of an actor of a specific type.
template<typename actor_t>
const actor_t & get () const
 Const retrieval of an actor of a specific type.
ActorList< actors_t... > & operator= (ActorList< actors_t... > &&actors) noexcept=default
 Default move assignment operator.
ActorList< actors_t... > & operator= (const ActorList< actors_t... > &actors)=default
 Default move assignment operator.

Detailed Description

template<typename... actors_t>
requires ((std::is_default_constructible_v<actors_t> && ...) && (std::is_copy_constructible_v<actors_t> && ...) && (std::is_move_constructible_v<actors_t> && ...) && ((Types::count<actors_t, TypeList<actors_t...>>::value == 1) && ...))
struct Acts::ActorList< actors_t >

ActorList implementation to be used with the propagator.

This is the ActorList struct that is used in the propagator to define a list of different actors_t that are each executed during the stepping procedure

Constructor & Destructor Documentation

◆ ActorList() [1/5]

template<typename... actors_t>
Acts::ActorList< actors_t >::ActorList ( )
default

Default constructor.

◆ ActorList() [2/5]

template<typename... actors_t>
Acts::ActorList< actors_t >::ActorList ( const ActorList< actors_t... > & actors)
default

Default copy constructor.

Parameters
actorsThe source action list

◆ ActorList() [3/5]

template<typename... actors_t>
Acts::ActorList< actors_t >::ActorList ( ActorList< actors_t... > && actors)
defaultnoexcept

Default move constructor.

Parameters
actorsThe source action list

◆ ActorList() [4/5]

template<typename... actors_t>
Acts::ActorList< actors_t >::ActorList ( const std::tuple< actors_t... > & actors)
explicit

Constructor from tuple.

Parameters
actorsSource extensions tuple

◆ ActorList() [5/5]

template<typename... actors_t>
Acts::ActorList< actors_t >::ActorList ( std::tuple< actors_t... > && actors)
explicit

Constructor from tuple move.

Parameters
actorsSource extensions tuple

Member Function Documentation

◆ act()

template<typename... actors_t>
template<typename propagator_state_t, typename stepper_t, typename navigator_t, typename... Args>
Result< void > Acts::ActorList< actors_t >::act ( propagator_state_t & state,
const stepper_t & stepper,
const navigator_t & navigator,
Args &&... args ) const

Act call which broadcasts the call to the tuple() members of the list.

Template Parameters
propagator_state_tis the state type of the propagator
stepper_tType of the stepper used for the propagation
navigator_tType of the navigator used for the propagation
Parameters
[in,out]stateThis is the propagator state object
[in]stepperThe stepper in use
[in]navigatorThe navigator in use
[in]argsThe arguments to be passed to the actions

◆ append()

template<typename... actors_t>
template<typename... appendices_t>
ActorList< actors_t..., appendices_t... > Acts::ActorList< actors_t >::append ( appendices_t... aps) const

Append new entries and return a new condition.

Template Parameters
appendices_tTypes of appended entries to the tuple
Parameters
apsThe actors to be appended to the new ActorList
Returns
A new ActorList with the appended actors

◆ checkAbort()

template<typename... actors_t>
template<typename propagator_state_t, typename stepper_t, typename navigator_t, typename... Args>
bool Acts::ActorList< actors_t >::checkAbort ( propagator_state_t & state,
const stepper_t & stepper,
const navigator_t & navigator,
Args &&... args ) const

Check call which broadcasts the call to the tuple() members of the list.

Template Parameters
propagator_state_tis the state type of the propagator
stepper_tType of the stepper
navigator_tType of the navigator
Parameters
[in,out]stateis the state object from the propagator
[in]stepperStepper used for the propagation
[in]navigatorNavigator used for the propagation
[in]argsare the arguments to be passed to the aborters
Returns
True if propagation should be aborted, false otherwise

◆ get() [1/2]

template<typename... actors_t>
template<typename actor_t>
actor_t & Acts::ActorList< actors_t >::get ( )

Non-const retrieval of an actor of a specific type.

Template Parameters
actor_tType of the Actor to be retrieved
Returns
Reference to the requested actor

◆ get() [2/2]

template<typename... actors_t>
template<typename actor_t>
const actor_t & Acts::ActorList< actors_t >::get ( ) const

Const retrieval of an actor of a specific type.

Template Parameters
actor_tType of the Actor to be retrieved
Returns
Const reference to the requested actor

◆ operator=() [1/2]

template<typename... actors_t>
ActorList< actors_t... > & Acts::ActorList< actors_t >::operator= ( ActorList< actors_t... > && actors)
defaultnoexcept

Default move assignment operator.

Parameters
actorsThe source action list
Returns
Reference to this ActorList after move assignment

◆ operator=() [2/2]

template<typename... actors_t>
ActorList< actors_t... > & Acts::ActorList< actors_t >::operator= ( const ActorList< actors_t... > & actors)
default

Default move assignment operator.

Parameters
actorsThe source action list
Returns
Reference to this ActorList after copy assignment