|
Celeritas 0.7.0-dev.169+develop.bdc0041f6
|
Simulation properties for a single track. More...
#include <SimTrackView.hh>
Public Types | |
Type aliases | |
| using | SimParamsRef = NativeCRef< SimParamsData > |
| using | SimStateRef = NativeRef< SimStateData > |
| using | Initializer_t = SimTrackInitializer |
| using | Energy = units::MevEnergy |
Public Member Functions | |
| CELER_FUNCTION | SimTrackView (SimParamsRef const ¶ms, SimStateRef const &states, TrackSlotId tid) |
| Construct from persistent and local data. | |
| CELER_FUNCTION SimTrackView & | operator= (Initializer_t const &other) |
| Initialize the particle. | |
| CELER_FUNCTION void | add_time (real_type delta) |
| Add the time change over the step. | |
| CELER_FUNCTION void | increment_num_steps () |
| Increment the total number of steps. | |
| CELER_FUNCTION void | update_looping (bool) |
| Update the number of steps this track has been looping. | |
| CELER_FUNCTION bool | is_looping (ParticleId, Energy) |
| Whether the looping track should be abandoned. | |
| CELER_FUNCTION void | status (TrackStatus) |
| Set whether the track is active, dying, or inactive. | |
| CELER_FUNCTION void | reset_step_limit () |
| Reset step limiter at the beginning of a step. | |
| CELER_FUNCTION void | reset_step_limit (StepLimit const &sl) |
| Reset step limiter at the beginning of a step. | |
| CELER_FUNCTION bool | step_limit (StepLimit const &sl) |
| Limit the step by this distance and action. | |
| CELER_FUNCTION TrackId | track_id () const |
| Unique track identifier. | |
| CELER_FUNCTION PrimaryId | primary_id () const |
| Originating primary identifier. | |
| CELER_FUNCTION TrackId | parent_id () const |
| Track ID of parent. | |
| CELER_FUNCTION EventId | event_id () const |
| Event ID. | |
| CELER_FUNCTION size_type | num_steps () const |
| Total number of steps taken by the track. | |
| CELER_FUNCTION size_type | num_looping_steps () const |
| Number of steps taken by the track since it was flagged as looping. | |
| CELER_FUNCTION real_type | time () const |
| Time elapsed in the lab frame since the start of the event [s]. | |
| CELER_FUNCTION TrackStatus | status () const |
| Whether the track is inactive, alive, or being killed. | |
| CELER_FUNCTION real_type | step_length () const |
| Get the current limiting step. | |
| CELER_FUNCTION real_type | weight () const |
| Get the weight. | |
| CELER_FUNCTION void | step_length (real_type length) |
| Update the current limiting step. | |
| CELER_FUNCTION ActionId | post_step_action () const |
| Access post-step action to take. | |
| CELER_FUNCTION void | post_step_action (ActionId action) |
| Force the limiting action to take. | |
| CELER_FUNCTION ActionId | along_step_action () const |
| Access along-step action to take. | |
| CELER_FUNCTION void | along_step_action (ActionId action) |
| Update along-step action to take. | |
| CELER_FUNCTION LoopingThreshold const & | looping_threshold (ParticleId) const |
| Particle-dependent parameters for killing looping tracks. | |
| CELER_FUNCTION size_type | max_steps () const |
| Maximum number of steps before killing the track. | |
Simulation properties for a single track.
TODO: refactor "reset_step_limit" and the along/post-step action setters to validate that setting a new action may only increase the ID (if it's explicit) and can only reduce the step limit. See StatusCheckExecutor . Maybe we also need to reconsider having separate along- and post-step action IDs: perhaps find a way to have a "step limit action" and a "next
action"?
|
inline |
Force the limiting action to take.
This is used by intermediate kernels (such as discrete_select_track ) that dispatch to another kernel action before the end of the step without changing the step itself.
|
inline |
Reset step limiter at the beginning of a step.
The action can be unset if and only if the step is infinite.
|
inline |
Limit the step by this distance and action.
If the step limits are the same, the original action is retained.