ATLAS Offline Software
Loading...
Searching...
No Matches
G4RunAlgConfig Namespace Reference

Functions

 G4RunAlgCfg (flags, name="G4RunAlg", **kwargs)

Function Documentation

◆ G4RunAlgCfg()

G4RunAlgCfg ( flags,
name = "G4RunAlg",
** kwargs )
Return ComponentAccumulator configured for Atlas G4 simulation, without output

Definition at line 11 of file G4RunAlgConfig.py.

11def G4RunAlgCfg(flags, name="G4RunAlg", **kwargs):
12 """Return ComponentAccumulator configured for Atlas G4 simulation, without output"""
13 # wihout output
14 result = ComponentAccumulator()
15 from SimulationConfig.SimEnums import LArParameterization
16 if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
17 # Add a dummy version of the SimKernel to the CA before adding the properly configured version
18 # Presently necessary for FastCaloSim to ensure the proper order of ISF_CollectionMerger
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)) )
24
25 kwargs.setdefault("InputTruthCollection", "BeamTruthEvent") #tocheck -are these string inputs?
26 kwargs.setdefault("OutputTruthCollection", "TruthEvent")
27
28
29
30 kwargs.setdefault("ReleaseGeoModel", flags.Sim.ReleaseGeoModel)
31
32 from G4AtlasTools.G4AtlasToolsConfig import SimHitContainerListCfg, InputContainerListCfg
33 kwargs.setdefault("ExtraOutputs", SimHitContainerListCfg(flags) )
34 kwargs.setdefault("ExtraInputs" , InputContainerListCfg(flags))
35
36 from SimulationConfig.SimEnums import LArParameterization
37 # Configure fast simulation
38 if flags.Sim.LArParameterization is LArParameterization.FastCaloSim:
39 # Set the path to the simplified calorimeter geometry for particle transport if provided
40 if flags.Sim.SimplifiedGeoPath:
41 kwargs.setdefault('SimplifiedGeoPath', flags.Sim.SimplifiedGeoPath)
42
43 # Set the path to the simplified calorimeter geometry for particle transport if provided
44 if flags.Sim.LArParameterization is LArParameterization.FastCaloSim and flags.Sim.SimplifiedGeoPath:
45 kwargs.setdefault("SimplifiedGeoPath", flags.Sim.SimplifiedGeoPath)
46
47 if flags.Sim.FlagAbortedEvents:
48
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)
53
54
55 kwargs.setdefault("KillAbortedEvents", flags.Sim.KillAbortedEvents)
56
57 from RngComps.RngCompsConfig import AthRNGSvcCfg
58 kwargs.setdefault("AtRndmGenSvc",
59 result.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
60
61 # Multi-threading settinggs
62 is_hive = flags.Concurrency.NumThreads > 0
63 if is_hive:
64 # not needed with G4 event loop
65 # result.merge(G4ThreadPoolSvcCfg(flags))
66 kwargs.setdefault('Cardinality', flags.Concurrency.NumThreads)
67
68 kwargs.setdefault("TruthRecordService", result.getPrimaryAndMerge(TruthServiceCfg(flags)))
69
70 #input converter
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)) )
75
76 #User action services (Slow...)
77 kwargs.setdefault("UserActionSvc", result.getPrimaryAndMerge(UserActionSvcCfg(flags)))
78
79 #sensitive detector master tool
80 kwargs.setdefault("SenDetMasterTool", result.addPublicTool(result.popToolsAndMerge(SensitiveDetectorMasterToolCfg(flags))))
81
82 #fast simulation master tool
83 kwargs.setdefault("FastSimMasterTool", result.addPublicTool(result.popToolsAndMerge(FastSimulationMasterToolCfg(flags))))
84
85 #Write MetaData container and make it available to the job
86 result.merge(writeSimulationParametersMetadata(flags))
87 result.merge(readSimulationParameters(flags)) # for FileMetaData creation
88
89 # Configure G4RunTool with all the services that were moved from G4RunAlg
90 kwargs.setdefault("G4RunTool", result.addPublicTool(result.popToolsAndMerge(G4RunToolCfg(flags))))
91
92 result.addEventAlgo(CompFactory.G4RunAlg(name, **kwargs))
93
94 return result
void print(char *figname, TCanvas *c1)