9def G4RunToolCfg(flags, name="G4RunTool", **kwargs):
10 result = ComponentAccumulator()
11
12
13 kwargs.setdefault("DetectorConstruction", result.popToolsAndMerge(G4AtlasDetectorConstructionToolCfg(flags)))
14 kwargs.setdefault("PhysicsListSvc", result.getPrimaryAndMerge(PhysicsListSvcCfg(flags)))
15 kwargs.setdefault("UserLimitsSvc", result.getPrimaryAndMerge(UserLimitsSvcCfg(flags)))
16 kwargs.setdefault("UserActionSvc", result.getPrimaryAndMerge(UserActionSvcCfg(flags)))
17 if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
18 from G4AtlasTools.G4AtlasToolsConfig import PunchThroughG4ToolCfg
19 physics_initialization_tools = kwargs.setdefault("PhysicsInitializationTools", [])
20 physics_initialization_tools.append(result.addPublicTool(result.popToolsAndMerge(PunchThroughG4ToolCfg(flags))))
21
22
23 kwargs.setdefault(
"NG4threads",
max(1, flags.Concurrency.NumThreads))
24 kwargs.setdefault("NG4eventsPerRun", 100000)
25
26 result.setPrivateTools(CompFactory.G4RunTool(name, **kwargs))
27 return result