ATLAS Offline Software
Loading...
Searching...
No Matches
ISF_ToolsConfig.py
Go to the documentation of this file.
1"""ComponentAccumulator tool configuration for ISF
2
3Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from AthenaCommon.SystemOfUnits import MeV
8
9
10def ParticleHelperCfg(flags, name="ISF_ParticleHelper", **kwargs):
11 acc = ComponentAccumulator()
12 acc.setPrivateTools(CompFactory.ISF.ParticleHelper(name, **kwargs))
13 return acc
14
15
16def MemoryMonitorToolCfg(flags, name="ISF_MemoryMonitor", **kwargs):
17 acc = ComponentAccumulator()
18 acc.setPrivateTools(CompFactory.ISF.MemoryMonitoringTool(name, **kwargs))
19 return acc
20
21
22def EntryLayerFilterCfg(flags, **kwargs):
23 """Return the MCxEntryLayerFilterCfg config flagged by Sim.TruthStrategy"""
24 from SimulationConfig.SimEnums import TruthStrategy
25 stratmap = {
26 TruthStrategy.MC12: MC12EntryLayerFilterCfg,
27 TruthStrategy.MC12LLP: MC12LLPEntryLayerFilterCfg,
28 TruthStrategy.MC12Plus: MC12PlusEntryLayerFilterCfg,
29 TruthStrategy.MC15: MC15EntryLayerFilterCfg,
30 TruthStrategy.MC15a: MC15aEntryLayerFilterCfg,
31 TruthStrategy.MC15aPlus: MC15aPlusEntryLayerFilterCfg,
32 TruthStrategy.MC15aPlusLLP: MC15aPlusLLPEntryLayerFilterCfg,
33 TruthStrategy.MC16: MC16EntryLayerFilterCfg,
34 TruthStrategy.MC16LLP: MC16LLPEntryLayerFilterCfg,
35 TruthStrategy.MC18: MC18EntryLayerFilterCfg,
36 TruthStrategy.MC18LLP: MC18LLPEntryLayerFilterCfg,
37 TruthStrategy.Validation: ValidationEntryLayerFilterCfg,
38 # TruthStrategy.PhysicsProcess: PhysicsProcessTruthServiceCfg,
39 # TruthStrategy.Global: GlobalTruthServiceCfg,
40 TruthStrategy.Cosmic: CosmicEventFilterToolCfg,
41 }
42 MCxCfg = stratmap[flags.Sim.TruthStrategy]
43 return MCxCfg(flags, **kwargs)
44
45
46def MC12EntryLayerFilterCfg(flags, name="ISF_MC12EntryLayerFilter", **kwargs):
47 acc = ComponentAccumulator()
48 acc.setPrivateTools(CompFactory.ISF.EntryLayerFilter(name, **kwargs))
49 return acc
50
51
52def MC12LLPEntryLayerFilterCfg(flags, name="ISF_MC12LLPEntryLayerFilter", **kwargs):
53 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
54
55
56def MC12PlusEntryLayerFilterCfg(flags, name="ISF_MC12PlusEntryLayerFilter", **kwargs):
57 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
58
59
60def MC15EntryLayerFilterCfg(flags, name="ISF_MC15EntryLayerFilter", **kwargs):
61 acc = ComponentAccumulator()
62 kwargs.setdefault("MinEkinCharged", 100.*MeV)
63 kwargs.setdefault("MinEkinNeutral", -1.)
64 acc.setPrivateTools(CompFactory.ISF.EntryLayerFilter(name, **kwargs))
65 return acc
66
67
68def MC15aEntryLayerFilterCfg(flags, name="ISF_MC15aEntryLayerFilter", **kwargs):
69 return MC15EntryLayerFilterCfg(flags, name, **kwargs)
70
71
72def MC15aPlusEntryLayerFilterCfg(flags, name="ISF_MC15aPlusEntryLayerFilter", **kwargs):
73 return MC15EntryLayerFilterCfg(flags, name, **kwargs)
74
75
76def MC15aPlusLLPEntryLayerFilterCfg(flags, name="ISF_MC15aPlusLLPEntryLayerFilter", **kwargs):
77 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
78
79
80def MC16EntryLayerFilterCfg(flags, name="ISF_MC16EntryLayerFilter", **kwargs):
81 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
82
83
84def MC16LLPEntryLayerFilterCfg(flags, name="ISF_MC16LLPEntryLayerFilter", **kwargs):
85 return MC15aPlusLLPEntryLayerFilterCfg(flags, name, **kwargs)
86
87
88def MC18EntryLayerFilterCfg(flags, name="ISF_MC18EntryLayerFilter", **kwargs):
89 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
90
91
92def MC18LLPEntryLayerFilterCfg(flags, name="ISF_MC18LLPEntryLayerFilter", **kwargs):
93 return MC15aPlusLLPEntryLayerFilterCfg(flags, name, **kwargs)
94
95
96def ValidationEntryLayerFilterCfg(flags, name="ISF_ValidationEntryLayerFilter", **kwargs):
97 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
98
99
100def CosmicEventFilterToolCfg(flags, name="ISF_CosmicEventFilter", **kwargs):
101 from G4CosmicFilter.G4CosmicFilterConfig import configCosmicFilterVolumeNames
102 acc = ComponentAccumulator()
103 volumeNames = configCosmicFilterVolumeNames(flags)
104 kwargs.setdefault("UseAndFilter", len(volumeNames)<3 )
105 kwargs.setdefault("VolumeNames", volumeNames)
106 if flags.Sim.CosmicFilterID:
107 kwargs.setdefault("PDG_ID", flags.Sim.CosmicFilterID)
108 if flags.Sim.CosmicFilterPTmin:
109 kwargs.setdefault("ptMin", flags.Sim.CosmicFilterPTmin)
110 if flags.Sim.CosmicFilterPTmax:
111 kwargs.setdefault("ptMax", flags.Sim.CosmicFilterPTmax)
112 acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs))
113 return acc
114
115
116def StoppedParticleEventFilterToolCfg(flags, name="ISF_StoppedParticleFilter", **kwargs):
117 # Possibly obsolete, was previously added to the SimKernel.EventFilterTools ToolHandleArray
118 kwargs.setdefault("VolumeNames", ["StoppingPositions"])
119 acc = ComponentAccumulator()
120 acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs))
121 return acc
122
123
124def InToOutSubDetOrderingToolCfg(flags, name="ISF_InToOutSubDetOrderingTool", **kwargs):
125 # higher ordered particles will be simulated first
126 kwargs.setdefault("OrderID" , 100000000)
127 kwargs.setdefault("OrderBeamPipe", 1000000 )
128 kwargs.setdefault("OrderCalo" , 10000 )
129 kwargs.setdefault("OrderMS" , 100 )
130 kwargs.setdefault("OrderCavern" , 1 )
131 acc = ComponentAccumulator()
132 acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs))
133 return acc
134
135
136def ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs):
137 kwargs.setdefault("OrderID" , 1)
138 kwargs.setdefault("OrderBeamPipe", 1)
139 kwargs.setdefault("OrderCalo" , 1)
140 kwargs.setdefault("OrderMS" , 1)
141 kwargs.setdefault("OrderCavern" , 1)
142 acc = ComponentAccumulator()
143 acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs))
144 return acc
145
146
147def EnergyParticleOrderingToolCfg(flags, name="ISF_EnergyParticleOrderingTool", **kwargs):
148 acc = ComponentAccumulator()
149 acc.setPrivateTools(CompFactory.ISF.EnergyParticleOrderingTool(name, **kwargs))
150 return acc
151
152
153def ParticleKillerToolCfg(flags, name="ISF_ParticleKillerTool", **kwargs):
154 acc = ComponentAccumulator()
155 acc.setPrivateTools(CompFactory.ISF.ParticleKillerSimTool(name, **kwargs))
156 return acc
MC15EntryLayerFilterCfg(flags, name="ISF_MC15EntryLayerFilter", **kwargs)
ValidationEntryLayerFilterCfg(flags, name="ISF_ValidationEntryLayerFilter", **kwargs)
MC18LLPEntryLayerFilterCfg(flags, name="ISF_MC18LLPEntryLayerFilter", **kwargs)
MC16LLPEntryLayerFilterCfg(flags, name="ISF_MC16LLPEntryLayerFilter", **kwargs)
ParticleHelperCfg(flags, name="ISF_ParticleHelper", **kwargs)
StoppedParticleEventFilterToolCfg(flags, name="ISF_StoppedParticleFilter", **kwargs)
ParticleKillerToolCfg(flags, name="ISF_ParticleKillerTool", **kwargs)
MC15aEntryLayerFilterCfg(flags, name="ISF_MC15aEntryLayerFilter", **kwargs)
MC15aPlusLLPEntryLayerFilterCfg(flags, name="ISF_MC15aPlusLLPEntryLayerFilter", **kwargs)
MemoryMonitorToolCfg(flags, name="ISF_MemoryMonitor", **kwargs)
EntryLayerFilterCfg(flags, **kwargs)
MC12LLPEntryLayerFilterCfg(flags, name="ISF_MC12LLPEntryLayerFilter", **kwargs)
MC12EntryLayerFilterCfg(flags, name="ISF_MC12EntryLayerFilter", **kwargs)
ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs)
MC16EntryLayerFilterCfg(flags, name="ISF_MC16EntryLayerFilter", **kwargs)
MC12PlusEntryLayerFilterCfg(flags, name="ISF_MC12PlusEntryLayerFilter", **kwargs)
MC18EntryLayerFilterCfg(flags, name="ISF_MC18EntryLayerFilter", **kwargs)
CosmicEventFilterToolCfg(flags, name="ISF_CosmicEventFilter", **kwargs)
InToOutSubDetOrderingToolCfg(flags, name="ISF_InToOutSubDetOrderingTool", **kwargs)
EnergyParticleOrderingToolCfg(flags, name="ISF_EnergyParticleOrderingTool", **kwargs)
MC15aPlusEntryLayerFilterCfg(flags, name="ISF_MC15aPlusEntryLayerFilter", **kwargs)