Skip to content

Switch to using G4AtlasActionInitialization to initialize UserActions in Simulation jobs

G4AtlasActionInitialization derives from G4VUserActionInitialization. Classes based on G4VUserActionInitialization are the recommended way of initializing G4UserActions in Geant4MT. Switching to this approach should make our Athena interface to Geant4 more standard. Currently the class just wraps calls to the UserActionSvc.
The required clients of the UserActionSvc are then updated to create (in the case of G4AtlasAlg, G4LegacyTransportTool and G4TransportTool) G4AtlasActionInitialization or use it (G4AtlasRunManager, G4AtlasUserWorkerThreadInitialization, G4AtlasWorkerRunManager).

Ideally G4RunActions would be initialized for the master thread also via the G4VUserActionInitialization::BuildForMaster call. This functionality was missing in the current implementation, so has not been added here in order to reproduce exactly the current behaviour. Adding it requires significant refactoring which is best handled in a separate merge request.

Edited by John Derek Chapman

Merge request reports