13 """Return ComponentAccumulator configured for Atlas G4 simulation, without output"""
15 result = ComponentAccumulator()
16 from SimulationConfig.SimEnums
import LArParameterization
17 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
20 result.addEventAlgo(CompFactory.G4RunAlg(name, **kwargs))
21 kwargs.setdefault(
"UseShadowEvent", flags.Sim.UseShadowEvent)
22 if flags.Sim.UseShadowEvent
and "TruthPreselectionTool" not in kwargs:
23 from ISF_HepMC_Tools.ISF_HepMC_ToolsConfig
import TruthPreselectionToolCfg
24 kwargs.setdefault(
"TruthPreselectionTool", result.popToolsAndMerge(TruthPreselectionToolCfg(flags)) )
26 kwargs.setdefault(
"InputTruthCollection",
"BeamTruthEvent")
27 kwargs.setdefault(
"OutputTruthCollection",
"TruthEvent")
31 kwargs.setdefault(
"ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
33 from G4AtlasTools.G4AtlasToolsConfig
import SimHitContainerListCfg, InputContainerListCfg
34 kwargs.setdefault(
"ExtraOutputs", SimHitContainerListCfg(flags) )
35 kwargs.setdefault(
"ExtraInputs" , InputContainerListCfg(flags))
37 from SimulationConfig.SimEnums
import LArParameterization
39 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
41 if flags.Sim.SimplifiedGeoPath:
42 kwargs.setdefault(
'SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
45 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim
and flags.Sim.SimplifiedGeoPath:
46 kwargs.setdefault(
"SimplifiedGeoPath", flags.Sim.SimplifiedGeoPath)
48 if flags.Sim.FlagAbortedEvents:
50 kwargs.setdefault(
"FlagAbortedEvents", flags.Sim.FlagAbortedEvents)
51 if flags.Sim.FlagAbortedEvents
and flags.Sim.KillAbortedEvents:
52 print(
"WARNING When G4RunAlg.FlagAbortedEvents is True G4RunAlg.KillAbortedEvents should be False. Setting G4RunAlg.KillAbortedEvents = False now.")
53 kwargs.setdefault(
"KillAbortedEvents",
False)
56 kwargs.setdefault(
"KillAbortedEvents", flags.Sim.KillAbortedEvents)
58 from RngComps.RngCompsConfig
import AthRNGSvcCfg
59 kwargs.setdefault(
"AtRndmGenSvc",
60 result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
63 is_hive = flags.Concurrency.NumThreads > 0
67 kwargs.setdefault(
'Cardinality', flags.Concurrency.NumThreads)
69 kwargs.setdefault(
"TruthRecordService", result.getPrimaryAndMerge(TruthServiceCfg(flags)))
70 kwargs.setdefault(
"GeoIDSvc", result.getPrimaryAndMerge(GeoIDSvcCfg(flags)))
73 kwargs.setdefault(
"InputConverter", result.getPrimaryAndMerge(InputConverterCfg(flags)))
74 if flags.Sim.ISF.Simulator.isQuasiStable():
75 from BeamEffects.BeamEffectsAlgConfig
import ZeroLifetimePositionerCfg
76 kwargs.setdefault(
"QuasiStablePatcher", result.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)) )
79 kwargs.setdefault(
"UserActionSvc", result.getPrimaryAndMerge(UserActionSvcCfg(flags)))
82 kwargs.setdefault(
"SenDetMasterTool", result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
85 kwargs.setdefault(
"FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
88 result.merge(writeSimulationParametersMetadata(flags))
89 result.merge(readSimulationParameters(flags))
92 kwargs.setdefault(
"G4RunTool", result.addPublicTool(result.popToolsAndMerge(G4RunToolCfg(flags))))
94 result.addEventAlgo(CompFactory.G4RunAlg(name, **kwargs))