Geant4 interface

The accel directory contains components exclusive to coupling Celeritas with Geant4 for user-oriented integration. A simple interface for multithreaded or serial applications is demonstrated in Geant4 integration examples, and the more advanced implementation can be inspected in the Integrated Geant4 application (celer-g4) app.

This integration interface is based on two main mechanisms:

On either case, celeritas::SetupOptions must be valid at the latest during the G4UserRunAction::BeginOfRunAction() call in the master thread, to initialize celeritas::SharedParams and celeritas::LocalTransporter. Nevertheless, since the user might need access to these options during other UserAction constructors (e.g. initializing sensitive detector options in G4VUserDetectorConstruction), assigning them via celeritas::TrackingManagerIntegration::SetOptions before G4RunManager::SetUserInitialization calls is recommended.