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.MSLLPValidation: MSLLPValidationEntryLayerFilterCfg,
39 # TruthStrategy.PhysicsProcess: PhysicsProcessTruthServiceCfg,
40 # TruthStrategy.Global: GlobalTruthServiceCfg,
41 TruthStrategy.Cosmic: CosmicEventFilterToolCfg,
42 }
43 MCxCfg = stratmap[flags.Sim.TruthStrategy]
44 return MCxCfg(flags, **kwargs)
45
46
47def MC12EntryLayerFilterCfg(flags, name="ISF_MC12EntryLayerFilter", **kwargs):
48 acc = ComponentAccumulator()
49 acc.setPrivateTools(CompFactory.ISF.EntryLayerFilter(name, **kwargs))
50 return acc
51
52
53def MC12LLPEntryLayerFilterCfg(flags, name="ISF_MC12LLPEntryLayerFilter", **kwargs):
54 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
55
56
57def MC12PlusEntryLayerFilterCfg(flags, name="ISF_MC12PlusEntryLayerFilter", **kwargs):
58 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
59
60
61def MC15EntryLayerFilterCfg(flags, name="ISF_MC15EntryLayerFilter", **kwargs):
62 acc = ComponentAccumulator()
63 kwargs.setdefault("MinEkinCharged", 100.*MeV)
64 kwargs.setdefault("MinEkinNeutral", -1.)
65 acc.setPrivateTools(CompFactory.ISF.EntryLayerFilter(name, **kwargs))
66 return acc
67
68
69def MC15aEntryLayerFilterCfg(flags, name="ISF_MC15aEntryLayerFilter", **kwargs):
70 return MC15EntryLayerFilterCfg(flags, name, **kwargs)
71
72
73def MC15aPlusEntryLayerFilterCfg(flags, name="ISF_MC15aPlusEntryLayerFilter", **kwargs):
74 return MC15EntryLayerFilterCfg(flags, name, **kwargs)
75
76
77def MC15aPlusLLPEntryLayerFilterCfg(flags, name="ISF_MC15aPlusLLPEntryLayerFilter", **kwargs):
78 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
79
80
81def MC16EntryLayerFilterCfg(flags, name="ISF_MC16EntryLayerFilter", **kwargs):
82 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
83
84
85def MC16LLPEntryLayerFilterCfg(flags, name="ISF_MC16LLPEntryLayerFilter", **kwargs):
86 return MC15aPlusLLPEntryLayerFilterCfg(flags, name, **kwargs)
87
88
89def MC18EntryLayerFilterCfg(flags, name="ISF_MC18EntryLayerFilter", **kwargs):
90 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
91
92
93def MC18LLPEntryLayerFilterCfg(flags, name="ISF_MC18LLPEntryLayerFilter", **kwargs):
94 return MC15aPlusLLPEntryLayerFilterCfg(flags, name, **kwargs)
95
96
97def ValidationEntryLayerFilterCfg(flags, name="ISF_ValidationEntryLayerFilter", **kwargs):
98 return MC12EntryLayerFilterCfg(flags, name, **kwargs)
99
100
101def MSLLPValidationEntryLayerFilterCfg(flags, name="ISF_MSLLPValidationEntryLayerFilter", **kwargs):
102 return MC15aPlusEntryLayerFilterCfg(flags, name, **kwargs)
103
104
105def CosmicEventFilterToolCfg(flags, name="ISF_CosmicEventFilter", **kwargs):
106 from G4CosmicFilter.G4CosmicFilterConfig import configCosmicFilterVolumeNames
107 acc = ComponentAccumulator()
108 volumeNames = configCosmicFilterVolumeNames(flags)
109 kwargs.setdefault("UseAndFilter", len(volumeNames)<3 )
110 kwargs.setdefault("VolumeNames", volumeNames)
111 if flags.Sim.CosmicFilterID:
112 kwargs.setdefault("PDG_ID", flags.Sim.CosmicFilterID)
113 if flags.Sim.CosmicFilterPTmin:
114 kwargs.setdefault("ptMin", flags.Sim.CosmicFilterPTmin)
115 if flags.Sim.CosmicFilterPTmax:
116 kwargs.setdefault("ptMax", flags.Sim.CosmicFilterPTmax)
117 acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs))
118 return acc
119
120
121def StoppedParticleEventFilterToolCfg(flags, name="ISF_StoppedParticleFilter", **kwargs):
122 # Possibly obsolete, was previously added to the SimKernel.EventFilterTools ToolHandleArray
123 kwargs.setdefault("VolumeNames", ["StoppingPositions"])
124 acc = ComponentAccumulator()
125 acc.setPrivateTools(CompFactory.ISF.CosmicEventFilterTool(name, **kwargs))
126 return acc
127
128
129def InToOutSubDetOrderingToolCfg(flags, name="ISF_InToOutSubDetOrderingTool", **kwargs):
130 # higher ordered particles will be simulated first
131 kwargs.setdefault("OrderID" , 100000000)
132 kwargs.setdefault("OrderBeamPipe", 1000000 )
133 kwargs.setdefault("OrderCalo" , 10000 )
134 kwargs.setdefault("OrderMS" , 100 )
135 kwargs.setdefault("OrderCavern" , 1 )
136 acc = ComponentAccumulator()
137 acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs))
138 return acc
139
140
141def ParticleOrderingToolCfg(flags, name="ISF_ParticleOrderingTool", **kwargs):
142 kwargs.setdefault("OrderID" , 1)
143 kwargs.setdefault("OrderBeamPipe", 1)
144 kwargs.setdefault("OrderCalo" , 1)
145 kwargs.setdefault("OrderMS" , 1)
146 kwargs.setdefault("OrderCavern" , 1)
147 acc = ComponentAccumulator()
148 acc.setPrivateTools(CompFactory.ISF.GenericParticleOrderingTool(name, **kwargs))
149 return acc
150
151
152def EnergyParticleOrderingToolCfg(flags, name="ISF_EnergyParticleOrderingTool", **kwargs):
153 acc = ComponentAccumulator()
154 acc.setPrivateTools(CompFactory.ISF.EnergyParticleOrderingTool(name, **kwargs))
155 return acc
156
157
158def ParticleKillerToolCfg(flags, name="ISF_ParticleKillerTool", **kwargs):
159 acc = ComponentAccumulator()
160 acc.setPrivateTools(CompFactory.ISF.ParticleKillerSimTool(name, **kwargs))
161 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)
MSLLPValidationEntryLayerFilterCfg(flags, name="ISF_MSLLPValidationEntryLayerFilter", **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)