|
Celeritas 0.7.0-dev.194+develop.0df4cab59
|
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< 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.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)