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.G4AtlasAlg(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(
"DetectorConstruction", result.addPublicTool(result.popToolsAndMerge(G4AtlasDetectorConstructionToolCfg(flags))))
28 kwargs.setdefault(
"InputTruthCollection",
"BeamTruthEvent")
29 kwargs.setdefault(
"OutputTruthCollection",
"TruthEvent")
33 kwargs.setdefault(
"ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
35 from G4AtlasTools.G4AtlasToolsConfig
import SimHitContainerListCfg, InputContainerListCfg
36 kwargs.setdefault(
"ExtraOutputs", SimHitContainerListCfg(flags) )
37 kwargs.setdefault(
"ExtraInputs" , InputContainerListCfg(flags))
39 from SimulationConfig.SimEnums
import LArParameterization, InDetParameterization
41 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
42 from G4AtlasTools.G4AtlasToolsConfig
import PunchThroughG4ToolCfg
43 physics_initialization_tools = kwargs.setdefault(
"PhysicsInitializationTools", [])
44 physics_initialization_tools.append(result.addPublicTool(result.popToolsAndMerge(PunchThroughG4ToolCfg(flags))))
46 if flags.Sim.SimplifiedGeoPath:
47 kwargs.setdefault(
'SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
49 if flags.Sim.InDetParameterization
is InDetParameterization.FatrasG4:
50 from G4AtlasTools.G4AtlasToolsConfig
import ActsFatrasG4ToolCfg
53 physics_initialization_tools = kwargs.setdefault(
"PhysicsInitializationTools", [])
54 physics_initialization_tools.append(result.addPublicTool(result.popToolsAndMerge(ActsFatrasG4ToolCfg(flags))))
56 if flags.Sim.InDetParameterization
is InDetParameterization.AFatrasG4:
57 from G4AtlasTools.G4AtlasToolsConfig
import ActsFatrasG4ToolCfg
60 physics_initialization_tools = kwargs.setdefault(
"PhysicsInitializationTools", [])
61 physics_initialization_tools.append(result.addPublicTool(result.popToolsAndMerge(ActsFatrasG4ToolCfg(flags))))
64 if flags.Sim.LArParameterization
is LArParameterization.FastCaloSim
and flags.Sim.SimplifiedGeoPath:
65 kwargs.setdefault(
"SimplifiedGeoPath", flags.Sim.SimplifiedGeoPath)
68 kwargs.setdefault(
"RecordFlux", flags.Sim.RecordFlux)
70 if flags.Sim.FlagAbortedEvents:
72 kwargs.setdefault(
"FlagAbortedEvents", flags.Sim.FlagAbortedEvents)
73 if flags.Sim.FlagAbortedEvents
and flags.Sim.KillAbortedEvents:
74 print(
"WARNING When G4AtlasAlg.FlagAbortedEvents is True G4AtlasAlg.KillAbortedEvents should be False. Setting G4AtlasAlg.KillAbortedEvents = False now.")
75 kwargs.setdefault(
"KillAbortedEvents",
False)
78 kwargs.setdefault(
"KillAbortedEvents", flags.Sim.KillAbortedEvents)
80 from RngComps.RngCompsConfig
import AthRNGSvcCfg
81 kwargs.setdefault(
"AtRndmGenSvc",
82 result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
84 kwargs.setdefault(
"RandomGenerator",
"athena")
87 is_hive = flags.Concurrency.NumThreads > 0
88 kwargs.setdefault(
"MultiThreading", is_hive)
90 result.merge(G4ThreadPoolSvcCfg(flags))
91 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
93 kwargs.setdefault(
"TruthRecordService", result.getPrimaryAndMerge(TruthServiceCfg(flags)))
96 kwargs.setdefault(
"InputConverter", result.getPrimaryAndMerge(InputConverterCfg(flags)))
97 if flags.Sim.ISF.Simulator.isQuasiStable():
98 from BeamEffects.BeamEffectsAlgConfig
import ZeroLifetimePositionerCfg
99 kwargs.setdefault(
"QuasiStablePatcher", result.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)) )
102 kwargs.setdefault(
"SenDetMasterTool", result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
105 kwargs.setdefault(
"FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
108 result.merge(writeSimulationParametersMetadata(flags))
109 result.merge(readSimulationParameters(flags))
112 kwargs.setdefault(
"UserActionSvc", result.getPrimaryAndMerge(UserActionSvcCfg(flags)))
115 kwargs.setdefault(
"PhysicsListSvc", result.getPrimaryAndMerge(PhysicsListSvcCfg(flags)))
121 verbosities=dict(foo=
"bar")
122 kwargs.setdefault(
"Verbosities", verbosities)
123 kwargs.setdefault(
"QuietMode", flags.Exec.QuietMode)
126 kwargs.setdefault(
"G4Commands", flags.Sim.G4Commands)
127 result.addEventAlgo(CompFactory.G4AtlasAlg(name, **kwargs))