Celeritas
0.5.0-86+4a8eea4
|
Storage for dynamic data used to initialize new tracks. More...
#include <TrackInitData.hh>
Public Types | |
template<class T > | |
using | StateItems = StateCollection< T, W, M > |
template<class T > | |
using | EventItems = Collection< T, W, M, EventId > |
template<class T > | |
using | Items = Collection< T, W, M > |
Public Member Functions | |
CELER_FUNCTION | operator bool () const |
Whether the data are assigned. | |
template<Ownership W2, MemSpace M2> | |
TrackInitStateData & | operator= (TrackInitStateData< W2, M2 > &other) |
Assign from another set of data. | |
Public Attributes | |
StateItems< TrackSlotId > | parents |
StateItems< size_type > | indices |
StateItems< size_type > | secondary_counts |
StateItems< TrackSlotId > | vacancies |
EventItems< TrackId::size_type > | track_counters |
Items< TrackInitializer > | initializers |
Storage for dynamic data used to initialize new tracks.
Not all of this is technically "state" data, though it is all mutable and in most cases accessed by TrackSlotId
. Specifically, initializers
and vacancies
are resizable, and track_counters
has size max_events
.
initializers
stores the data for primaries and secondaries waiting to be turned into new tracks and can be any size up to capacity
.parents
is the TrackSlotId
of the parent tracks of the initializers.vacancies
stores the TrackSlotid
of the tracks that have been killed; the size will be <= the number of track states.track_counters
stores the total number of particles that have been created per event.secondary_counts
stores the number of secondaries created by each track (with one remainder at the end for storing the accumulated number of secondaries)