16 result = ComponentAccumulator()
17 PhysOptionList = [ result.popToolsAndMerge(G4StepLimitationToolCfg(flags)) ]
18 if flags.Sim.ISF.Simulator.isQuasiStable():
20 PhysOptionList += [ result.popToolsAndMerge(ExtraParticlesPhysicsToolCfg(flags)) ]
21 PhysOptionList += [ result.popToolsAndMerge(G4EMProcessesPhysicsToolCfg(flags)) ]
23 if flags.Detector.GeometryTRT:
24 PhysOptionList +=[ result.popToolsAndMerge(TRTPhysicsToolCfg(flags)) ]
25 if flags.Detector.GeometryLucid
or flags.Detector.GeometryAFP
or flags.Detector.GeometryZDC:
26 from LUCID_OpProcess.LUCID_OpProcessConfig
import LucidPhysicsToolCfg
27 PhysOptionList +=[result.popToolsAndMerge(LucidPhysicsToolCfg(flags))]
28 kwargs.setdefault(
"PhysOption", PhysOptionList)
30 kwargs.setdefault(
"PhysicsDecay", PhysDecaysList)
31 kwargs.setdefault(
"PhysicsList", flags.Sim.PhysicsList)
32 if 'PhysicsList' in kwargs:
33 if kwargs[
'PhysicsList'].endswith(
'_EMV')
or kwargs[
'PhysicsList'].endswith(
'_EMX'):
34 raise RuntimeError(
'PhysicsList not allowed: '+kwargs[
'PhysicsList'] )
36 kwargs.setdefault(
"GeneralCut", 1.)
37 if flags.Sim.CavernBackground
not in [CavernBackground.Read, CavernBackground.Write]:
38 kwargs.setdefault(
"NeutronTimeCut", flags.Sim.NeutronTimeCut)
39 kwargs.setdefault(
"NeutronEnergyCut", flags.Sim.NeutronEnergyCut)
40 kwargs.setdefault(
"ApplyEMCuts", flags.Sim.ApplyEMCuts)
41 kwargs.setdefault(
"MultipleStepsInMSCTransport", flags.Sim.MultipleStepsInMSCTransport)
42 kwargs.setdefault(
"QuietMode", flags.Exec.QuietMode)
45 kwargs.setdefault(
"FastSimConstructor", result.popToolsAndMerge(FastSimulationConstructorToolCfg(flags)))
50 """ --- ATLASSIM-3967 ---
51 these two options are replaced by SetNumberOfBinsPerDecade
52 which now controls both values.
56 if flags.Sim.ISF.Simulator.usesFatras():
57 kwargs.setdefault(
"UnstableAntiNeutrons",
True)
58 result.addService(CompFactory.PhysicsListSvc(name, **kwargs), primary =
True)