ATLAS Offline Software
Loading...
Searching...
No Matches
HLTSeedingConfig.py
Go to the documentation of this file.
2# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3#
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from AthenaCommon.Logging import logging
8from TrigEDMConfig.TriggerEDM import recordable
9
10import math
11
12log = logging.getLogger('HLTSeedingConfig')
13
14_mapL1ThresholdToDecisionCollection = {
15 # Full-scan
16 "FSNOSEED": "HLTNav_L1FSNOSEED",
17 # Muon
18 "MU" : "HLTNav_L1MU",
19 "PROBEMU" : "HLTNav_L1PROBEMU",
20 # Phase-1 L1Calo
21 "eEM": "HLTNav_L1eEM",
22 "eTAU": "HLTNav_L1eTAU",
23 "jEM": "HLTNav_L1jEM",
24 "jTAU": "HLTNav_L1jTAU",
25 "cTAU": "HLTNav_L1cTAU",
26 "jJ": "HLTNav_L1jJ",
27 "jLJ": "HLTNav_L1jLJ",
28 "gJ": "HLTNav_L1gJ",
29 "gLJ": "HLTNav_L1gLJ",
30 "PROBEeEM" : "HLTNav_L1PROBEeEM",
31 "PROBEjEM" : "HLTNav_L1PROBEjEM",
32 "PROBEeTAU" : "HLTNav_L1PROBEeTAU",
33 "PROBEjTAU" : "HLTNav_L1PROBEjTAU",
34 "PROBEcTAU" : "HLTNav_L1PROBEcTAU",
35 # Run-2 L1Calo
36 "EM" : "HLTNav_L1EM",
37 "J" : "HLTNav_L1J",
38 "TAU": "HLTNav_L1TAU",
39 "XE" : "HLTNav_L1MET",
40 "XS" : "HLTNav_L1MET",
41 "TE" : "HLTNav_L1MET",
42 "PROBEEM" : "HLTNav_L1PROBEEM",
43 "PROBETAU" : "HLTNav_L1PROBETAU",
44}
45
46_mapL1ThresholdToRoICollection = {
47 # Full-scan
48 "FSNOSEED": "HLT_FSRoI",
49 # Muon
50 "MU" : "HLT_MURoIs",
51 "PROBEMU" : "HLT_MURoIs",
52 # Phase-1 L1Calo
53 "eEM": "HLT_eEMRoIs",
54 "eTAU": "HLT_eTAURoIs",
55 "jEM": "HLT_jEMRoIs",
56 "jTAU": "HLT_jTAURoIs",
57 "cTAU": "HLT_cTAURoIs",
58 "jJ": "HLT_jJRoIs",
59 "jLJ": "HLT_jLJRoIs",
60 "gJ": "HLT_gJRoIs",
61 "gLJ": "HLT_gLJRoIs",
62 "PROBEeEM" : "HLT_eEMRoIs",
63 "PROBEeTAU": "HLT_eTAURoIs",
64 "PROBEjEM": "HLT_jEMRoIs",
65 "PROBEjTAU": "HLT_jTAURoIs",
66 "PROBEcTAU": "HLT_cTAURoIs",
67 # Run-2 L1Calo
68 "EM" : "HLT_EMRoIs",
69 "J" : "HLT_JETRoI",
70 "TAU": "HLT_TAURoI",
71 "XE" : "HLT_FSRoI",
72 "XS" : "HLT_FSRoI",
73 "TE" : "HLT_FSRoI",
74 "PROBEEM" : "HLT_EMRoIs",
75 "PROBETAU" : "HLT_TAURoI",
76}
77
78
80 """
81 Translates L1 threshold name of the DecisionsContainer name in the HLTSeeding unpacking tools
82 """
83 # remove actual threshold value from L1 threshold string
84 for (thresholdType, l1Collection) in _mapL1ThresholdToDecisionCollection.items():
85 if threshold.startswith( thresholdType ):
86 return l1Collection
87
88 log.error("Threshold \""+ threshold + "\" not mapped to any Decision collection! Available are: " + str(_mapL1ThresholdToDecisionCollection.values()))
89
90
92 """
93 Translates L1 threshold name of the RoIDescriptor name in the HLTSeeding unpacking tools
94 """
95 # remove actual threshold value from L1 threshold string
96 for (thresholdType, l1Collection) in _mapL1ThresholdToRoICollection.items():
97 if threshold.startswith( thresholdType ):
98 return l1Collection
99
100 log.error("Threshold \""+ threshold + "\" not mapped to any ROI collection! Available are: " + str(_mapL1ThresholdToRoICollection.values()))
101
102
104 from HLTSeeding.HLTSeedingMonitoring import RoIsUnpackingMonitoring
105 emUnpacker = CompFactory.EMRoIsUnpackingTool(Decisions = mapThresholdToL1DecisionCollection("EM"),
106 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEEM"),
107 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("EM")),
108 MonTool = RoIsUnpackingMonitoring( flags, prefix="EM", maxCount=30, etaOffset=0.05, phiOffset=math.pi/64., maxEta=2.5 ))
109
110 metUnpacker = CompFactory.METRoIsUnpackingTool(Decisions = mapThresholdToL1DecisionCollection("XE"))
111
112
113 tauUnpacker = CompFactory.TAURoIsUnpackingTool(Decisions = mapThresholdToL1DecisionCollection("TAU"),
114 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBETAU"),
115 OutputTrigRoIs = recordable("HLT_TAURoI"))
116
117 tauUnpacker.MonTool = RoIsUnpackingMonitoring( flags, prefix="TAU", maxCount=30, etaOffset=0.05, phiOffset=math.pi/64., maxEta=2.5 )
118
119 jUnpacker = CompFactory.JRoIsUnpackingTool(Decisions = mapThresholdToL1DecisionCollection("J"),
120 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("J")) )
121
122 jUnpacker.MonTool = RoIsUnpackingMonitoring( flags, prefix="J", maxCount=30, maxEta=5 )
123
124 return [emUnpacker, metUnpacker, tauUnpacker, jUnpacker ]
125
127 from HLTSeeding.HLTSeedingMonitoring import RoIsUnpackingMonitoring
128 tools = []
129
130 if flags.Trigger.L1.doeFex:
131 maxRoICount_eFex = 150 # used for histogram range, 144 is the hardware limit
132 eFexEMUnpacker = CompFactory.eFexEMRoIsUnpackingTool(
133 Decisions = mapThresholdToL1DecisionCollection("eEM"),
134 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEeEM"),
135 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("eEM")),
136 RoIHalfWidthEta = 0.2,
137 RoIHalfWidthPhi = 0.2,
138 MonTool = RoIsUnpackingMonitoring(flags, prefix="eEM", maxCount=maxRoICount_eFex, maxEta=2.5))
139 eFexTauUnpacker = CompFactory.eFexTauRoIsUnpackingTool(
140 Decisions = mapThresholdToL1DecisionCollection("eTAU"),
141 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEeTAU"),
142 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("eTAU")),
143 RoIHalfWidthEta = 0.4,
144 RoIHalfWidthPhi = math.pi/8,
145 MonTool = RoIsUnpackingMonitoring(flags, prefix="eTAU", maxCount=maxRoICount_eFex, maxEta=2.5))
146 tools += [eFexEMUnpacker, eFexTauUnpacker]
147
148 if flags.Trigger.L1.dojFex:
149 maxRoICount_jFex = 200 # used for histogram range
150 jFexEMUnpacker = CompFactory.jFexFwdElRoIsUnpackingTool(
151 Decisions = mapThresholdToL1DecisionCollection("jEM"),
152 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEjEM"),
153 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("jEM")),
154 RoIHalfWidthEta = 0.4,
155 RoIHalfWidthPhi = math.pi/8,
156 MonTool = RoIsUnpackingMonitoring(flags, prefix="jEM", maxCount=maxRoICount_jFex))
157 jFexTauUnpacker = CompFactory.jFexTauRoIsUnpackingTool(
158 Decisions = mapThresholdToL1DecisionCollection("jTAU"),
159 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEjTAU"),
160 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("jTAU")),
161 RoIHalfWidthEta = 0.4,
162 RoIHalfWidthPhi = math.pi/8,
163 MonTool = RoIsUnpackingMonitoring(flags, prefix="jTAU", maxCount=maxRoICount_jFex))
164 jFexSRJetUnpacker = CompFactory.jFexSRJetRoIsUnpackingTool(
165 Decisions = mapThresholdToL1DecisionCollection("jJ"),
166 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("jJ")),
167 RoIHalfWidthEta = 0.1,
168 RoIHalfWidthPhi = 0.1,
169 MonTool = RoIsUnpackingMonitoring(flags, prefix="jJ", maxCount=maxRoICount_jFex, maxEta=5))
170 jFexLRJetUnpacker = CompFactory.jFexLRJetRoIsUnpackingTool(
171 Decisions = mapThresholdToL1DecisionCollection("jLJ"),
172 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("jLJ")),
173 RoIHalfWidthEta = 0.1,
174 RoIHalfWidthPhi = 0.1,
175 MonTool = RoIsUnpackingMonitoring(flags, prefix="jLJ", maxCount=maxRoICount_jFex, maxEta=5))
176 tools += [jFexEMUnpacker, jFexTauUnpacker, jFexSRJetUnpacker, jFexLRJetUnpacker]
177
178 if flags.Trigger.L1.dogFex:
179 maxRoICount_gFex = 100 # used for histogram range
180 gFexSRJetUnpacker = CompFactory.gFexSRJetRoIsUnpackingTool(
181 Decisions = mapThresholdToL1DecisionCollection("gJ"),
182 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("gJ")),
183 RoIHalfWidthEta = 0.1,
184 RoIHalfWidthPhi = 0.1,
185 MonTool = RoIsUnpackingMonitoring(flags, prefix="gJ", maxCount=maxRoICount_gFex, maxEta=5))
186 gFexLRJetUnpacker = CompFactory.gFexLRJetRoIsUnpackingTool(
187 Decisions = mapThresholdToL1DecisionCollection("gLJ"),
188 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("gLJ")),
189 RoIHalfWidthEta = 0.1,
190 RoIHalfWidthPhi = 0.1,
191 MonTool = RoIsUnpackingMonitoring(flags, prefix="gLJ", maxCount=maxRoICount_gFex, maxEta=5))
192 tools += [gFexSRJetUnpacker, gFexLRJetUnpacker]
193
194 # Need both eFex and jFex for cTAU
195 if flags.Trigger.L1.doeFex and flags.Trigger.L1.dojFex:
196 maxRoICount_eFex = 150 # used for histogram range
197 cTauUnpacker = CompFactory.cTauRoIsUnpackingTool(
198 Decisions = mapThresholdToL1DecisionCollection("cTAU"),
199 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEcTAU"),
200 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("cTAU")),
201 RoIHalfWidthEta = 0.4,
202 RoIHalfWidthPhi = math.pi/8,
203 MonTool = RoIsUnpackingMonitoring(flags, prefix="cTAU", maxCount=maxRoICount_eFex))
204 tools += [cTauUnpacker]
205
206 return tools
207
209 from HLTSeeding.HLTSeedingMonitoring import RoIsUnpackingMonitoring
210 muUnpacker = CompFactory.MURoIsUnpackingTool(
211 Decisions = mapThresholdToL1DecisionCollection("MU"),
212 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEMU"),
213 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("MU")),
214 MonTool = RoIsUnpackingMonitoring(flags, prefix="MU", maxCount=20))
215
216 return [muUnpacker]
217
219 from HLTSeeding.HLTSeedingMonitoring import RoIsUnpackingMonitoring
220 muUnpacker = CompFactory.MuonRoIsUnpackingTool(
221 Decisions = mapThresholdToL1DecisionCollection("MU"),
222 DecisionsProbe = mapThresholdToL1DecisionCollection("PROBEMU"),
223 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("MU")),
224 RoIHalfWidthEta = 0.1,
225 RoIHalfWidthPhi = 0.1,
226 MonTool = RoIsUnpackingMonitoring(flags, prefix="MU", maxCount=20))
227 return [muUnpacker]
228
230 from HLTSeeding.HLTSeedingMonitoring import PrescalingMonitoring
231
232 prescaler = CompFactory.PrescalingTool(MonTool = PrescalingMonitoring(flags))
233 return prescaler
234
236 keyWriter = CompFactory.getComp('TrigConf::KeyWriterTool')('KeyWriterToolOnline')
237 keyWriter.ConfKeys = 'TrigConfKeysOnline'
238 keyWriter.IncludeL1PrescaleKey = False
239 keyWriter.IncludeBunchgroupKey = False
240 return keyWriter
241
243 acc = ComponentAccumulator()
244
245 # Reset properties to empty by default and fill based on flags below
246 l1trMaker = CompFactory.L1TriggerResultMaker(
247 MuRoIKeys = [],
248 eFexEMRoIKeys = [],
249 eFexTauRoIKeys = [],
250 jFexFwdElRoIKeys = [],
251 jFexTauRoIKeys = [],
252 jFexSRJetRoIKeys = [],
253 jFexLRJetRoIKeys = [],
254 gFexSRJetRoIKeys = [],
255 gFexLRJetRoIKeys = [],
256 cTauRoIKey = "",
257 cjTauLinkKey = "",
258 CTPKey = "",
259 ThresholdPatternTools = [] )
260
261 # CTPResult
262 if flags.Trigger.L1.doCTP and flags.Trigger.CTP.UseEDMxAOD:
263 l1trMaker.CTPKey = "CTPResult"
264
265 # Muon RoIs
266 if flags.Trigger.L1.doMuon and flags.Trigger.enableL1MuonPhase1:
267 l1trMaker.MuRoIKeys = ["LVL1MuonRoIs"]
268 from TrigT1MuctpiPhase1.TrigT1MuctpiPhase1Config import TrigThresholdDecisionToolCfg
269 l1trMaker.ThresholdPatternTools += [acc.popToolsAndMerge(TrigThresholdDecisionToolCfg(flags))]
270 elif flags.Trigger.L1.doMuon and flags.Trigger.enableL0Muon: # Run-4+
271 l1trMaker.MuRoIKey = "LVL1MuonRoIs"
272 l1trMaker.ThresholdPatternTools += [CompFactory.MURoIThresholdsTool()]
273
274 # L1Calo RoIs
275 if flags.Trigger.L1.doCalo and flags.Trigger.enableL1CaloPhase1:
276 if flags.Trigger.L1.doeFex:
277 l1trMaker.eFexEMRoIKeys = ["L1_eEMRoI"]
278 l1trMaker.eFexTauRoIKeys = ["L1_eTauRoI"]
279 l1trMaker.ThresholdPatternTools += [
280 CompFactory.eFexEMRoIThresholdsTool(),
281 CompFactory.eFexTauRoIThresholdsTool(),
282 ]
283 if flags.Trigger.L1.dojFex:
284 l1trMaker.jFexFwdElRoIKeys = ["L1_jFexFwdElRoI"]
285 l1trMaker.jFexTauRoIKeys = ["L1_jFexTauRoI"]
286 l1trMaker.jFexSRJetRoIKeys = ["L1_jFexSRJetRoI"]
287 l1trMaker.jFexLRJetRoIKeys = ["L1_jFexLRJetRoI"]
288 l1trMaker.ThresholdPatternTools += [
289 CompFactory.jFexFwdElRoIThresholdsTool(),
290 CompFactory.jFexTauRoIThresholdsTool(),
291 CompFactory.jFexSRJetRoIThresholdsTool(),
292 CompFactory.jFexLRJetRoIThresholdsTool(),
293 ]
294 if flags.Trigger.L1.dogFex:
295 l1trMaker.gFexSRJetRoIKeys = ["L1_gFexSRJetRoI"]
296 l1trMaker.gFexLRJetRoIKeys = ["L1_gFexLRJetRoI"]
297 l1trMaker.ThresholdPatternTools += [
298 CompFactory.gFexSRJetRoIThresholdsTool(),
299 CompFactory.gFexLRJetRoIThresholdsTool(),
300 ]
301 # Need both eFex and jFex for cTAU
302 if flags.Trigger.L1.doeFex and flags.Trigger.L1.dojFex:
303 l1trMaker.cTauRoIKey = "L1_cTauRoI" # Note: WriteHandle
304 l1trMaker.cjTauLinkKey = "L1_cTauRoI.jTauLink" # Note: WriteDecorHandle
305 l1trMaker.ThresholdPatternTools += [
306 CompFactory.cTauRoIThresholdsTool(),
307 ]
308
309 # Placeholder for other L1 xAOD outputs:
310 # - L1Topo result
311
312 acc.addEventAlgo(l1trMaker, primary=True)
313 return acc
314
315
316def HLTSeedingCfg(flags, seqName = None):
317 if seqName:
318 from AthenaCommon.CFElements import parOR
319 acc = ComponentAccumulator(sequence=parOR(seqName)) # TODO - once rec-ex-common JO are phased out this can also be dropped
320 else:
321 acc = ComponentAccumulator()
322
323 from HLTSeeding.HLTSeedingMonitoring import CTPUnpackingMonitoring, L1DataConsistencyMonitoring
324 decoderAlg = CompFactory.HLTSeeding(
325 RoIBResult = "RoIBResult", # Not yet ready to disable, see ATR-29954
326 L1TriggerResult = "L1TriggerResult" if flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL1CaloPhase1 else "",
327 HLTSeedingSummaryKey = "HLTSeedingSummary", # Transient, consumed by DecisionSummaryMakerAlg
328 ctpUnpacker = CompFactory.CTPUnpackingTool( ForceEnableAllChains = flags.Trigger.forceEnableAllChains,
329 MonTool = CTPUnpackingMonitoring(flags, 512, 400),
330 UseEDMxAOD = flags.Trigger.CTP.UseEDMxAOD )
331 )
332
333 # Add L1DataConsistencyChecker unless we forceEnableAllChains which always results in missing TOBs
334 if not (flags.Trigger.forceEnableAllChains or flags.Trigger.disableL1ConsistencyChecker):
335 def checkConsistency(thrName):
336 '''Filter out threshold types for which HLT doesn't read TOBs from L1 readout'''
337 return thrName not in ['FSNOSEED','TE','XE','XS'] and not thrName.startswith('PROBE')
338
339 decoderAlg.L1DataConsistencyChecker = CompFactory.L1DataConsistencyChecker(
340 ThresholdToDecisionMap = dict([(k,v) for k,v in _mapL1ThresholdToDecisionCollection.items() if checkConsistency(k)]),
341 MonTool = L1DataConsistencyMonitoring(flags),
342 ErrorOnMissingTOB = flags.Trigger.L1.errorOnMissingTOB )
343
344 #Transient bytestream
345 from AthenaConfiguration.Enums import Format
346 if flags.Input.Format is Format.POOL:
347 transTypeKey = ("TransientBSOutType","StoreGateSvc+TransientBSOutKey")
348 decoderAlg.ExtraInputs.add(transTypeKey)
349
350 decoderAlg.RoIBRoIUnpackers += [
351 CompFactory.FSRoIsUnpackingTool("FSRoIsUnpackingTool", Decisions=mapThresholdToL1DecisionCollection("FSNOSEED"),
352 OutputTrigRoIs = recordable(mapThresholdToL1RoICollection("FSNOSEED")) ) ]
353
354 if flags.Trigger.L1.doCalo:
355 if flags.Trigger.enableL1CaloPhase1:
356 decoderAlg.xAODRoIUnpackers += createCaloRoIUnpackers(flags)
357 if flags.Trigger.enableL1CaloLegacy:
358 decoderAlg.RoIBRoIUnpackers += createLegacyCaloRoIUnpackers(flags)
359
360 if flags.Trigger.L1.doMuon:
361 if flags.Trigger.enableL1MuonPhase1:
362 decoderAlg.xAODRoIUnpackers += createMuonRoIUnpackers(flags)
363 else:
364 decoderAlg.RoIBRoIUnpackers += createLegacyMuonRoIUnpackers(flags)
365
366 decoderAlg.prescaler = createPrescalingTool(flags)
367 decoderAlg.KeyWriterTool = createKeyWriterTool()
368 decoderAlg.DoCostMonitoring = flags.Trigger.CostMonitoring.doCostMonitoring
369 decoderAlg.CostMonitoringChain = flags.Trigger.CostMonitoring.chain
370 decoderAlg.RoiZedWidthDefault = flags.Trigger.InDetTracking.RoiZedWidthDefault
371
372 if flags.Input.Format is Format.BS and not flags.Trigger.doLVL1:
373 # Add the algorithm decoding ByteStream into xAOD (Run-3 L1) and/or RoIBResult (legacy L1)
374 from TrigT1ResultByteStream.TrigT1ResultByteStreamConfig import L1TriggerByteStreamDecoderCfg
375 acc.merge( L1TriggerByteStreamDecoderCfg(flags), sequenceName = seqName )
376
377 # Add the algorithm creating L1TriggerResult which is the input to HLTSeeding (Run-3 L1)
378 if flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL1CaloPhase1 or flags.Trigger.CTP.UseEDMxAOD:
379 acc.merge( L1TriggerResultMakerCfg(flags), sequenceName = seqName )
380
381 acc.addEventAlgo( decoderAlg, sequenceName = seqName )
382
383 from TrigConfigSvc.TrigConfigSvcCfg import TrigConfigSvcCfg, HLTPrescaleCondAlgCfg
384 acc.merge( TrigConfigSvcCfg( flags ) )
385 acc.merge( HLTPrescaleCondAlgCfg( flags ) )
386
387 # Configure ROB prefetching from initial RoIs
388 from TriggerJobOpts.TriggerConfigFlags import ROBPrefetching
389 if ROBPrefetching.InitialRoI in flags.Trigger.ROBPrefetchingOptions:
390 allDecisionsSet = set()
391 for roiUnpacker in decoderAlg.RoIBRoIUnpackers + decoderAlg.xAODRoIUnpackers:
392 dec = str(roiUnpacker.Decisions)
393 if dec:
394 allDecisionsSet.add(dec)
395 allDecisions = sorted(list(allDecisionsSet))
396 from TrigGenericAlgs.TrigGenericAlgsConfig import ROBPrefetchingAlgCfg_Si, ROBPrefetchingAlgCfg_Calo, ROBPrefetchingAlgCfg_Muon
397 acc.merge(ROBPrefetchingAlgCfg_Si(flags, "initialRoI", RoILinkName="initialRoI", ROBPrefetchingInputDecisions=allDecisions), sequenceName=seqName)
398 acc.merge(ROBPrefetchingAlgCfg_Calo(flags,"initialRoI", RoILinkName="initialRoI", ROBPrefetchingInputDecisions=allDecisions), sequenceName=seqName)
399 acc.merge(ROBPrefetchingAlgCfg_Muon(flags,"initialRoI", RoILinkName="initialRoI", ROBPrefetchingInputDecisions=allDecisions), sequenceName=seqName)
400
401 return acc
402
403
404if __name__ == "__main__":
405 from AthenaConfiguration.AllConfigFlags import initConfigFlags
406 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
407
408 flags = initConfigFlags()
409 flags.Trigger.forceEnableAllChains= True
410 flags.Input.Files = defaultTestFiles.RAW_RUN2
411 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
412 flags.lock()
413 acc = HLTSeedingCfg( flags )
414 acc.wasMerged()
STL class.
mapThresholdToL1DecisionCollection(threshold)
mapThresholdToL1RoICollection(threshold)
HLTSeedingCfg(flags, seqName=None)
createLegacyMuonRoIUnpackers(flags)
createLegacyCaloRoIUnpackers(flags)