Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
Almost none of the stepping loop has to access the primaries, and right now the storage and usage of them is split across the CoreState and the ExtendFromPrimariesAction (EFPA). This PR refactors the primary storage, removing it from the main state and adding it as "aux" data to the EFPA. It's expected that the higher-level code (whether optical transport or core transport) determines whether primaries are to be used as the source of track initializers: for example, we could use a generalized source description to generate track initializers on device.
Almost none of the stepping loop has to access the primaries, and right now the storage and usage of them is split across the CoreState and the ExtendFromPrimariesAction (EFPA). This PR refactors the primary storage, removing it from the main state and adding it as "aux" data to the EFPA. It's expected that the higher-level code (whether optical transport or core transport) determines whether primaries are to be used as the source of track initializers: for example, we could use a generalized source description to generate track initializers on device.
This completes the first part of #1390.