Celeritas
0.5.0-56+6b053cd
|
Compressed interface for running Celeritas in a multithread Geant4 app. More...
#include <SimpleOffload.hh>
Public Member Functions | |
SimpleOffload ()=default | |
Construct with celeritas disabled. | |
SimpleOffload (SetupOptions const *setup, SharedParams *params, LocalTransporter *local) | |
Construct from a reference to shared params and local data. More... | |
void | Build (SetupOptions const *setup, SharedParams *params, LocalTransporter *local) |
Lazy initialization of this class on a worker thread. | |
void | BuildForMaster (SetupOptions const *setup, SharedParams *params) |
Lazy initialization of this class on the master thread. | |
void | BeginOfRunAction (G4Run const *run) |
Initialize celeritas data from setup options. | |
void | BeginOfEventAction (G4Event const *event) |
Send Celeritas the event ID and reseed the Celeritas RNG. | |
void | PreUserTrackingAction (G4Track *track) |
Send tracks to Celeritas if applicable and "StopAndKill" if so. | |
void | EndOfEventAction (G4Event const *event) |
Flush offloaded tracks from Celeritas. | |
void | EndOfRunAction (G4Run const *run) |
Finalize Celeritas. | |
operator bool () const | |
Whether offloading is enabled. | |
Compressed interface for running Celeritas in a multithread Geant4 app.
This class must be a thread-local instance with references to data that exceed the lifetime of the class: e.g. SharedParams can be a global variable, and LocalTransporter can be a global variable with thread_local
storage duration.
The CELER_DISABLE
environment variable, if set and non-empty, will disable offloading so that Celeritas will not be built nor kill tracks.
The method names correspond to methods in Geant4 User Actions and must be called from all threads, both worker and master.
celeritas::SimpleOffload::SimpleOffload | ( | SetupOptions const * | setup, |
SharedParams * | params, | ||
LocalTransporter * | local | ||
) |
Construct from a reference to shared params and local data.
On construction, this will check for the CELER_DISABLE
variable and disable offloading if set. Otherwise it will initialize the multithread logging if the run manager is initialized.