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:
celeritas::UserActionIntegration
: Compatible with all Geant4 versions supported by Celeritas.celeritas::TrackingManagerIntegration
: Compatible only with Geant4 v11 and newer, as it requires Geant4’sG4VTrackingManager
interface for particles.
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.