14 """Return ComponentAccumulator configured for Atlas G4 simulation, without output"""
16 result = ComponentAccumulator()
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
25 kwargs.setdefault(
"TruthPreselectionTool", result.popToolsAndMerge(TruthPreselectionToolCfg(flags)) )
27 kwargs.setdefault(
"DetectorConstruction", result.addPublicTool(result.popToolsAndMerge(G4AtlasDetectorConstructionToolCfg(flags))))
29 kwargs.setdefault(
"InputTruthCollection",
"BeamTruthEvent")
30 kwargs.setdefault(
"OutputTruthCollection",
"TruthEvent")
34 kwargs.setdefault(
"ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
36 from G4AtlasTools.G4AtlasToolsConfig
import SimHitContainerListCfg, InputContainerListCfg
37 kwargs.setdefault(
"ExtraOutputs", SimHitContainerListCfg(flags) )
38 kwargs.setdefault(
"ExtraInputs" , InputContainerListCfg(flags))
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",
69 result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
71 kwargs.setdefault(
"RandomGenerator",
"athena")
74 is_hive = flags.Concurrency.NumThreads > 0
75 kwargs.setdefault(
"MultiThreading", is_hive)
77 result.merge(G4ThreadPoolSvcCfg(flags))
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
87 kwargs.setdefault(
"QuasiStablePatcher", result.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)) )
90 kwargs.setdefault(
"SenDetMasterTool", result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
93 kwargs.setdefault(
"FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
96 result.merge(writeSimulationParametersMetadata(flags))
97 result.merge(readSimulationParameters(flags))
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))