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

Functions

 TrackingGeoCfg (inputFlags)
 CaloGeoAndNoiseCfg (inputFlags)
 PFTrackExtensionCfg (flags, tracktype, tracksin)
 MuonCaloTagCfg (flags, tracktype, tracksin, extcache, cellsin)
 MuonIsoTagCfg (flags, tracktype, tracksin, verticesin, extcache, clustersin)
 HLTPFTrackSelectorCfg (inputFlags, tracktype, tracksin, verticesin, clustersin, cellsin=None)
 getHLTPFMomentCalculatorTool (inputFlags)
 PFCfg (inputFlags, tracktype="", clustersin=None, calclustersin=None, tracksin=None, verticesin=None, cellsin=None)

Variables

 cfgFlags = initConfigFlags()
 Files
 addClusterMoments
 useClusterMoments
 Dynamic
 cfg = MainServicesCfg(cfgFlags)
 tccfg = CaloTopoClusterCfg(cfgFlags)
 tcalg = tccfg.getPrimary()
 ClustersOutputName
 sequenceName
list outputlist
 histSvc = CompFactory.THistSvc(Output = ["EXPERT DATAFILE='expert-monitoring.root', OPT='RECREATE'"])
 Dump

Function Documentation

◆ CaloGeoAndNoiseCfg()

PFHLTConfig.CaloGeoAndNoiseCfg ( inputFlags)

Definition at line 20 of file PFHLTConfig.py.

20def CaloGeoAndNoiseCfg(inputFlags):
21 result = ComponentAccumulator()
22 from LArGeoAlgsNV.LArGMConfig import LArGMCfg
23 from TileGeoModel.TileGMConfig import TileGMCfg
24
25 result.merge(LArGMCfg(inputFlags))
26 result.merge(TileGMCfg(inputFlags))
27
28 from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
29 # Schedule total noise cond alg
30 result.merge(CaloNoiseCondAlgCfg(inputFlags,"totalNoise"))
31
32 return result
33

◆ getHLTPFMomentCalculatorTool()

PFHLTConfig.getHLTPFMomentCalculatorTool ( inputFlags)

Definition at line 204 of file PFHLTConfig.py.

204def getHLTPFMomentCalculatorTool(inputFlags):
205 result = ComponentAccumulator()
206 from eflowRec.PFCfg import getPFMomentCalculatorTool
207
208 if inputFlags.PF.useClusterMoments:
209 MomentsNames = [
210 "FIRST_PHI"
211 ,"FIRST_ETA"
212 ,"SECOND_R"
213 ,"SECOND_LAMBDA"
214 ,"DELTA_PHI"
215 ,"DELTA_THETA"
216 ,"DELTA_ALPHA"
217 ,"CENTER_X"
218 ,"CENTER_Y"
219 ,"CENTER_Z"
220 ,"CENTER_MAG"
221 ,"CENTER_LAMBDA"
222 ,"LATERAL"
223 ,"LONGITUDINAL"
224 ,"FIRST_ENG_DENS"
225 ,"ENG_FRAC_EM"
226 ,"ENG_FRAC_MAX"
227 ,"ENG_FRAC_CORE"
228 ,"FIRST_ENG_DENS"
229 ,"SECOND_ENG_DENS"
230 ,"ISOLATION"
231 ,"EM_PROBABILITY"
232 ,"ENG_POS"
233 ,"ENG_BAD_CELLS"
234 ,"N_BAD_CELLS"
235 ,"BADLARQ_FRAC"
236 ,"AVG_LAR_Q"
237 ,"AVG_TILE_Q"
238 ,"SIGNIFICANCE"
239 ]
240 else:
241 MomentsNames = ["CENTER_MAG"]
242 PFMomentCalculatorTool = result.popToolsAndMerge(getPFMomentCalculatorTool(inputFlags,MomentsNames))
243 result.setPrivateTools(PFMomentCalculatorTool)
244 return result
245

◆ HLTPFTrackSelectorCfg()

PFHLTConfig.HLTPFTrackSelectorCfg ( inputFlags,
tracktype,
tracksin,
verticesin,
clustersin,
cellsin = None )

Definition at line 147 of file PFHLTConfig.py.

147def HLTPFTrackSelectorCfg(inputFlags,tracktype,tracksin,verticesin,clustersin,cellsin=None):
148 result = ComponentAccumulator()
149
150 muon_mode = inputFlags.Trigger.FSHad.PFOMuonRemoval
151 if muon_mode == "None":
152 tracks = tracksin
153 extension_cache=""
154 else:
155 ext_acc, pretracks, extension_cache = PFTrackExtensionCfg(
156 inputFlags, tracktype, tracksin
157 )
158 result.merge(ext_acc)
159 if muon_mode == "Calo":
160 if cellsin is None:
161 raise ValueError("Cells must be provided for the 'Calo' muon mode!")
162 tag_acc, tracks = MuonCaloTagCfg(
163 inputFlags, tracktype, pretracks, extension_cache, cellsin
164 )
165 elif muon_mode == "Iso":
166 tag_acc, tracks = MuonIsoTagCfg(
167 inputFlags, tracktype, pretracks, verticesin, extension_cache, clustersin
168 )
169 else:
170 raise ValueError(f"Invalid muon removal mode '{muon_mode}'")
171 result.merge(tag_acc)
172
173 from InDetConfig.InDetTrackSelectionToolConfig import PFTrackSelectionToolCfg
174 from TrackToCalo.TrackToCaloConfig import HLTPF_ParticleCaloExtensionToolCfg
175
176
177 from eflowRec import PFOnlineMon
178 monTool_extrapolator = PFOnlineMon.getMonTool_eflowTrackCaloExtensionTool(inputFlags)
179 monTool_extrapolator.HistPath = 'TrackExtrapolator'
180
181 result.addEventAlgo(
182 CompFactory.PFTrackSelector(
183 f"PFTrackSelector_{tracktype}",
184 trackExtrapolatorTool = CompFactory.eflowTrackCaloExtensionTool(
185 "HLTPF_eflowTrkCaloExt",
186 TrackCaloExtensionTool=result.popToolsAndMerge(
187 HLTPF_ParticleCaloExtensionToolCfg(inputFlags)),
188 PFParticleCache = extension_cache,
189 MonTool_TrackCaloExtension = monTool_extrapolator
190 ),
191 trackSelectionTool = result.popToolsAndMerge(PFTrackSelectionToolCfg(inputFlags)),
192 electronsName="",
193 muonsName="",
194 tracksName=tracks,
195 VertexContainer=verticesin,
196 eflowRecTracksOutputName=f"eflowRecTracks_{tracktype}",
197 MonTool = PFOnlineMon.getMonTool_PFTrackSelector(inputFlags),
198 ),
199 primary=True,
200 )
201
202 return result
203
getMonTool_PFTrackSelector(flags)
getMonTool_eflowTrackCaloExtensionTool(flags)
Definition PFOnlineMon.py:3

◆ MuonCaloTagCfg()

PFHLTConfig.MuonCaloTagCfg ( flags,
tracktype,
tracksin,
extcache,
cellsin )
 Create the muon calo tagging configuration

Return the component accumulator and the tracks with muons removed

Definition at line 66 of file PFHLTConfig.py.

66def MuonCaloTagCfg(flags, tracktype, tracksin, extcache, cellsin):
67 """ Create the muon calo tagging configuration
68
69 Return the component accumulator and the tracks with muons removed
70 """
71 from TrkConfig.AtlasExtrapolatorConfig import TrigPFlowExtrapolatorCfg
72 result = ComponentAccumulator()
73 extrapolator = result.popToolsAndMerge(TrigPFlowExtrapolatorCfg(flags))
74 output_tracks = f"PFMuonCaloTagTracks_{tracktype}"
75
76 from TrackToCalo.TrackToCaloConfig import (
77 HLTPF_ParticleCaloExtensionToolCfg,
78 HLTPF_ParticleCaloCellAssociationToolCfg)
79
80 caloext = result.popToolsAndMerge(HLTPF_ParticleCaloExtensionToolCfg(flags))
81 calocellassoc = result.popToolsAndMerge(HLTPF_ParticleCaloCellAssociationToolCfg(
82 flags,
83 ParticleCaloExtensionTool=caloext,
84 CaloCellContainer="",
85 ))
86
87 result.addEventAlgo(
88 CompFactory.PFTrackMuonCaloTaggingAlg(
89 f"PFTrackMuonCaloTaggingAlg_{tracktype}",
90 InputTracks = tracksin,
91 InputCaloExtension = extcache,
92 InputCells = cellsin,
93 OutputTracks = output_tracks,
94 MinPt = flags.Trigger.FSHad.PFOMuonRemovalMinPt,
95 MuonScoreTool = CompFactory.CaloMuonScoreTool(
96 CaloMuonEtaCut=3,
97 ParticleCaloCellAssociationTool = calocellassoc
98 ),
99 LooseTagTool=CompFactory.CaloMuonTag("LooseCaloMuonTag", TagMode="Loose"),
100 TightTagTool=CompFactory.CaloMuonTag("TightCaloMuonTag", TagMode="Tight"),
101 DepositInCaloTool=CompFactory.TrackDepositInCaloTool(
102 ExtrapolatorHandle=extrapolator,
103 ParticleCaloCellAssociationTool = calocellassoc,
104 ParticleCaloExtensionTool = caloext
105 )
106 ),
107 primary=True,
108 )
109 return result, output_tracks
110

◆ MuonIsoTagCfg()

PFHLTConfig.MuonIsoTagCfg ( flags,
tracktype,
tracksin,
verticesin,
extcache,
clustersin )
 Create the muon iso tagging configuration

Return the component accumulator and the tracks with muons removed

Definition at line 111 of file PFHLTConfig.py.

111def MuonIsoTagCfg(flags, tracktype, tracksin, verticesin, extcache, clustersin):
112 """ Create the muon iso tagging configuration
113
114 Return the component accumulator and the tracks with muons removed
115 """
116 result = ComponentAccumulator()
117 output_tracks = f"PFMuonIsoTagTracks_{tracktype}"
118
119 from TrackToCalo.TrackToCaloConfig import HLTPF_ParticleCaloExtensionToolCfg
120
121 result.addEventAlgo(
122 CompFactory.PFTrackMuonIsoTaggingAlg(
123 f"PFTrackMuonIsoTaggingalg_{tracktype}",
124 InputTracks = tracksin,
125 InputClusters = clustersin,
126 InputVertices = verticesin,
127 OutputTracks = output_tracks,
128 MinPt = flags.Trigger.FSHad.PFOMuonRemovalMinPt,
129 TrackIsoTool = CompFactory.xAOD.TrackIsolationTool(
130 TrackParticleLocation=tracksin,
131 VertexLocation="",
132 ),
133 CaloIsoTool = CompFactory.xAOD.CaloIsolationTool(
134 ParticleCaloExtensionTool=result.popToolsAndMerge(
135 HLTPF_ParticleCaloExtensionToolCfg(flags)),
136 InputCaloExtension=extcache,
137 ParticleCaloCellAssociationTool="",
138 saveOnlyRequestedCorrections=True,
139 )
140 ),
141 primary=True,
142 )
143 return result, output_tracks
144
145#---------------------------------------------------------------------------------#
146# PFlow track selection

◆ PFCfg()

PFHLTConfig.PFCfg ( inputFlags,
tracktype = "",
clustersin = None,
calclustersin = None,
tracksin = None,
verticesin = None,
cellsin = None )

Definition at line 246 of file PFHLTConfig.py.

246def PFCfg(inputFlags, tracktype="", clustersin=None, calclustersin=None, tracksin=None, verticesin=None, cellsin=None):
247
248 result=ComponentAccumulator()
249 seqname = f'HLTPFlow_{tracktype}'
250 result.addSequence(parOR(seqname))
251
252 # Set defaults for the inputs
253 if clustersin is None:
254 clustersin=inputFlags.eflowRec.RawClusterColl
255 if calclustersin is None:
256 calclustersin=inputFlags.eflowRec.CalClusterColl
257 if tracksin is None:
258 tracksin = inputFlags.eflowRec.TrackColl
259 if verticesin is None:
260 verticesin = inputFlags.eflowRec.VertexColl
261
262 result.merge(TrackingGeoCfg(inputFlags))
263 calogeocfg = CaloGeoAndNoiseCfg(inputFlags)
264 result.merge(calogeocfg)
265
266 selcfg = HLTPFTrackSelectorCfg(inputFlags, tracktype, tracksin, verticesin, clustersin, cellsin)
267 PFTrackSelector = selcfg.getPrimary()
268
269 # Add monitoring tool
270 monTool = PFOnlineMon.getMonTool_PFTrackSelector(inputFlags)
271 PFTrackSelector.MonTool = monTool
272
273 result.merge( selcfg, seqname )
274
275 #---------------------------------------------------------------------------------#
276 # PFlowAlgorithm -- subtraction steps
277
278
279 from eflowRec.PFCfg import getPFClusterSelectorTool
280 from eflowRec.PFCfg import getPFCellLevelSubtractionTool,getPFRecoverSplitShowersTool
281
282 PFTrackClusterMatchingTool_1 = CompFactory.PFTrackClusterMatchingTool("CalObjBldMatchingTool")
283 monTool_matching = PFOnlineMon.getMonTool_PFTrackClusterMatching(inputFlags)
284 monTool_matching.HistPath = 'PFTrackClusterMatchingTool_1'
285 PFTrackClusterMatchingTool_1.MonTool_ClusterMatching = monTool_matching
286
287 cellSubtractionTool = getPFCellLevelSubtractionTool(
288 inputFlags,
289 "PFCellLevelSubtractionTool",
290 )
291 cellSubtractionTool.PFTrackClusterMatchingTool=PFTrackClusterMatchingTool_1
292
293 recoverSplitShowersTool = getPFRecoverSplitShowersTool(
294 inputFlags,
295 "PFRecoverSplitShowersTool",
296 )
297 recoverSplitShowersTool.PFTrackClusterMatchingTool = PFTrackClusterMatchingTool_1
298
299 result.addEventAlgo(
300 CompFactory.PFAlgorithm(
301 f"PFAlgorithm_{tracktype}",
302 PFClusterSelectorTool = getPFClusterSelectorTool(
303 inputFlags,
304 clustersin,
305 calclustersin,
306 "PFClusterSelectorTool",
307 ),
308 SubtractionToolList = [
309 cellSubtractionTool,
310 recoverSplitShowersTool,
311 ],
312 BaseToolList = [
313 result.popToolsAndMerge(getHLTPFMomentCalculatorTool(inputFlags)),
314 ],
315 MonTool = PFOnlineMon.getMonTool_PFAlgorithm(inputFlags),
316 eflowRecTracksInputName = PFTrackSelector.eflowRecTracksOutputName,
317 eflowRecClustersOutputName = f"eflowRecClusters_{tracktype}",
318 PFCaloClustersOutputName = f"PFCaloCluster_{tracktype}",
319 eflowCaloObjectsOutputName = f"eflowCaloObjects_{tracktype}",
320 ),
321 seqname
322 )
323
324 #---------------------------------------------------------------------------------#
325 # PFO creators here
326
327 chargedPFOArgs = dict(
328 inputFlags=inputFlags,
329 nameSuffix=f"_{tracktype}",
330 chargedFlowElementOutputName=f"HLT_{tracktype}ChargedParticleFlowObjects",
331 eflowCaloObjectContainerName=f"eflowCaloObjects_{tracktype}"
332 )
333 neutralPFOArgs = dict(
334 inputFlags=inputFlags,
335 nameSuffix=f"_{tracktype}",
336 neutralFlowElementOutputName=f"HLT_{tracktype}NeutralParticleFlowObjects",
337 eflowCaloObjectContainerName=f"eflowCaloObjects_{tracktype}"
338 )
339 from eflowRec.PFCfg import getChargedFlowElementCreatorAlgorithm,getNeutralFlowElementCreatorAlgorithm
340 result.addEventAlgo(getNeutralFlowElementCreatorAlgorithm(**neutralPFOArgs), seqname)
341 result.addEventAlgo(getChargedFlowElementCreatorAlgorithm(**chargedPFOArgs), seqname)
342
343
344 return result
345
Definition PFCfg.py:1
getMonTool_PFAlgorithm(flags)
getMonTool_PFTrackClusterMatching(flags)

◆ PFTrackExtensionCfg()

PFHLTConfig.PFTrackExtensionCfg ( flags,
tracktype,
tracksin )
 Get the track-to-calo extension after a preselection

Returns the component accumulator, the preselected track collection and the extension cache

Definition at line 34 of file PFHLTConfig.py.

34def PFTrackExtensionCfg(flags, tracktype, tracksin):
35 """ Get the track-to-calo extension after a preselection
36
37 Returns the component accumulator, the preselected track collection and the extension cache
38 """
39 result = ComponentAccumulator()
40 pretracks_name = f"HLTPFPreselTracks_{tracktype}"
41 cache_name = f"HLTPFTrackExtensionCache_{tracktype}"
42
43 from InDetConfig.InDetTrackSelectionToolConfig import PFTrackSelectionToolCfg
44 result.addEventAlgo(CompFactory.PFTrackPreselAlg(
45 f"HLTPFTrackPresel_{tracktype}",
46 InputTracks=tracksin,
47 OutputTracks=pretracks_name,
48 TrackSelTool=result.popToolsAndMerge(PFTrackSelectionToolCfg(flags))
49 ))
50
51
52 monTool_trackExtrap = PFOnlineMon.getMonTool_ParticleCaloExtensionTool(flags)
53 monTool_trackExtrap.HistPath = 'TrackCaloExtrapolation_general'
54
55 from TrackToCalo.TrackToCaloConfig import HLTPF_ParticleCaloExtensionToolCfg
56 result.addEventAlgo(CompFactory.Trk.PreselCaloExtensionBuilderAlg(
57 f"HLTPFTrackExtension_{tracktype}",
58 ParticleCaloExtensionTool=result.popToolsAndMerge(
59 HLTPF_ParticleCaloExtensionToolCfg(flags, MonTool=monTool_trackExtrap)),
60 InputTracks=pretracks_name,
61 OutputCache=cache_name,
62 ))
63
64 return result, pretracks_name, cache_name
65
getMonTool_ParticleCaloExtensionTool(flags)

◆ TrackingGeoCfg()

PFHLTConfig.TrackingGeoCfg ( inputFlags)

Definition at line 10 of file PFHLTConfig.py.

10def TrackingGeoCfg(inputFlags):
11 result = ComponentAccumulator()
12
13 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
14 result.merge(AtlasFieldCacheCondAlgCfg(inputFlags))
15
16 return result
17
18#---------------------------------------------------------------------------------#
19# Calo geometry & conditions

Variable Documentation

◆ addClusterMoments

PFHLTConfig.addClusterMoments

Definition at line 359 of file PFHLTConfig.py.

◆ cfg

PFHLTConfig.cfg = MainServicesCfg(cfgFlags)

Definition at line 369 of file PFHLTConfig.py.

◆ cfgFlags

PFHLTConfig.cfgFlags = initConfigFlags()

Definition at line 349 of file PFHLTConfig.py.

◆ ClustersOutputName

PFHLTConfig.ClustersOutputName

Definition at line 374 of file PFHLTConfig.py.

◆ Dump

PFHLTConfig.Dump

Definition at line 399 of file PFHLTConfig.py.

◆ Dynamic

PFHLTConfig.Dynamic

Definition at line 364 of file PFHLTConfig.py.

◆ Files

PFHLTConfig.Files

Definition at line 351 of file PFHLTConfig.py.

◆ histSvc

PFHLTConfig.histSvc = CompFactory.THistSvc(Output = ["EXPERT DATAFILE='expert-monitoring.root', OPT='RECREATE'"])

Definition at line 396 of file PFHLTConfig.py.

◆ outputlist

list PFHLTConfig.outputlist
Initial value:
1= [
2 "xAOD::CaloClusterContainer#CaloCalTopoClusters*",
3 "xAOD::CaloClusterAuxContainer#*CaloCalTopoClusters*Aux.",
4 "xAOD::PFOContainer#*ParticleFlowObjects",
5 "xAOD::PFOAuxContainer#*ParticleFlowObjectsAux."
6 ]

Definition at line 385 of file PFHLTConfig.py.

◆ sequenceName

PFHLTConfig.sequenceName

Definition at line 376 of file PFHLTConfig.py.

◆ tcalg

PFHLTConfig.tcalg = tccfg.getPrimary()

Definition at line 373 of file PFHLTConfig.py.

◆ tccfg

PFHLTConfig.tccfg = CaloTopoClusterCfg(cfgFlags)

Definition at line 372 of file PFHLTConfig.py.

◆ useClusterMoments

PFHLTConfig.useClusterMoments

Definition at line 360 of file PFHLTConfig.py.