Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ISF_MainConfig.py
Go to the documentation of this file.
1 """Main ISF tools configuration with ComponentAccumulator
2 
3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4 """
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 from SimulationConfig.SimulationMetadata import writeSimulationParametersMetadata, readSimulationParameters
8 from ISF_Services.ISF_ServicesCoreConfig import GeoIDSvcCfg
9 from ISF_Services.ISF_ServicesConfig import (
10  InputConverterCfg, TruthServiceCfg,
11  ATLFAST_ParticleBrokerSvcCfg, ParticleBrokerSvcNoOrderingCfg
12 )
13 from ISF_Tools.ISF_ToolsConfig import (
14  ParticleKillerToolCfg, EnergyParticleOrderingToolCfg,
15  ParticleOrderingToolCfg, MemoryMonitorToolCfg
16 )
17 from ISF_SimulationSelectors.ISF_SimulationSelectorsConfig import (
18  DefaultATLFAST_Geant4SelectorCfg,
19  DefaultParticleKillerSelectorCfg,
20  EtaGreater5ParticleKillerSimSelectorCfg,
21  FullGeant4SelectorCfg,
22  MuonATLFAST_Geant4SelectorCfg,
23  PassBackGeant4SelectorCfg,
24  DefaultFastCaloSimV2SelectorCfg,
25  PionATLFAST_Geant4SelectorCfg,
26  ProtonATLFAST_Geant4SelectorCfg,
27  NeutronATLFAST_Geant4SelectorCfg,
28  ChargedKaonATLFAST_Geant4SelectorCfg,
29  KLongATLFAST_Geant4SelectorCfg,
30  DefaultFatrasSelectorCfg,
31  DefaultActsSelectorCfg
32 )
33 from ISF_Geant4Tools.ISF_Geant4ToolsConfig import (
34  ATLFAST_Geant4ToolCfg,
35  FullGeant4ToolCfg,
36  PassBackGeant4ToolCfg,
37 )
38 from ISF_Geant4CommonTools.ISF_Geant4CommonToolsConfig import (
39  EntryLayerToolMTCfg,
40  ATLFAST_EntryLayerToolMTCfg
41 )
42 AthSequencer=CompFactory.AthSequencer
43 
44 # MT
45 def Kernel_GenericSimulatorMTCfg(flags, name="ISF_Kernel_GenericSimulatorMT", **kwargs):
46  acc = ComponentAccumulator()
47  kwargs.setdefault("UseShadowEvent", flags.Sim.UseShadowEvent)
48  if flags.Sim.UseShadowEvent and "TruthPreselectionTool" not in kwargs:
49  from ISF_HepMC_Tools.ISF_HepMC_ToolsConfig import TruthPreselectionToolCfg
50  kwargs.setdefault("TruthPreselectionTool", acc.popToolsAndMerge(TruthPreselectionToolCfg(flags)))
51 
52  if "GeoIDSvc" not in kwargs:
53  kwargs.setdefault("GeoIDSvc", acc.getPrimaryAndMerge(GeoIDSvcCfg(flags)).name)
54 
55  if "TruthRecordService" not in kwargs:
56  kwargs.setdefault("TruthRecordService", acc.getPrimaryAndMerge(TruthServiceCfg(flags)).name)
57 
58  if "EntryLayerTool" not in kwargs:
59  kwargs.setdefault("EntryLayerTool", acc.addPublicTool(acc.popToolsAndMerge(EntryLayerToolMTCfg(flags))))
60 
61  from AthenaConfiguration.Enums import ProductionStep
62  if flags.Common.ProductionStep == ProductionStep.FastChain:
63  if flags.Digitization.PileUp:
64  OEsvc = CompFactory.StoreGateSvc("OriginalEvent_SG")
65  acc.addService(OEsvc)
66  kwargs.setdefault("EvtStore", OEsvc.name) # TODO check this is correct
67 
68  kwargs.setdefault("Cardinality", flags.Concurrency.NumThreads)
69  kwargs.setdefault("InputEvgenCollection", "BeamTruthEvent")
70  kwargs.setdefault("OutputTruthCollection", "TruthEvent")
71  from G4AtlasTools.G4AtlasToolsConfig import InputContainerListCfg
72  kwargs.setdefault("ExtraInputs" , InputContainerListCfg(flags))
73  if flags.Sim.ISF.Simulator.isQuasiStable():
74  if "QuasiStablePatcher" not in kwargs:
75  from BeamEffects.BeamEffectsAlgConfig import ZeroLifetimePositionerCfg
76  kwargs.setdefault("QuasiStablePatcher", acc.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)))
77  if "InputConverter" not in kwargs:
78  kwargs.setdefault("InputConverter", acc.getPrimaryAndMerge(InputConverterCfg(flags)).name)
79 
80  if flags.Sim.ISF.ReSimulation:
81  acc.addSequence(AthSequencer('SimSequence'), parentName='AthAlgSeq') # TODO make the name configurable?
82  acc.addEventAlgo(CompFactory.ISF.SimKernelMT(name, **kwargs), 'SimSequence') # TODO make the name configurable?
83  else:
84  acc.addEventAlgo(CompFactory.ISF.SimKernelMT(name, **kwargs))
85  return acc
86 
87 
88 def Kernel_GenericSimulatorNoG4MTCfg(flags, name="ISF_Kernel_GenericSimulatorNoG4MT", **kwargs):
89  return Kernel_GenericSimulatorMTCfg(flags, name, **kwargs)
90 
91 
92 def Kernel_GenericG4OnlyMTCfg(flags, name="ISF_Kernel_GenericG4OnlyMT", **kwargs):
93  acc = ComponentAccumulator()
94 
95  defaultG4SelectorRegions = set(["BeamPipeSimulationSelectors", "IDSimulationSelectors", "CaloSimulationSelectors", "MSSimulationSelectors"])
96  if flags.Detector.GeometryCavern:
97  # If we are simulating the cavern then we want to use the FullGeant4Selector here too
98  defaultG4SelectorRegions.add("CavernSimulationSelectors")
99  if defaultG4SelectorRegions - kwargs.keys(): # i.e. if any of these have not been defined yet
100  pubTool = acc.addPublicTool(acc.popToolsAndMerge(FullGeant4SelectorCfg(flags)))
101  # SimulationSelectors are still public ToolHandleArrays currently
102  for selectorRegion in defaultG4SelectorRegions:
103  kwargs.setdefault(selectorRegion, [pubTool])
104 
105  if "CavernSimulationSelectors" not in kwargs:
106  kwargs.setdefault("CavernSimulationSelectors",
107  [acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags)))])
108 
109  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs))
110  return acc
111 
112 
113 def Kernel_FullG4MTCfg(flags, name="ISF_Kernel_FullG4MT", **kwargs):
114  acc = ComponentAccumulator()
115 
116  if "SimulationTools" not in kwargs:
117  kwargs.setdefault("SimulationTools", [
118  acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
119  acc.popToolsAndMerge(FullGeant4ToolCfg(flags))
120  ]) #private ToolHandleArray
121 
122  acc.merge(Kernel_GenericG4OnlyMTCfg(flags, name, **kwargs))
123  return acc
124 
125 
126 def Kernel_FullG4MT_QSCfg(flags, name="ISF_Kernel_FullG4MT_QS", **kwargs):
127  acc = ComponentAccumulator()
128 
129  kwargs.setdefault("SimulationTools", [
130  acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
131  acc.popToolsAndMerge(FullGeant4ToolCfg(flags))
132  ]) #private ToolHandleArray
133 
134  acc.merge(Kernel_GenericG4OnlyMTCfg(flags, name, **kwargs))
135  return acc
136 
137 
138 def Kernel_PassBackG4MTCfg(flags, name="ISF_Kernel_PassBackG4MT", **kwargs):
139  acc = ComponentAccumulator()
140  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs)) # Workaround
141 
142  defaultG4SelectorRegions = set(["BeamPipeSimulationSelectors", "IDSimulationSelectors", "CaloSimulationSelectors", "MSSimulationSelectors"])
143  if defaultG4SelectorRegions - kwargs.keys(): # i.e. if any of these have not been defined yet
144  passBackG4Selector = acc.addPublicTool(acc.popToolsAndMerge(PassBackGeant4SelectorCfg(flags)))
145  kwargs.setdefault("BeamPipeSimulationSelectors", [passBackG4Selector])
146  kwargs.setdefault("IDSimulationSelectors", [passBackG4Selector])
147  kwargs.setdefault("CaloSimulationSelectors", [passBackG4Selector])
148  kwargs.setdefault("MSSimulationSelectors", [passBackG4Selector])
149 
150  if "CavernSimulationSelectors" not in kwargs:
151  kwargs.setdefault("CavernSimulationSelectors",
152  [acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags)))])
153 
154  if "SimulationTools" not in kwargs:
155  kwargs.setdefault("SimulationTools", [
156  acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
157  acc.popToolsAndMerge(PassBackGeant4ToolCfg(flags))
158  ])
159 
160  if "ParticleOrderingTool" not in kwargs:
161  kwargs.setdefault("ParticleOrderingTool", acc.popToolsAndMerge(EnergyParticleOrderingToolCfg(flags)))
162 
163  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs))
164  return acc
165 
166 
167 def Kernel_ATLFAST3MTCfg(flags, name="ISF_Kernel_ATLFAST3MT", **kwargs):
168  acc = ComponentAccumulator()
169  kwargs.setdefault("ParticleOrderingTool", acc.popToolsAndMerge(ParticleOrderingToolCfg(flags)))
170 
171  kwargs.setdefault("EntryLayerTool", acc.addPublicTool(acc.popToolsAndMerge(ATLFAST_EntryLayerToolMTCfg(flags)))) # public ToolHandle
172  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs)) # Workaround
173 
174  # BeamPipe, ID, MS Simulation Selectors
175  defaultG4SelectorRegions = set(["BeamPipeSimulationSelectors", "IDSimulationSelectors", "MSSimulationSelectors"])
176  if defaultG4SelectorRegions - kwargs.keys(): # i.e. if any of these have not been defined yet
177  pubTool = acc.addPublicTool(acc.popToolsAndMerge(DefaultATLFAST_Geant4SelectorCfg(flags)))
178  kwargs.setdefault("BeamPipeSimulationSelectors", [pubTool])
179  kwargs.setdefault("IDSimulationSelectors", [pubTool])
180  kwargs.setdefault("MSSimulationSelectors", [pubTool])
181 
182  # CaloSimulationSelectors
183  kwargs.setdefault("CaloSimulationSelectors", [
184  acc.addPublicTool(acc.popToolsAndMerge(MuonATLFAST_Geant4SelectorCfg(flags))),
185  acc.addPublicTool(acc.popToolsAndMerge(EtaGreater5ParticleKillerSimSelectorCfg(flags))),
186  acc.addPublicTool(acc.popToolsAndMerge(PionATLFAST_Geant4SelectorCfg(flags))),
187  acc.addPublicTool(acc.popToolsAndMerge(ProtonATLFAST_Geant4SelectorCfg(flags))),
188  acc.addPublicTool(acc.popToolsAndMerge(NeutronATLFAST_Geant4SelectorCfg(flags))),
189  acc.addPublicTool(acc.popToolsAndMerge(ChargedKaonATLFAST_Geant4SelectorCfg(flags))),
190  acc.addPublicTool(acc.popToolsAndMerge(KLongATLFAST_Geant4SelectorCfg(flags))),
191  acc.addPublicTool(acc.popToolsAndMerge(DefaultFastCaloSimV2SelectorCfg(flags)))
192  ])
193 
194  # CavernSimulationSelectors
195  kwargs.setdefault("CavernSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags))) ])
196 
197  from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig import FastCaloSimV2ToolCfg
198  kwargs.setdefault("SimulationTools", [
199  acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
200  acc.popToolsAndMerge(FastCaloSimV2ToolCfg(flags)),
201  acc.popToolsAndMerge(ATLFAST_Geant4ToolCfg(flags))
202  ])
203 
204  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs))
205  return acc
206 
207 
208 def Kernel_ATLFAST3MT_QSCfg(flags, name="ISF_Kernel_ATLFAST3MT_QS", **kwargs):
209  acc = ComponentAccumulator()
210  kwargs.setdefault("ParticleOrderingTool", acc.popToolsAndMerge(ParticleOrderingToolCfg(flags)))
211 
212  kwargs.setdefault("EntryLayerTool", acc.addPublicTool(acc.popToolsAndMerge(ATLFAST_EntryLayerToolMTCfg(flags)))) # public ToolHandle
213  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs)) # Workaround
214 
215  # BeamPipe, ID, MS Simulation Selectors
216  defaultG4SelectorRegions = set(["BeamPipeSimulationSelectors", "IDSimulationSelectors", "MSSimulationSelectors"])
217  if defaultG4SelectorRegions - kwargs.keys(): # i.e. if any of these have not been defined yet
218  pubTool = acc.addPublicTool(acc.popToolsAndMerge(DefaultATLFAST_Geant4SelectorCfg(flags)))
219  kwargs.setdefault("BeamPipeSimulationSelectors", [pubTool])
220  kwargs.setdefault("IDSimulationSelectors", [pubTool])
221  kwargs.setdefault("MSSimulationSelectors", [pubTool])
222 
223  # CaloSimulationSelectors
224  kwargs.setdefault("CaloSimulationSelectors", [
225  acc.addPublicTool(acc.popToolsAndMerge(MuonATLFAST_Geant4SelectorCfg(flags))),
226  acc.addPublicTool(acc.popToolsAndMerge(EtaGreater5ParticleKillerSimSelectorCfg(flags))),
227  acc.addPublicTool(acc.popToolsAndMerge(PionATLFAST_Geant4SelectorCfg(flags))),
228  acc.addPublicTool(acc.popToolsAndMerge(ProtonATLFAST_Geant4SelectorCfg(flags))),
229  acc.addPublicTool(acc.popToolsAndMerge(NeutronATLFAST_Geant4SelectorCfg(flags))),
230  acc.addPublicTool(acc.popToolsAndMerge(ChargedKaonATLFAST_Geant4SelectorCfg(flags))),
231  acc.addPublicTool(acc.popToolsAndMerge(KLongATLFAST_Geant4SelectorCfg(flags))),
232  acc.addPublicTool(acc.popToolsAndMerge(DefaultFastCaloSimV2SelectorCfg(flags)))
233  ])
234 
235  # CavernSimulationSelectors
236  kwargs.setdefault("CavernSimulationSelectors",
237  [ acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags))) ])
238 
239  from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig import FastCaloSimV2ToolCfg
240  kwargs.setdefault("SimulationTools", [ acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
241  acc.popToolsAndMerge(FastCaloSimV2ToolCfg(flags)),
242  acc.popToolsAndMerge(ATLFAST_Geant4ToolCfg(flags)) ])
243  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs))
244  return acc
245 
246 
247 def Kernel_GenericSimulatorCfg(flags, name="ISF_Kernel_GenericSimulator", **kwargs):
248  acc = ComponentAccumulator()
249  kwargs.setdefault("UseShadowEvent", flags.Sim.UseShadowEvent)
250  if flags.Sim.UseShadowEvent and "TruthPreselectionTool" not in kwargs:
251  from ISF_HepMC_Tools.ISF_HepMC_ToolsConfig import TruthPreselectionToolCfg
252  kwargs.setdefault( "TruthPreselectionTool", acc.popToolsAndMerge(TruthPreselectionToolCfg(flags)) )
253 
254  if "TruthRecordService" not in kwargs:
255  kwargs.setdefault("TruthRecordService", acc.getPrimaryAndMerge(TruthServiceCfg(flags)).name)
256 
257  if "MemoryMonitoringTool" not in kwargs:
258  kwargs.setdefault("MemoryMonitoringTool", acc.addPublicTool(acc.popToolsAndMerge(MemoryMonitorToolCfg(flags))))
259 
260  if "ParticleBroker" not in kwargs:
261  kwargs.setdefault("ParticleBroker", acc.getPrimaryAndMerge(ATLFAST_ParticleBrokerSvcCfg(flags)).name)
262 
263  if flags.Sim.ISF.Simulator.isQuasiStable():
264  if "QuasiStablePatcher" not in kwargs:
265  from BeamEffects.BeamEffectsAlgConfig import ZeroLifetimePositionerCfg
266  kwargs.setdefault("QuasiStablePatcher", acc.getPrimaryAndMerge(ZeroLifetimePositionerCfg(flags)) )
267  if "InputConverter" not in kwargs:
268  kwargs.setdefault("InputConverter", acc.getPrimaryAndMerge(InputConverterCfg(flags)).name)
269 
270  kwargs.setdefault("InputHardScatterCollection", "BeamTruthEvent")
271  kwargs.setdefault("OutputHardScatterTruthCollection", "TruthEvent")
272  kwargs.setdefault("DoCPUMonitoring", flags.Sim.ISF.DoTimeMonitoring)
273  kwargs.setdefault("DoMemoryMonitoring", flags.Sim.ISF.DoMemoryMonitoring)
274 
275  if flags.Sim.ISF.ReSimulation:
276  acc.addSequence(AthSequencer('SimSequence'), parentName='AthAlgSeq') # TODO make the name configurable?
277  acc.addEventAlgo(CompFactory.ISF.SimKernel(name, **kwargs), 'SimSequence') # TODO make the name configurable?
278  else:
279  acc.addEventAlgo(CompFactory.ISF.SimKernel(name, **kwargs))
280  return acc
281 
282 
283 def Kernel_ATLFAST3F_G4MSCfg(flags, name="ISF_Kernel_ATLFAST3F_G4MS", **kwargs):
284  acc = ComponentAccumulator()
285  acc.merge(Kernel_GenericSimulatorCfg(flags, name, **kwargs)) # Force the SimKernel to be before the CollectionMerger by adding it here
286 
287  kwargs.setdefault("BeamPipeSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags))) ])
288  kwargs.setdefault("IDSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultFatrasSelectorCfg(flags))) ])
289  kwargs.setdefault("CaloSimulationSelectors", [
290  acc.addPublicTool(acc.popToolsAndMerge(MuonATLFAST_Geant4SelectorCfg(flags))),
291  acc.addPublicTool(acc.popToolsAndMerge(EtaGreater5ParticleKillerSimSelectorCfg(flags))),
292  acc.addPublicTool(acc.popToolsAndMerge(PionATLFAST_Geant4SelectorCfg(flags))),
293  acc.addPublicTool(acc.popToolsAndMerge(ProtonATLFAST_Geant4SelectorCfg(flags))),
294  acc.addPublicTool(acc.popToolsAndMerge(NeutronATLFAST_Geant4SelectorCfg(flags))),
295  acc.addPublicTool(acc.popToolsAndMerge(ChargedKaonATLFAST_Geant4SelectorCfg(flags))),
296  acc.addPublicTool(acc.popToolsAndMerge(KLongATLFAST_Geant4SelectorCfg(flags))),
297  acc.addPublicTool(acc.popToolsAndMerge(DefaultFastCaloSimV2SelectorCfg(flags)))
298  ])
299  kwargs.setdefault("MSSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultATLFAST_Geant4SelectorCfg(flags))) ])
300  kwargs.setdefault("CavernSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags))) ])
301  #simFlags.SimulationFlavour = "ATLFAST3F_G4MS" # not migrated
302 
303  acc.merge(Kernel_GenericSimulatorCfg(flags, name, **kwargs)) # Merge properly configured SimKernel here and let deduplication sort it out.
304  return acc
305 
306 
307 def Kernel_ATLFAST3F_ACTSMTCfg(flags, name="ISF_Kernel_ATLFAST3F_ACTSMT", **kwargs):
308  acc = ComponentAccumulator()
309  kwargs.setdefault("ParticleOrderingTool", acc.popToolsAndMerge(ParticleOrderingToolCfg(flags)))
310 
311  kwargs.setdefault("EntryLayerTool", acc.addPublicTool(acc.popToolsAndMerge(ATLFAST_EntryLayerToolMTCfg(flags)))) # public ToolHandle
312  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs)) # Workaround
313 
314  # BeamPipeSimulationSelectors
315  defPartKillerSelector = acc.addPublicTool(acc.popToolsAndMerge(DefaultParticleKillerSelectorCfg(flags)))
316  kwargs.setdefault("BeamPipeSimulationSelectors", [ defPartKillerSelector ])
317  # IDSimulationSelectors
318  kwargs.setdefault("IDSimulationSelectors", [
319  acc.addPublicTool(acc.popToolsAndMerge(DefaultActsSelectorCfg(flags))),
320  defPartKillerSelector
321  ])
322  # CaloSimulationSelectors
323  kwargs.setdefault("CaloSimulationSelectors", [
324  acc.addPublicTool(acc.popToolsAndMerge(MuonATLFAST_Geant4SelectorCfg(flags))),
325  acc.addPublicTool(acc.popToolsAndMerge(EtaGreater5ParticleKillerSimSelectorCfg(flags))),
326  acc.addPublicTool(acc.popToolsAndMerge(PionATLFAST_Geant4SelectorCfg(flags))),
327  acc.addPublicTool(acc.popToolsAndMerge(ProtonATLFAST_Geant4SelectorCfg(flags))),
328  acc.addPublicTool(acc.popToolsAndMerge(NeutronATLFAST_Geant4SelectorCfg(flags))),
329  acc.addPublicTool(acc.popToolsAndMerge(ChargedKaonATLFAST_Geant4SelectorCfg(flags))),
330  acc.addPublicTool(acc.popToolsAndMerge(KLongATLFAST_Geant4SelectorCfg(flags))),
331  acc.addPublicTool(acc.popToolsAndMerge(DefaultFastCaloSimV2SelectorCfg(flags)))
332  ])
333  # MSSimulationSelectors
334  kwargs.setdefault("MSSimulationSelectors", [ acc.addPublicTool(acc.popToolsAndMerge(DefaultATLFAST_Geant4SelectorCfg(flags))) ])
335  # CavernSimulationSelectors
336  kwargs.setdefault("CavernSimulationSelectors", [ defPartKillerSelector ])
337 
338  from ISF_FastCaloSimServices.ISF_FastCaloSimServicesConfig import FastCaloSimV2ToolCfg
339  from ISF_ActsTools.ISF_ActsToolsConfig import ActsFatrasSimToolCfg
340  kwargs.setdefault("SimulationTools", [
341  acc.popToolsAndMerge(ActsFatrasSimToolCfg(flags)),
342  acc.popToolsAndMerge(ParticleKillerToolCfg(flags)),
343  acc.popToolsAndMerge(FastCaloSimV2ToolCfg(flags)),
344  acc.popToolsAndMerge(ATLFAST_Geant4ToolCfg(flags))
345  ])
346 
347  acc.merge(Kernel_GenericSimulatorMTCfg(flags, name, **kwargs))
348  return acc
349 
350 
351 def Kernel_CosmicsG4Cfg(flags, name="ISF_Kernel_CosmicsG4", **kwargs):
352  acc = ComponentAccumulator()
353  from ISF_Tools.ISF_ToolsConfig import CosmicEventFilterToolCfg
354  kwargs.setdefault("EventFilterTools" , [ acc.addPublicTool(acc.popToolsAndMerge(CosmicEventFilterToolCfg(flags))) ] )
355  kwargs.setdefault("ParticleBroker", acc.getPrimaryAndMerge(ParticleBrokerSvcNoOrderingCfg(flags)).name)
356  kwargs.setdefault("MaximumParticleVectorSize" , 1000000)
357  pubTool = acc.addPublicTool(acc.popToolsAndMerge(FullGeant4SelectorCfg(flags)))
358  kwargs.setdefault("BeamPipeSimulationSelectors" , [ pubTool ] )
359  kwargs.setdefault("IDSimulationSelectors" , [ pubTool ] )
360  kwargs.setdefault("CaloSimulationSelectors" , [ pubTool ] )
361  kwargs.setdefault("MSSimulationSelectors" , [ pubTool ] )
362  kwargs.setdefault("CavernSimulationSelectors" , [ pubTool ] )
363  kwargs.setdefault("DoMemoryMonitoring", False)
364  acc.merge(Kernel_GenericSimulatorCfg(flags, name, **kwargs)) # Merge properly configured SimKernel here and let deduplication sort it out.
365  return acc
366 
367 
368 def ISF_KernelCfg(flags):
369  cfg = ComponentAccumulator()
370  # Write MetaData container
371  cfg.merge(writeSimulationParametersMetadata(flags))
372  # Also allow reading it
373  cfg.merge(readSimulationParameters(flags)) # for FileMetaData creation
374 
375  from SimulationConfig.SimEnums import SimulationFlavour
376  if flags.Sim.ISF.Simulator is SimulationFlavour.FullG4MT:
377  cfg.merge(Kernel_FullG4MTCfg(flags))
378  elif flags.Sim.ISF.Simulator is SimulationFlavour.FullG4MT_QS:
379  cfg.merge(Kernel_FullG4MT_QSCfg(flags))
380  elif flags.Sim.ISF.Simulator is SimulationFlavour.PassBackG4MT:
381  cfg.merge(Kernel_PassBackG4MTCfg(flags))
382  elif flags.Sim.ISF.Simulator is SimulationFlavour.ATLFAST3MT:
383  cfg.merge(Kernel_ATLFAST3MTCfg(flags))
384  elif flags.Sim.ISF.Simulator is SimulationFlavour.ATLFAST3MT_QS:
385  cfg.merge(Kernel_ATLFAST3MT_QSCfg(flags))
386  elif flags.Sim.ISF.Simulator is SimulationFlavour.ATLFAST3F_G4MS:
387  cfg.merge(Kernel_ATLFAST3F_G4MSCfg(flags))
388  elif flags.Sim.ISF.Simulator is SimulationFlavour.ATLFAST3F_ACTSMT:
389  cfg.merge(Kernel_ATLFAST3F_ACTSMTCfg(flags))
390  elif flags.Sim.ISF.Simulator is SimulationFlavour.CosmicsG4:
391  cfg.merge(Kernel_CosmicsG4Cfg(flags))
392  else:
393  raise ValueError('Unknown Simulator set, bailing out')
394 
395  return cfg
python.ISF_MainConfig.Kernel_ATLFAST3MT_QSCfg
def Kernel_ATLFAST3MT_QSCfg(flags, name="ISF_Kernel_ATLFAST3MT_QS", **kwargs)
Definition: ISF_MainConfig.py:208
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
AthSequencer
ClassName: AthSequencer.
Definition: AthSequencer.h:40
ISF_SimulationSelectorsConfig.PassBackGeant4SelectorCfg
def PassBackGeant4SelectorCfg(flags, name="ISF_PassBackGeant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:54
python.SimulationMetadata.readSimulationParameters
def readSimulationParameters(flags)
Definition: SimulationMetadata.py:99
ISF_ServicesConfig.ATLFAST_ParticleBrokerSvcCfg
def ATLFAST_ParticleBrokerSvcCfg(flags, name="ISF_ATLFAST_ParticleBrokerSvc", **kwargs)
Definition: ISF_ServicesConfig.py:70
python.ISF_Geant4ToolsConfig.FullGeant4ToolCfg
def FullGeant4ToolCfg(flags, name="ISF_FullGeant4Tool", **kwargs)
Definition: ISF_Geant4ToolsConfig.py:72
python.ISF_MainConfig.Kernel_FullG4MTCfg
def Kernel_FullG4MTCfg(flags, name="ISF_Kernel_FullG4MT", **kwargs)
Definition: ISF_MainConfig.py:113
ISF_SimulationSelectorsConfig.KLongATLFAST_Geant4SelectorCfg
def KLongATLFAST_Geant4SelectorCfg(flags, name="ISF_KLongATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:201
ISF_SimulationSelectorsConfig.NeutronATLFAST_Geant4SelectorCfg
def NeutronATLFAST_Geant4SelectorCfg(flags, name="ISF_NeutronATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:187
python.ISF_MainConfig.Kernel_ATLFAST3F_ACTSMTCfg
def Kernel_ATLFAST3F_ACTSMTCfg(flags, name="ISF_Kernel_ATLFAST3F_ACTSMT", **kwargs)
Definition: ISF_MainConfig.py:307
ISF_ToolsConfig.EnergyParticleOrderingToolCfg
def EnergyParticleOrderingToolCfg(flags, name="ISF_EnergyParticleOrderingTool", **kwargs)
Definition: ISF_ToolsConfig.py:147
ISF_Geant4CommonToolsConfig.ATLFAST_EntryLayerToolMTCfg
def ATLFAST_EntryLayerToolMTCfg(flags, name="ISF_ATLFAST_EntryLayerToolMT", **kwargs)
Definition: ISF_Geant4CommonToolsConfig.py:73
ISF_SimulationSelectorsConfig.DefaultActsSelectorCfg
def DefaultActsSelectorCfg(flags, name="ISF_DefaultActsSelector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:112
ISF_SimulationSelectorsConfig.PionATLFAST_Geant4SelectorCfg
def PionATLFAST_Geant4SelectorCfg(flags, name="ISF_PionATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:180
python.ISF_MainConfig.Kernel_ATLFAST3MTCfg
def Kernel_ATLFAST3MTCfg(flags, name="ISF_Kernel_ATLFAST3MT", **kwargs)
Definition: ISF_MainConfig.py:167
ISF_ToolsConfig.ParticleKillerToolCfg
def ParticleKillerToolCfg(flags, name="ISF_ParticleKillerTool", **kwargs)
Definition: ISF_ToolsConfig.py:153
python.ISF_MainConfig.Kernel_GenericSimulatorNoG4MTCfg
def Kernel_GenericSimulatorNoG4MTCfg(flags, name="ISF_Kernel_GenericSimulatorNoG4MT", **kwargs)
Definition: ISF_MainConfig.py:88
ISF_SimulationSelectorsConfig.DefaultFastCaloSimV2SelectorCfg
def DefaultFastCaloSimV2SelectorCfg(flags, name="ISF_DefaultFastCaloSimV2Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:73
ISF_HepMC_ToolsConfig.TruthPreselectionToolCfg
def TruthPreselectionToolCfg(flags, name="TruthPreselectionTool", **kwargs)
Definition: ISF_HepMC_ToolsConfig.py:165
ISF_ServicesConfig.ParticleBrokerSvcNoOrderingCfg
def ParticleBrokerSvcNoOrderingCfg(flags, name="ISF_ParticleBrokerSvcNoOrdering", **kwargs)
Definition: ISF_ServicesConfig.py:45
ISF_SimulationSelectorsConfig.DefaultFatrasSelectorCfg
def DefaultFatrasSelectorCfg(flags, name="ISF_DefaultFatrasSelector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:102
ISF_Geant4CommonToolsConfig.EntryLayerToolMTCfg
def EntryLayerToolMTCfg(flags, name="ISF_EntryLayerToolMT", **kwargs)
Definition: ISF_Geant4CommonToolsConfig.py:35
python.ISF_MainConfig.ISF_KernelCfg
def ISF_KernelCfg(flags)
Definition: ISF_MainConfig.py:368
ISF_SimulationSelectorsConfig.ChargedKaonATLFAST_Geant4SelectorCfg
def ChargedKaonATLFAST_Geant4SelectorCfg(flags, name="ISF_ChargedKaonATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:194
python.ISF_MainConfig.Kernel_FullG4MT_QSCfg
def Kernel_FullG4MT_QSCfg(flags, name="ISF_Kernel_FullG4MT_QS", **kwargs)
Definition: ISF_MainConfig.py:126
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
python.ISF_MainConfig.Kernel_CosmicsG4Cfg
def Kernel_CosmicsG4Cfg(flags, name="ISF_Kernel_CosmicsG4", **kwargs)
Definition: ISF_MainConfig.py:351
ISF_ServicesConfig.TruthServiceCfg
def TruthServiceCfg(flags, **kwargs)
Definition: ISF_ServicesConfig.py:80
ISF_ToolsConfig.ParticleOrderingToolCfg
def ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs)
Definition: ISF_ToolsConfig.py:136
ISF_ToolsConfig.CosmicEventFilterToolCfg
def CosmicEventFilterToolCfg(flags, name="ISF_CosmicEventFilter", **kwargs)
Definition: ISF_ToolsConfig.py:100
G4AtlasToolsConfig.InputContainerListCfg
def InputContainerListCfg(flags)
Definition: G4AtlasToolsConfig.py:386
python.ISF_MainConfig.Kernel_ATLFAST3F_G4MSCfg
def Kernel_ATLFAST3F_G4MSCfg(flags, name="ISF_Kernel_ATLFAST3F_G4MS", **kwargs)
Definition: ISF_MainConfig.py:283
python.ISF_MainConfig.Kernel_GenericG4OnlyMTCfg
def Kernel_GenericG4OnlyMTCfg(flags, name="ISF_Kernel_GenericG4OnlyMT", **kwargs)
Definition: ISF_MainConfig.py:92
ISF_ToolsConfig.MemoryMonitorToolCfg
def MemoryMonitorToolCfg(flags, name="ISF_MemoryMonitor", **kwargs)
Definition: ISF_ToolsConfig.py:16
python.ISF_Geant4ToolsConfig.ATLFAST_Geant4ToolCfg
def ATLFAST_Geant4ToolCfg(flags, name="ISF_ATLFAST_Geant4Tool", **kwargs)
Definition: ISF_Geant4ToolsConfig.py:88
python.ISF_Geant4ToolsConfig.PassBackGeant4ToolCfg
def PassBackGeant4ToolCfg(flags, name="ISF_PassBackGeant4Tool", **kwargs)
Definition: ISF_Geant4ToolsConfig.py:80
ISF_SimulationSelectorsConfig.ProtonATLFAST_Geant4SelectorCfg
def ProtonATLFAST_Geant4SelectorCfg(flags, name="ISF_ProtonATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:173
python.SimulationMetadata.writeSimulationParametersMetadata
def writeSimulationParametersMetadata(flags)
Definition: SimulationMetadata.py:79
ISF_SimulationSelectorsConfig.MuonATLFAST_Geant4SelectorCfg
def MuonATLFAST_Geant4SelectorCfg(flags, name="ISF_MuonATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:208
ISF_SimulationSelectorsConfig.EtaGreater5ParticleKillerSimSelectorCfg
def EtaGreater5ParticleKillerSimSelectorCfg(flags, name="ISF_EtaGreater5ParticleKillerSimSelector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:220
ISF_ServicesConfig.InputConverterCfg
def InputConverterCfg(flags, name="ISF_InputConverter", **kwargs)
Definition: ISF_ServicesConfig.py:33
python.ISF_MainConfig.Kernel_GenericSimulatorCfg
def Kernel_GenericSimulatorCfg(flags, name="ISF_Kernel_GenericSimulator", **kwargs)
Definition: ISF_MainConfig.py:247
ISF_FastCaloSimServicesConfig.FastCaloSimV2ToolCfg
def FastCaloSimV2ToolCfg(flags, name="ISF_FastCaloSimV2Tool", **kwargs)
Definition: ISF_FastCaloSimServicesConfig.py:139
ISF_ActsToolsConfig.ActsFatrasSimToolCfg
def ActsFatrasSimToolCfg(flags, name="ISF_ActsFatrasSimTool", **kwargs)
Definition: ISF_ActsToolsConfig.py:45
ISF_ServicesCoreConfig.GeoIDSvcCfg
def GeoIDSvcCfg(flags, name="ISF_GeoIDSvc", **kwargs)
Definition: ISF_ServicesCoreConfig.py:22
BeamEffectsAlgConfig.ZeroLifetimePositionerCfg
def ZeroLifetimePositionerCfg(flags, name="ZeroLifetimePositioner", **kwargs)
Definition: BeamEffectsAlgConfig.py:169
ISF_SimulationSelectorsConfig.DefaultParticleKillerSelectorCfg
def DefaultParticleKillerSelectorCfg(flags, name="ISF_DefaultParticleKillerSelector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:16
ISF_SimulationSelectorsConfig.FullGeant4SelectorCfg
def FullGeant4SelectorCfg(flags, name="ISF_FullGeant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:45
ISF_SimulationSelectorsConfig.DefaultATLFAST_Geant4SelectorCfg
def DefaultATLFAST_Geant4SelectorCfg(flags, name="ISF_DefaultATLFAST_Geant4Selector", **kwargs)
Definition: ISF_SimulationSelectorsConfig.py:35
python.ISF_MainConfig.Kernel_GenericSimulatorMTCfg
def Kernel_GenericSimulatorMTCfg(flags, name="ISF_Kernel_GenericSimulatorMT", **kwargs)
Definition: ISF_MainConfig.py:45
python.ISF_MainConfig.Kernel_PassBackG4MTCfg
def Kernel_PassBackG4MTCfg(flags, name="ISF_Kernel_PassBackG4MT", **kwargs)
Definition: ISF_MainConfig.py:138