Celeritas 0.6.0-rc.2.10+develop.de0a3a05
|
Generate and track optical photons. More...
#include <OpticalCollector.hh>
Classes | |
struct | Input |
Public Types | |
Type aliases | |
using | SPConstCherenkov = std::shared_ptr< optical::CherenkovParams const > |
using | SPConstMaterial = std::shared_ptr< optical::MaterialParams const > |
using | SPConstScintillation = std::shared_ptr< optical::ScintillationParams const > |
using | OpticalBufferSize = OpticalOffloadCounters< size_type > |
Public Member Functions | |
OpticalCollector (CoreParams const &, Input &&) | |
Construct with core data and optical data. | |
AuxId | offload_aux_id () const |
Aux ID for optical generator data used for offloading. | |
AuxId | optical_aux_id () const |
Aux ID for optical core state data. | |
OpticalAccumStats | exchange_counters (AuxStateVec &aux) const |
Get and reset cumulative statistics on optical generation from a state. | |
OpticalBufferSize const & | buffer_counts (AuxStateVec const &aux) const |
Get info on the number of tracks in the buffer. | |
Generate and track optical photons.
This class is the interface between the main stepping loop and the photon stepping loop and constructs kernel actions for:
The photon stepping loop will then generate optical primaries.
The "collector" (TODO: rename?) will "own" the optical state data and optical params since it's the only thing that launches the optical stepping loop.
setup
namespace celeritas::OpticalCollector::OpticalCollector | ( | CoreParams const & | core, |
Input && | inp | ||
) |
Construct with core data and optical data.
This adds several actions and auxiliary data to the registry.