Celeritas  0.5.0-56+6b053cd
Public Types | Public Member Functions | Public Attributes | List of all members
celeritas::StepStateData< W, M > Struct Template Reference

Gathered data and persistent scratch space for gathering and copying data. More...

#include <StepData.hh>

Public Types

using StepDataImpl = StepStateDataImpl< W, M >
 
template<class T >
using StateItems = celeritas::StateCollection< T, W, M >
 

Public Member Functions

CELER_FUNCTION operator bool () const
 True if constructed and correctly sized.
 
CELER_FUNCTION TrackSlotId::size_type size () const
 State size.
 
template<Ownership W2, MemSpace M2>
StepStateDataoperator= (StepStateData< W2, M2 > &other)
 Assign from another set of states.
 

Public Attributes

StepDataImpl data
 Gathered data for a single step.
 
StepDataImpl scratch
 Scratch space for gathering the data on device based on track validity.
 
StateItems< size_typevalid_id
 Thread IDs of active tracks that are in a detector.
 
size_type volume_instance_depth {0}
 
StreamId stream_id
 Unique identifier for "thread-local" data.
 

Detailed Description

template<Ownership W, MemSpace M>
struct celeritas::StepStateData< W, M >

Gathered data and persistent scratch space for gathering and copying data.

Extra storage scratch and valid_id is needed to efficiently gather and copy the step data on the device but will not be allocated on the host.

Todo:
Refactor the step interface stuff so that we passing params alongside state data to the step interfaces, so that we don't have to keep a copy of the volume instance depth (and for better consistency with the rest of the code).

The documentation for this struct was generated from the following files: