2 from G4AtlasServices.G4AtlasServicesConfig
import PhysicsListSvcCfg
3 from ISF_Services.ISF_ServicesConfig
import TruthServiceCfg, InputConverterCfg
4 from ISF_Services.ISF_ServicesCoreConfig
import GeoIDSvcCfg
5 from G4AtlasTools.G4GeometryToolConfig
import G4AtlasDetectorConstructionToolCfg
6 from G4AtlasTools.G4AtlasToolsConfig
import G4ThreadPoolSvcCfg, SensitiveDetectorMasterToolCfg, FastSimulationMasterToolCfg
7 from G4AtlasServices.G4AtlasUserActionConfig
import UserActionSvcCfg
8 from SimulationConfig.SimulationMetadata
import writeSimulationParametersMetadata, readSimulationParameters
9 from AthenaConfiguration.ComponentFactory
import CompFactory
10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
14 """Return ComponentAccumulator configured for Atlas G4 simulation, without output"""
17 from SimulationConfig.SimEnums
import LArParameterization
18 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
21 result.addEventAlgo(CompFactory.G4AtlasAlg(name, **kwargs))
22 kwargs.setdefault(
"UseShadowEvent", flags.Sim.UseShadowEvent)
23 if flags.Sim.UseShadowEvent
and "TruthPreselectionTool" not in kwargs:
24 from ISF_HepMC_Tools.ISF_HepMC_ToolsConfig
import TruthPreselectionToolCfg
29 kwargs.setdefault(
"InputTruthCollection",
"BeamTruthEvent")
30 kwargs.setdefault(
"OutputTruthCollection",
"TruthEvent")
34 kwargs.setdefault(
"ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
36 from G4AtlasTools.G4AtlasToolsConfig
import SimHitContainerListCfg, InputContainerListCfg
40 from SimulationConfig.SimEnums
import LArParameterization
42 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
43 from G4AtlasTools.G4AtlasToolsConfig
import PunchThroughG4ToolCfg
44 physics_initialization_tools = kwargs.setdefault(
"PhysicsInitializationTools", [])
45 physics_initialization_tools.append(result.addPublicTool(result.popToolsAndMerge(
PunchThroughG4ToolCfg(flags))))
47 if flags.Sim.SimplifiedGeoPath:
48 kwargs.setdefault(
'SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
51 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim
and flags.Sim.SimplifiedGeoPath:
52 kwargs.setdefault(
"SimplifiedGeoPath", flags.Sim.SimplifiedGeoPath)
55 kwargs.setdefault(
"RecordFlux", flags.Sim.RecordFlux)
57 if flags.Sim.FlagAbortedEvents:
59 kwargs.setdefault(
"FlagAbortedEvents", flags.Sim.FlagAbortedEvents)
60 if flags.Sim.FlagAbortedEvents
and flags.Sim.KillAbortedEvents:
61 print(
"WARNING When G4AtlasAlg.FlagAbortedEvents is True G4AtlasAlg.KillAbortedEvents should be False. Setting G4AtlasAlg.KillAbortedEvents = False now.")
62 kwargs.setdefault(
"KillAbortedEvents",
False)
65 kwargs.setdefault(
"KillAbortedEvents", flags.Sim.KillAbortedEvents)
67 from RngComps.RngCompsConfig
import AthRNGSvcCfg
68 kwargs.setdefault(
"AtRndmGenSvc",
71 kwargs.setdefault(
"RandomGenerator",
"athena")
74 is_hive = flags.Concurrency.NumThreads > 0
75 kwargs.setdefault(
"MultiThreading", is_hive)
78 kwargs.setdefault(
'Cardinality', flags.Concurrency.NumThreads)
80 kwargs.setdefault(
"TruthRecordService", result.getPrimaryAndMerge(
TruthServiceCfg(flags)))
81 kwargs.setdefault(
"GeoIDSvc", result.getPrimaryAndMerge(
GeoIDSvcCfg(flags)))
84 kwargs.setdefault(
"InputConverter", result.getPrimaryAndMerge(
InputConverterCfg(flags)))
85 if flags.Sim.ISF.Simulator.isQuasiStable():
86 from BeamEffects.BeamEffectsAlgConfig
import ZeroLifetimePositionerCfg
100 kwargs.setdefault(
"UserActionSvc", result.getPrimaryAndMerge(
UserActionSvcCfg(flags)))
103 kwargs.setdefault(
"PhysicsListSvc", result.getPrimaryAndMerge(
PhysicsListSvcCfg(flags)))
109 verbosities=dict(foo=
"bar")
110 kwargs.setdefault(
"Verbosities", verbosities)
111 kwargs.setdefault(
"QuietMode", flags.Exec.QuietMode)
114 kwargs.setdefault(
"G4Commands", flags.Sim.G4Commands)
115 result.addEventAlgo(CompFactory.G4AtlasAlg(name, **kwargs))