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

Functions

 OptionalUserActionCfg (flags)
 getOptionalUACfg (flags, userActionString)
 FullG4TrackProcessorUserActionToolCfg (flags, name="FullG4TrackProcessorUserActionTool", **kwargs)
 PhysicsValidationUserActionToolCfg (flags, name="ISFG4PhysicsValidationUserActionTool", **kwargs)
 MCTruthUserActionToolCfg (flags, name="ISFMCTruthUserActionTool", **kwargs)
 TrackProcessorUserActionToolCfg (flags, name="ISFG4TrackProcessorUserActionTool", **kwargs)
 PassBackG4TrackProcessorUserActionToolCfg (flags, name="PassBackG4TrackProcessorUserActionTool", **kwargs)
 ATLFAST_G4TrackProcessorUserActionToolCfg (flags, name="ATLFAST_G4TrackProcessorUserActionTool", **kwargs)
 getDefaultActions (flags)
 UserActionSvcCfg (flags, name="G4UA::UserActionSvc", **kwargs)
 CTBUserActionSvcCfg (flags, name="G4UA::CTBUserActionSvc", **kwargs)
 ISFUserActionSvcCfg (flags, name="G4UA::ISFUserActionSvc", **kwargs)
 ISFFullUserActionSvcCfg (flags, name="G4UA::ISFFullUserActionSvc", **kwargs)
 ISFPassBackUserActionSvcCfg (flags, name="G4UA::ISFPassBackUserActionSvc", **kwargs)
 ISF_ATLFAST_UserActionSvcCfg (flags, name="G4UA::ISF_ATLFAST_UserActionSvc", **kwargs)

Function Documentation

◆ ATLFAST_G4TrackProcessorUserActionToolCfg()

ATLFAST_G4TrackProcessorUserActionToolCfg ( flags,
name = "ATLFAST_G4TrackProcessorUserActionTool",
** kwargs )

Definition at line 91 of file G4AtlasUserActionConfig.py.

91def ATLFAST_G4TrackProcessorUserActionToolCfg(flags, name="ATLFAST_G4TrackProcessorUserActionTool", **kwargs):
92 result = ComponentAccumulator()
93 if flags.Sim.ISF.Simulator in [SimulationFlavour.PassBackG4MT, SimulationFlavour.ATLFASTIIMT, SimulationFlavour.ATLFAST3MT, SimulationFlavour.ATLFAST3MT_QS, SimulationFlavour.ATLFAST3F_ACTSMT]:
94 kwargs.setdefault("ParticleBroker", "")
95 elif flags.Sim.ISF.Simulator in [SimulationFlavour.ATLFASTIIF_G4MS, SimulationFlavour.ATLFAST3F_G4MS]:
96 kwargs.setdefault("ParticleBroker", result.getPrimaryAndMerge(ATLFAST_ParticleBrokerSvcCfg(flags)))
97 kwargs.setdefault("GeoIDSvc", result.getPrimaryAndMerge(ATLFAST_GeoIDSvcCfg(flags)))
98 kwargs.setdefault("PassBackEkinThreshold", 0.05*MeV)
99 kwargs.setdefault("KillBoundaryParticlesBelowThreshold", True)
100 tool = result.popToolsAndMerge(PassBackG4TrackProcessorUserActionToolCfg(flags, name, **kwargs))
101 result.setPrivateTools(tool)
102 return result
103
104
105# New function for all user action types

◆ CTBUserActionSvcCfg()

CTBUserActionSvcCfg ( flags,
name = "G4UA::CTBUserActionSvc",
** kwargs )

Definition at line 172 of file G4AtlasUserActionConfig.py.

172def CTBUserActionSvcCfg(flags, name="G4UA::CTBUserActionSvc", **kwargs):
173 result = ComponentAccumulator()
174 # FIXME migrate an alternative to this
175 generalActions = ( result.popToolsAndMerge(getDefaultActions(flags)) +
176 result.popToolsAndMerge(OptionalUserActionCfg(flags)) )
177 # This comment carried over from old style:
178 # FIXME: ADS these actions are not yet migrated to Hive
179 #if simFlags.SimLayout.get_Value()=="tb_LArH6_2004":
180 # eoe=["LArHitsH6EventAction"]+eoe
181 # eoe+=["LArGeoH62004EventAction"]
182 # if simFlags.LArTB_H6Step.statusOn:
183 # if simFlags.LArTB_H6Step.get_Value():
184 # stepping+=["LArGeoH62004SteppingAction"]
185 # event+=["RadLenNtuple"]
186 # eoe+=["RadLenNtuple"]
187 # stepping+=["RadLenNtuple"]
188
189 # New user action tools
190 kwargs.setdefault("UserActionTools", generalActions)
191
192 # placeholder for more advanced config, if needed
193 result.addService(CompFactory.G4UA.UserActionSvc(name, **kwargs), primary = True)
194 return result
195
196

◆ FullG4TrackProcessorUserActionToolCfg()

FullG4TrackProcessorUserActionToolCfg ( flags,
name = "FullG4TrackProcessorUserActionTool",
** kwargs )

Definition at line 48 of file G4AtlasUserActionConfig.py.

48def FullG4TrackProcessorUserActionToolCfg(flags, name="FullG4TrackProcessorUserActionTool", **kwargs):
49 result = ComponentAccumulator()
50 if flags.Sim.ISF.Simulator in [SimulationFlavour.FullG4MT, SimulationFlavour.FullG4MT_QS]:
51 tool = result.popToolsAndMerge(EntryLayerToolMTCfg(flags))
52 else:
53 tool = result.popToolsAndMerge(EntryLayerToolCfg(flags))
54 kwargs.setdefault("EntryLayerTool", result.addPublicTool(tool))
55 kwargs.setdefault("GeoIDSvc", result.getPrimaryAndMerge(GeoIDSvcCfg(flags)))
56 if flags.Detector.GeometryCavern:
57 kwargs.setdefault("TruthVolumeLevel", 2)
58 kwargs.setdefault("IsITkGeometry", flags.GeoModel.Run >= LHCPeriod.Run4)
59 result.setPrivateTools(CompFactory.G4UA.iGeant4.TrackProcessorUserActionFullG4Tool(name, **kwargs))
60 return result
61
62

◆ getDefaultActions()

getDefaultActions ( flags)

Definition at line 106 of file G4AtlasUserActionConfig.py.

106def getDefaultActions(flags):
107 result = ComponentAccumulator()
108
109 actions = []
110
111 # Sync actions should be added first
112 # TODO: have dedicated array/handle for sync actions instead of relying on order
113 if flags.Sim.UseG4Workers:
114 actions += [result.popToolsAndMerge(SyncPrimaryGeneratorActionToolCfg(flags)),
115 result.popToolsAndMerge(SyncRunActionToolCfg(flags)),
116 result.popToolsAndMerge(SyncEventActionToolCfg(flags))]
117
118 # System stacking action
119 actions += [result.popToolsAndMerge(AthenaStackingActionToolCfg(flags))]
120
121 # Some truth handling actions (and timing)
122 if not flags.Sim.ISFRun:
123 actions += [result.popToolsAndMerge(MCTruthSteppingActionToolCfg(flags)),
124 result.popToolsAndMerge(G4SimTimerToolCfg(flags))]
125 # Track counter
126 actions += [result.popToolsAndMerge(G4TrackCounterToolCfg(flags))]
127
128 # Cosmic Perigee action
129 if flags.Beam.Type is BeamType.Cosmics and flags.Sim.CavernBackground is CavernBackground.Off:
130 actions += [CompFactory.G4UA.CosmicPerigeeActionTool()]
131 # Cosmic filter
132 if flags.Beam.Type is BeamType.Cosmics and not flags.Sim.ISFRun:
133 actions += [result.popToolsAndMerge(CosmicFilterToolCfg(flags))]
134 if flags.Sim.StoppedParticleFile:
135 actions += [result.popToolsAndMerge(StoppedParticleFilterToolCfg(flags)),
136 result.popToolsAndMerge(StoppedParticleActionToolCfg(flags))]
137 # Hit wrapper action
138 if flags.Sim.CavernBackground is CavernBackground.Read:
139 actions += [result.popToolsAndMerge(HitWrapperToolCfg(flags))]
140 # Photon killer
141 if flags.Sim.PhysicsList == "QGSP_BERT_HP":
142 actions += [CompFactory.G4UA.PhotonKillerTool()]
143 # Calo calibration default processing
144 if flags.Sim.CalibrationRun in [CalibrationRun.LArTile, CalibrationRun.LArTileZDC]:
145 actions += [result.popToolsAndMerge(CalibrationDefaultProcessingToolCfg(flags))]
146 if 'G4UserActions.G4UserActionsConfig.MonopoleLooperKillerToolCfg' not in flags.Sim.OptionalUserActionList:
147 actions += [result.popToolsAndMerge(LooperKillerToolCfg(flags))]
148
149 result.setPrivateTools(actions)
150 return result
151
152

◆ getOptionalUACfg()

getOptionalUACfg ( flags,
userActionString )
Execute a function to configure and optional UserAction

Definition at line 34 of file G4AtlasUserActionConfig.py.

34def getOptionalUACfg(flags, userActionString):
35 """Execute a function to configure and optional UserAction"""
36 parts = userActionString.split('.')
37 if len(parts) < 2:
38 raise ValueError('OptionalUserAction strings should be of the form Package.Module.Function or Package.Function if defined in __init__.py')
39 function = parts[-1]
40 module = '.'.join(parts[:-1])
41 from importlib import import_module
42 loaded_module = import_module(module)
43 function_def = getattr(loaded_module, function)
44 return function_def(flags)
45
46
47# Pulled in from ISF G4 to avoid circular dependence

◆ ISF_ATLFAST_UserActionSvcCfg()

ISF_ATLFAST_UserActionSvcCfg ( flags,
name = "G4UA::ISF_ATLFAST_UserActionSvc",
** kwargs )

Definition at line 240 of file G4AtlasUserActionConfig.py.

240def ISF_ATLFAST_UserActionSvcCfg(flags, name="G4UA::ISF_ATLFAST_UserActionSvc", **kwargs):
241 # this configuration needs ISFMCTruthUserAction and
242 # ATLFAST_G4TrackProcessorUserAction
243 tpAcc = ComponentAccumulator()
244 kwargs.setdefault("TrackProcessorUserAction",
245 [tpAcc.popToolsAndMerge(ATLFAST_G4TrackProcessorUserActionToolCfg(flags))])
246 result = ISFUserActionSvcCfg(flags, name, **kwargs)
247 result.merge(tpAcc)
248 return result

◆ ISFFullUserActionSvcCfg()

ISFFullUserActionSvcCfg ( flags,
name = "G4UA::ISFFullUserActionSvc",
** kwargs )

Definition at line 219 of file G4AtlasUserActionConfig.py.

219def ISFFullUserActionSvcCfg(flags, name="G4UA::ISFFullUserActionSvc", **kwargs):
220 # this configuration needs ISFMCTruthUserAction
221 # and FullG4TrackProcessorUserAction
222 tpAcc = FullG4TrackProcessorUserActionToolCfg(flags)
223 kwargs.setdefault("TrackProcessorUserAction", [tpAcc.popPrivateTools()])
224 result = ISFUserActionSvcCfg(flags, name, **kwargs)
225 result.merge(tpAcc)
226 return result
227
228

◆ ISFPassBackUserActionSvcCfg()

ISFPassBackUserActionSvcCfg ( flags,
name = "G4UA::ISFPassBackUserActionSvc",
** kwargs )

Definition at line 229 of file G4AtlasUserActionConfig.py.

229def ISFPassBackUserActionSvcCfg(flags, name="G4UA::ISFPassBackUserActionSvc", **kwargs):
230 # this configuration needs ISFMCTruthUserAction and
231 # PassBackG4TrackProcessorUserAction
232 tpAcc = ComponentAccumulator()
233 kwargs.setdefault("TrackProcessorUserAction",
234 [tpAcc.popToolsAndMerge(PassBackG4TrackProcessorUserActionToolCfg(flags))])
235 result = ISFUserActionSvcCfg(flags, name, **kwargs)
236 result.merge(tpAcc)
237 return result
238
239

◆ ISFUserActionSvcCfg()

ISFUserActionSvcCfg ( flags,
name = "G4UA::ISFUserActionSvc",
** kwargs )

Definition at line 197 of file G4AtlasUserActionConfig.py.

197def ISFUserActionSvcCfg(flags, name="G4UA::ISFUserActionSvc", **kwargs):
198 result = ComponentAccumulator()
199 TrackProcessorUserAction = kwargs.pop("TrackProcessorUserAction",[])
200
201 PhysicsValidationUserAction = []
202 if flags.Sim.ISF.ValidationMode:
203 PhysicsValidationUserAction = [result.popPrivateTools(PhysicsValidationUserActionToolCfg(flags))]
204
205 MCTruthUserAction = kwargs.pop("MCTruthUserAction",
206 [result.popToolsAndMerge(MCTruthUserActionToolCfg(flags))])
207
208 generalActions = ( TrackProcessorUserAction + MCTruthUserAction +
209 result.popToolsAndMerge(getDefaultActions(flags)) +
210 result.popToolsAndMerge(OptionalUserActionCfg(flags)) +
211 PhysicsValidationUserAction )
212
213 # New user action tools
214 kwargs.setdefault("UserActionTools", generalActions)
215 result.addService(CompFactory.G4UA.UserActionSvc(name, **kwargs), primary = True)
216 return result
217
218

◆ MCTruthUserActionToolCfg()

MCTruthUserActionToolCfg ( flags,
name = "ISFMCTruthUserActionTool",
** kwargs )

Definition at line 69 of file G4AtlasUserActionConfig.py.

69def MCTruthUserActionToolCfg(flags, name="ISFMCTruthUserActionTool", **kwargs):
70 result = ComponentAccumulator()
71 kwargs.setdefault("TruthRecordSvc", result.getPrimaryAndMerge(TruthServiceCfg(flags)))
72 result.setPrivateTools(CompFactory.G4UA.iGeant4.MCTruthUserActionTool(name, **kwargs))
73 return result
74
75

◆ OptionalUserActionCfg()

OptionalUserActionCfg ( flags)
flags.Sim.OptionalUserActionList = ['G4UserActions.G4UserActionsConfig.FixG4CreatorProcessToolCfg']

Definition at line 24 of file G4AtlasUserActionConfig.py.

24def OptionalUserActionCfg(flags):
25 """ flags.Sim.OptionalUserActionList = ['G4UserActions.G4UserActionsConfig.FixG4CreatorProcessToolCfg']"""
26 result = ComponentAccumulator()
27 optionalUserActions = []
28 for userActionString in flags.Sim.OptionalUserActionList:
29 optionalUserActions += [result.popToolsAndMerge(getOptionalUACfg(flags, userActionString))]
30 result.setPrivateTools(optionalUserActions)
31 return result
32
33

◆ PassBackG4TrackProcessorUserActionToolCfg()

PassBackG4TrackProcessorUserActionToolCfg ( flags,
name = "PassBackG4TrackProcessorUserActionTool",
** kwargs )

Definition at line 85 of file G4AtlasUserActionConfig.py.

85def PassBackG4TrackProcessorUserActionToolCfg(flags, name="PassBackG4TrackProcessorUserActionTool", **kwargs):
86 if flags.Sim.ISF.Simulator in [SimulationFlavour.PassBackG4MT]:
87 kwargs.setdefault("ParticleBroker", "")
88 return TrackProcessorUserActionToolCfg(flags, name, **kwargs)
89
90

◆ PhysicsValidationUserActionToolCfg()

PhysicsValidationUserActionToolCfg ( flags,
name = "ISFG4PhysicsValidationUserActionTool",
** kwargs )

Definition at line 63 of file G4AtlasUserActionConfig.py.

63def PhysicsValidationUserActionToolCfg(flags, name="ISFG4PhysicsValidationUserActionTool", **kwargs):
64 result = ComponentAccumulator()
65 result.setPrivateTools(CompFactory.G4UA.iGeant4.PhysicsValidationUserActionTool(name, **kwargs))
66 return result
67
68

◆ TrackProcessorUserActionToolCfg()

TrackProcessorUserActionToolCfg ( flags,
name = "ISFG4TrackProcessorUserActionTool",
** kwargs )

Definition at line 76 of file G4AtlasUserActionConfig.py.

76def TrackProcessorUserActionToolCfg(flags, name="ISFG4TrackProcessorUserActionTool", **kwargs):
77 result = ComponentAccumulator()
78 if "ParticleBroker" not in kwargs:
79 kwargs.setdefault("ParticleBroker", result.getPrimaryAndMerge(ParticleBrokerSvcCfg(flags)))
80 kwargs.setdefault("GeoIDSvc", result.getPrimaryAndMerge(GeoIDSvcCfg(flags)))
81 result.setPrivateTools(CompFactory.G4UA.iGeant4.TrackProcessorUserActionPassBackTool(name, **kwargs))
82 return result
83
84

◆ UserActionSvcCfg()

UserActionSvcCfg ( flags,
name = "G4UA::UserActionSvc",
** kwargs )
Get the standard UA svc configurable with all default actions added.
This function is normally called by the configured factory, not users.

Definition at line 153 of file G4AtlasUserActionConfig.py.

153def UserActionSvcCfg(flags, name="G4UA::UserActionSvc", **kwargs):
154 """
155 Get the standard UA svc configurable with all default actions added.
156 This function is normally called by the configured factory, not users.
157 """
158 result = ComponentAccumulator()
159
160 generalActions = ( result.popToolsAndMerge(getDefaultActions(flags)) +
161 result.popToolsAndMerge(OptionalUserActionCfg(flags)) )
162
163 # New user action tools
164 kwargs.setdefault("UserActionTools", generalActions)
165
166 # placeholder for more advanced config, if needed
167 result.addService(CompFactory.G4UA.UserActionSvc(name, **kwargs), primary = True)
168
169 return result
170
171