Celeritas
0.5.0-86+4a8eea4
|
Group and sequence actions to be used over the lifetime of a run. More...
#include <ActionGroups.hh>
Public Types | |
Type aliases | |
using | BeginRunActionT = BeginRunActionInterface< P, S > |
using | StepActionT = StepActionInterface< P, S > |
using | SPBeginAction = std::shared_ptr< BeginRunActionT > |
using | SPConstStepAction = std::shared_ptr< StepActionT const > |
using | VecBeginAction = std::vector< SPBeginAction > |
using | VecStepAction = std::vector< SPConstStepAction > |
Public Member Functions | |
ActionGroups (ActionRegistry const &) | |
Construct from an action registry. | |
VecBeginAction const & | begin_run () const |
Get the set of beginning-of-run actions. | |
VecStepAction const & | step () const |
Get the ordered vector of actions within a step. | |
Group and sequence actions to be used over the lifetime of a run.
This class improves runtime performance by caching the correct base classes of the virtual action hierarchy. It sorts step actions by increasing StepActionOrder
, then by increasing action ID. Other actions are sorted solely by action ID.
Because actions can inherit from multiple action types, the sum of actions from these partitions may be greater than the number of actions in the registry.