12 """Return ComponentAccumulator configured for Atlas G4 simulation, without output"""
14 result = ComponentAccumulator()
15 from SimulationConfig.SimEnums
import LArParameterization
16 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
19 result.addEventAlgo(CompFactory.G4RunAlg(name, **kwargs))
20 kwargs.setdefault(
"UseShadowEvent", flags.Sim.UseShadowEvent)
21 if flags.Sim.UseShadowEvent
and "TruthPreselectionTool" not in kwargs:
22 from ISF_HepMC_Tools.ISF_HepMC_ToolsConfig
import TruthPreselectionToolCfg
23 kwargs.setdefault(
"TruthPreselectionTool", result.popToolsAndMerge(TruthPreselectionToolCfg(flags)) )
25 kwargs.setdefault(
"InputTruthCollection",
"BeamTruthEvent")
26 kwargs.setdefault(
"OutputTruthCollection",
"TruthEvent")
30 kwargs.setdefault(
"ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
32 from G4AtlasTools.G4AtlasToolsConfig
import SimHitContainerListCfg, InputContainerListCfg
33 kwargs.setdefault(
"ExtraOutputs", SimHitContainerListCfg(flags) )
34 kwargs.setdefault(
"ExtraInputs" , InputContainerListCfg(flags))
36 from SimulationConfig.SimEnums
import LArParameterization
38 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
40 if flags.Sim.SimplifiedGeoPath:
41 kwargs.setdefault(
'SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
44 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim
and flags.Sim.SimplifiedGeoPath:
45 kwargs.setdefault(
"SimplifiedGeoPath", flags.Sim.SimplifiedGeoPath)
47 if flags.Sim.FlagAbortedEvents:
49 kwargs.setdefault(
"FlagAbortedEvents", flags.Sim.FlagAbortedEvents)
50 if flags.Sim.FlagAbortedEvents
and flags.Sim.KillAbortedEvents:
51 print(
"WARNING When G4RunAlg.FlagAbortedEvents is True G4RunAlg.KillAbortedEvents should be False. Setting G4RunAlg.KillAbortedEvents = False now.")
52 kwargs.setdefault(
"KillAbortedEvents",
False)
55 kwargs.setdefault(
"KillAbortedEvents", flags.Sim.KillAbortedEvents)
57 from RngComps.RngCompsConfig
import AthRNGSvcCfg
58 kwargs.setdefault(
"AtRndmGenSvc",
59 result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
62 is_hive = flags.Concurrency.NumThreads > 0
66 kwargs.setdefault(
'Cardinality', flags.Concurrency.NumThreads)
68 kwargs.setdefault(
"TruthRecordService", result.getPrimaryAndMerge(TruthServiceCfg(flags)))
71 kwargs.setdefault(
"InputConverter", result.getPrimaryAndMerge(InputConverterCfg(flags)))
72 if flags.Sim.ISF.Simulator.isQuasiStable():
73 from BeamEffects.BeamEffectsAlgConfig
import ZeroLifetimePositionerCfg
74 kwargs.setdefault(
"QuasiStablePatcher", result.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)) )
77 kwargs.setdefault(
"UserActionSvc", result.getPrimaryAndMerge(UserActionSvcCfg(flags)))
80 kwargs.setdefault(
"SenDetMasterTool", result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
83 kwargs.setdefault(
"FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
86 result.merge(writeSimulationParametersMetadata(flags))
87 result.merge(readSimulationParameters(flags))
90 kwargs.setdefault(
"G4RunTool", result.addPublicTool(result.popToolsAndMerge(G4RunToolCfg(flags))))
92 result.addEventAlgo(CompFactory.G4RunAlg(name, **kwargs))