26 selAccSA = SelectionCA(
'L2MuFastSel'+selCAName, isProbe=is_probe_leg)
28 viewName=
"L2MuFastReco"
30 recoSA = InViewRecoCA(name=viewName, isProbe=is_probe_leg)
34 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
35 from .MuonRecoSequences
import muFastRecoSequenceCfg, muonDecodeCfg
36 recoSA.mergeReco(muonDecodeCfg(muonflags,RoIs=viewName+
'RoIs'))
39 from TriggerMenuMT.HLT.Config.ControlFlow.MenuComponentsNaming
import CFNaming
40 filterInput = [ CFNaming.inputMakerOutName(
'IM_'+viewName) ]
41 for decision
in filterInput:
42 extraLoads += [(
'xAOD::TrigCompositeContainer',
'StoreGateSvc+%s' % decision )]
44 from .MuonRecoSequences
import isCosmic
45 acc = ComponentAccumulator()
46 seql2sa = seqAND(
"L2MuonSASeq{}".format(
"_probe" if is_probe_leg
else ""))
47 acc.addSequence(seql2sa)
48 muFastRecoSeq = muFastRecoSequenceCfg( muonflags, viewName+
'RoIs', doFullScanID= isCosmic(flags), extraLoads=extraLoads )
49 sequenceOut = muNames.L2SAName
50 acc.merge(muFastRecoSeq, sequenceName=seql2sa.name)
53 seqFilter = seqAND(
"L2MuonMTSeq{}".format(
"_probe" if is_probe_leg
else ""))
54 acc.addSequence(seqFilter)
55 from TrigMuonEF.TrigMuonEFConfig
import MuonChainFilterAlgCfg
57 MultiTrackChainFilter = MuonChainFilterAlgCfg(muonflags,
"SAFilterMultiTrackChains", ChainsToFilter = MultiTrackChains,
58 InputDecisions = filterInput,
59 L2MuFastContainer = muNames.L2SAName+
"l2mtmode",
60 L2MuCombContainer = muNames.L2CBName+
"l2mtmode",
61 WriteMuFast =
True, NotGate =
True)
63 acc.merge(MultiTrackChainFilter, sequenceName=seqFilter.name)
64 muFastl2mtRecoSeq = muFastRecoSequenceCfg( muonflags, viewName+
'RoIs', doFullScanID= isCosmic(flags), l2mtmode=
True )
65 acc.merge(muFastl2mtRecoSeq, sequenceName=seqFilter.name)
68 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Muon
69 robPrefetch = ROBPrefetchingAlgCfg_Muon(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
71 selAccSA.mergeReco(recoSA, robPrefetchCA=robPrefetch)
74 return (selAccSA, sequenceOut)
79 selAccSA = SelectionCA(
'L2MuFastCalibSel', isProbe=is_probe_leg)
81 viewName=
"L2MuFastCalibReco"
83 recoSA = InViewRecoCA(name=viewName, isProbe=is_probe_leg)
87 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
88 from .MuonRecoSequences
import muFastRecoSequenceCfg, muonDecodeCfg
89 recoSA.mergeReco(muonDecodeCfg(muonflags,RoIs=viewName+
'RoIs'))
91 from .MuonRecoSequences
import isCosmic
92 muFastRecoSeq = muFastRecoSequenceCfg( muonflags, viewName+
'RoIs', doFullScanID= isCosmic(flags), calib=
True )
93 sequenceOut = muNames.L2SAName+
"Calib"
94 recoSA.mergeReco(muFastRecoSeq)
97 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Muon
98 robPrefetchAlg = ROBPrefetchingAlgCfg_Muon(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
99 selAccSA.mergeReco(recoSA, robPrefetchCA=robPrefetchAlg)
101 return (selAccSA, sequenceOut)
169 from .MuonRecoSequences
import muFastRecoSequenceCfg, muCombRecoSequenceCfg, muonIDFastTrackingSequenceCfg, muonIDCosmicTrackingSequenceCfg, isCosmic
171 selAccCB = SelectionCA(
'L2MuCombSel'+selCAName, isProbe=is_probe_leg)
173 viewName=
"Cosmic" if isCosmic(flags)
else "L2MuCombReco"
175 ViewCreatorFetchFromViewROITool=CompFactory.ViewCreatorFetchFromViewROITool
178 requireParentView =
True
180 recoCB = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView = requireParentView, isProbe=is_probe_leg)
181 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
184 sequenceOut = muNames.L2CBName
186 acc = ComponentAccumulator()
187 from TrigMuonEF.TrigMuonEFConfig
import MuonChainFilterAlgCfg
190 from TriggerMenuMT.HLT.Config.ControlFlow.MenuComponentsNaming
import CFNaming
191 filterInput = [ CFNaming.inputMakerOutName(
'IM_'+viewName) ]
193 for decision
in filterInput:
194 extraLoads += [(
'xAOD::TrigCompositeContainer' ,
'StoreGateSvc+%s' % decision )]
197 recoCB.mergeReco(muonIDCosmicTrackingSequenceCfg( flags, viewName+
"RoIs" ,
"cosmics", extraLoads, extraLoads ))
199 recoCB.mergeReco(muonIDFastTrackingSequenceCfg(flags, viewName+
"RoIs",
"muon", extraLoads, extraLoads, trackingMode = trackingMode ))
202 seql2cb = seqAND(
"l2muCombFilterSequence{}".format(
"_probe" if is_probe_leg
else ""))
203 acc.addSequence(seql2cb)
206 muonChainFilter = MuonChainFilterAlgCfg(muonflags,
"FilterBphysChains", ChainsToFilter =
getBphysChainNames(),
207 InputDecisions = filterInput,
208 L2MuCombContainer = sequenceOut,
209 WriteMuComb =
True, WriteMuFast=
False)
210 acc.merge(muonChainFilter, sequenceName=seql2cb.name)
214 acc.merge(muCombRecoSequenceCfg(flags, viewName+
"RoIs",
"FTF", l2mtmode=
False, l2CBname = sequenceOut ), sequenceName=seql2cb.name)
218 MultiTrackChainFilter = MuonChainFilterAlgCfg(muonflags,
"CBFilterMultiTrackChains", ChainsToFilter = MultiTrackChains,
219 InputDecisions = filterInput,
220 L2MuFastContainer = muNames.L2SAName+
"l2mtmode",
221 L2MuCombContainer = muNames.L2CBName+
"l2mtmode",
222 WriteMuComb =
True, NotGate =
True)
225 seql2cbmt = seqAND(
"l2mtmuCombFilterSequence{}".format(
"_probe" if is_probe_leg
else ""))
226 acc.addSequence(seql2cbmt)
227 acc.merge(MultiTrackChainFilter, sequenceName=seql2cbmt.name)
230 sequenceOutL2mtCB = muNames.L2CBName+
"l2mtmode"
231 acc.merge(muCombRecoSequenceCfg(flags, viewName+
"RoIs",
"FTF", l2mtmode=
True, l2CBname = sequenceOutL2mtCB ), sequenceName=seql2cbmt.name)
236 seql2iocb = seqAND(
"l2muFastIOFilterSequence{}".format(
"_probe" if is_probe_leg
else ""))
237 acc.addSequence(seql2iocb)
239 from .MuonRecoSequences
import isCosmic
240 sequenceOutL2SAIO = muNames.L2SAName+
"IOmode"
242 InputDecisions = filterInput,
243 L2MuFastContainer = sequenceOutL2SAIO, L2MuCombContainer = muNames.L2CBName+
"IOmode",
244 WriteMuFast =
True, WriteMuComb =
True, NotGate=
True)
246 acc.merge(insideoutMuonChainFilter, sequenceName=seql2iocb.name)
247 acc.merge(muFastRecoSequenceCfg(muonflags, viewName+
"RoIs", doFullScanID=isCosmic(flags) , InsideOutMode=
True), sequenceName=seql2iocb.name)
248 recoCB.mergeReco(acc)
251 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Si
252 robPrefetchAlg = ROBPrefetchingAlgCfg_Si(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
253 selAccCB.mergeReco(recoCB, robPrefetchCA=robPrefetchAlg)
255 return (selAccCB, sequenceOut)
261 (selAcc, sequenceOut) =
muCombAlgSequenceCfg(flags,
"", is_probe_leg, trackingMode = trackingMode)
263 from TrigMuonHypo.TrigMuonHypoConfig
import TrigmuCombHypoAlgCfg, TrigmuCombHypoToolFromDict
264 l2cbHypo = TrigmuCombHypoAlgCfg( flags,
265 name =
'TrigL2MuCBHypoAlg',
266 MuonL2CBInfoFromMuCombAlg = sequenceOut,
269 selAcc.addHypoAlgo(l2cbHypo)
271 l2cbSequence = MenuSequence(flags, selAcc,
272 HypoToolGen = TrigmuCombHypoToolFromDict)
282 (selAcc, sequenceOut) =
muCombAlgSequenceCfg(flags,
"IO", is_probe_leg, trackingMode = trackingMode)
284 from TrigMuonHypo.TrigMuonHypoConfig
import TrigmuCombHypoAlgCfg, Trigl2IOHypoToolwORFromDict
285 l2cbHypo = TrigmuCombHypoAlgCfg( flags,
286 name =
'TrigL2MuCBIOHypoAlg',
287 MuonL2CBInfoFromMuCombAlg = sequenceOut+
"IOmode",
290 selAcc.addHypoAlgo(l2cbHypo)
292 l2cbSequence = MenuSequence(flags, selAcc,
293 HypoToolGen = Trigl2IOHypoToolwORFromDict)
300 selAcc = SelectionCA(
'l2muCombLRT', isProbe=is_probe_leg)
302 viewName=
"l2muCombLRT"
303 ViewCreatorCenteredOnIParticleTool=CompFactory.ViewCreatorCentredOnIParticleROITool
305 roiTool = ViewCreatorCenteredOnIParticleTool(RoisWriteHandleKey = recordable(
"HLT_Roi_L2SAMuon_LRT"),
306 RoIZedWidth=flags.Trigger.InDetTracking.muonLRT.zedHalfWidth,
307 RoIEtaWidth=flags.Trigger.InDetTracking.muonLRT.etaHalfWidth,
308 RoIPhiWidth=flags.Trigger.InDetTracking.muonLRT.phiHalfWidth,
309 UseZedPosition=
False)
310 requireParentView =
True
312 recol2cb = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView = requireParentView, isProbe=is_probe_leg)
315 from .MuonRecoSequences
import muCombRecoSequenceCfg, muonIDFastTrackingSequenceCfg
316 sequenceOut = muNamesLRT.L2CBName
317 recol2cb.mergeReco(muCombRecoSequenceCfg(flags, viewName+
"RoIs",
"FTF_LRT", l2CBname = sequenceOut ))
321 recol2cb.mergeReco(muonIDFastTrackingSequenceCfg(flags, viewName+
"RoIs" ,
"muonLRT", extraLoads, doLRT=
True ))
324 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Si
325 robPrefetchAlg = ROBPrefetchingAlgCfg_Si(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
326 selAcc.mergeReco(recol2cb, robPrefetchAlg)
329 return (selAcc, sequenceOut)
337 from TrigMuonHypo.TrigMuonHypoConfig
import TrigmuCombHypoAlgCfg, TrigmuCombHypoToolFromDict
338 l2cbHypo = TrigmuCombHypoAlgCfg( flags,
339 name =
'TrigL2MuCBLRTHypoAlg',
340 MuonL2CBInfoFromMuCombAlg = sequenceOut,
341 RoILinkName =
"l2lrtroi",
344 selAcc.addHypoAlgo(l2cbHypo)
346 l2cbSequence = MenuSequence(flags, selAcc,
347 HypoToolGen = TrigmuCombHypoToolFromDict)
356 (selAcc, sequenceOut) =
muCombAlgSequenceCfg(flags,
"", is_probe_leg, trackingMode = trackingMode)
358 from TrigMuonHypo.TrigMuonHypoConfig
import TrigmuCombHypoAlgCfg, TrigmuCombHypoToolwORFromDict
359 l2cbHypo = TrigmuCombHypoAlgCfg( flags,
360 name =
'TrigL2MuCBHypoAlg',
361 MuonL2CBInfoFromMuCombAlg = sequenceOut,
364 selAcc.addHypoAlgo(l2cbHypo)
366 l2cbSequence = MenuSequence(flags, selAcc,
367 HypoToolGen = TrigmuCombHypoToolwORFromDict)
375 (selAcc, sequenceOut) =
muCombAlgSequenceCfg(flags,
"mt", is_probe_leg, trackingMode = trackingMode)
377 from TrigMuonHypo.TrigMuonHypoConfig
import TrigmuCombHypoAlgCfg, Trigl2mtCBHypoToolwORFromDict
378 l2cbHypo = TrigmuCombHypoAlgCfg( flags,
379 name =
'TrigL2mtMuCBHypoAlg',
380 MuonL2CBInfoFromMuCombAlg = sequenceOut+
"l2mtmode",
383 selAcc.addHypoAlgo(l2cbHypo)
385 l2cbSequence = MenuSequence(flags, selAcc,
386 HypoToolGen = Trigl2mtCBHypoToolwORFromDict)
397 selAccMS = SelectionCA(
'EFMuMSSel_RoI', isProbe=is_probe_leg)
399 viewName=
"EFMuMSReco_RoI"
400 ViewCreatorFetchFromViewROITool=CompFactory.ViewCreatorFetchFromViewROITool
403 requireParentView =
True
405 recoMS = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView = requireParentView, isProbe=is_probe_leg)
409 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
410 from .MuonRecoSequences
import muEFSARecoSequenceCfg, muonDecodeCfg
412 recoMS.mergeReco(muonDecodeCfg(muonflags,RoIs=viewName+
"RoIs"))
414 muEFSARecoSequenceAcc, sequenceOut = muEFSARecoSequenceCfg(muonflags, viewName+
'RoIs',
'RoI' )
415 recoMS.mergeReco(muEFSARecoSequenceAcc)
417 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Muon
418 prefetch=ROBPrefetchingAlgCfg_Muon(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
419 selAccMS.mergeReco(recoMS, robPrefetchCA=prefetch)
421 return (selAccMS, sequenceOut)
429 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFMSonlyHypoToolFromDict
430 efmuMSHypo = TrigMuonEFHypoAlgCfg( flags,
431 name =
'TrigMuonEFMSonlyHypo_RoI',
432 MuonDecisions = sequenceOut,
435 selAcc.addHypoAlgo(efmuMSHypo)
437 efmuMSSequence = MenuSequence(flags, selAcc,
438 HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict)
441 return efmuMSSequence
450 from .MuonRecoSequences
import isCosmic
451 selAccCB = SelectionCA(
'EFMuCBSel_RoI'+selCAName+suffix, isProbe=is_probe_leg)
453 viewName=
"EFMuCBReco_RoI"+suffix
if not isCosmic(flags)
else "CosmicEFCB"
454 ViewCreatorTool=CompFactory.ViewCreatorNamedROITool
456 roiTool = ViewCreatorTool(ROILinkName=
"l2cbroi")
458 recoCB = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView =
True, isProbe=is_probe_leg, mergeUsingFeature=
True)
462 from TrigMuonEF.TrigMuonEFConfig
import MuonFilterAlgCfg, MergeEFMuonsAlgCfg
463 from .MuonRecoSequences
import muEFCBRecoSequenceCfg, muEFInsideOutRecoSequenceCfg
465 acc = ComponentAccumulator()
466 seqmerge = seqAND(
"muonCBInsideOutMergingSequence{}{}".format(suffix,
"_probe" if is_probe_leg
else ""))
467 acc.addSequence(seqmerge)
470 acc2 = ComponentAccumulator()
471 seqreco = parOR(
"muonEFCBandInsideOutRecoSequence{}{}".format(suffix,
"_probe" if is_probe_leg
else ""))
472 acc2.addSequence(seqreco)
473 muonflagsCB = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.Muon').cloneAndReplace(
'MuonCombined',
'Trigger.Offline.Combined.MuonCombined')
474 acc2.merge(muEFCBRecoSequenceCfg(muonflagsCB, viewName+
"RoIs",
"RoI", suffix ), sequenceName=seqreco.name)
475 sequenceOutCB = muNames.EFCBOutInName+suffix
478 acc3 = ComponentAccumulator()
479 seqfilter = seqAND(
"muonEFInsideOutSequence{}{}".format(suffix,
"_probe" if is_probe_leg
else ""))
480 acc3.addSequence(seqfilter)
481 muonFilter = MuonFilterAlgCfg(flags, name=
"FilterZeroMuons"+suffix, MuonContainerLocation=sequenceOutCB)
482 acc3.merge(muonFilter, sequenceName=seqfilter.name)
485 acc4 = ComponentAccumulator()
486 seqio = parOR(
"efmuInsideOutViewNode_RoI{}{}".format(suffix,
"_probe" if is_probe_leg
else ""))
487 acc4.addSequence(seqio)
488 acc4.merge(muEFInsideOutRecoSequenceCfg(muonflagsCB, viewName+
"RoIs",
"RoI", suffix), sequenceName=seqio.name+suffix)
489 sequenceOutInsideOut = muNames.EFCBInOutName+suffix
491 acc3.merge(acc4, sequenceName=seqfilter.name)
492 acc2.merge(acc3, sequenceName=seqreco.name)
493 acc.merge(acc2, sequenceName=seqmerge.name)
496 mergedMuonOutputLocation = recordable(muNames.EFCBName+
'_'+suffix)
498 mergedMuonOutputLocation = muNames.EFCBName
499 mergeMuons = MergeEFMuonsAlgCfg(flags, name=
"MergeEFMuons"+suffix, MuonCBContainerLocation=sequenceOutCB,
500 MuonInsideOutContainerLocation=sequenceOutInsideOut, MuonOutputLocation=mergedMuonOutputLocation)
502 acc.merge(mergeMuons, sequenceName=seqmerge.name)
503 recoCB.mergeReco(acc)
504 selAccCB.mergeReco(recoCB)
506 return (selAccCB, muNames.EFCBName)
514 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
515 efmuCBHypo = TrigMuonEFHypoAlgCfg( flags,
516 name =
'TrigMuonEFCombinerHypoAlg',
517 MuonDecisions = sequenceOut,
518 MapToPreviousDecisions=
True)
520 selAcc.addHypoAlgo(efmuCBHypo)
522 efmuCBSequence = MenuSequence(flags, selAcc,
523 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
525 return efmuCBSequence
533 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
534 efmuCBHypo = TrigMuonEFHypoAlgCfg( flags,
535 name =
'TrigMuonEFCombinerHypoAlgIOmode',
536 MuonDecisions = sequenceOut+
'_IOmode',
537 MapToPreviousDecisions=
True)
539 selAcc.addHypoAlgo(efmuCBHypo)
541 efmuCBSequence = MenuSequence(flags, selAcc,
542 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
544 return efmuCBSequence
552 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
553 efmuCBHypo = TrigMuonEFHypoAlgCfg( flags,
554 name =
'TrigMuonEFCombinerHypoAlgl2mtmode',
555 MuonDecisions = sequenceOut+
'_l2mtmode',
556 MapToPreviousDecisions=
True)
558 selAcc.addHypoAlgo(efmuCBHypo)
560 efmuCBSequence = MenuSequence(flags, selAcc,
561 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
563 return efmuCBSequence
590 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
591 efmuCBHypo = TrigMuonEFHypoAlgCfg( flags,
592 name =
'TrigMuonEFCombinerIDperfHypoAlg',
594 MuonDecisions = sequenceOut,
595 MapToPreviousDecisions=
True)
597 selAcc.addHypoAlgo(efmuCBHypo)
599 efmuCBSequence = MenuSequence(flags, selAcc,
600 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
602 return efmuCBSequence
625 selAccCB = SelectionCA(
'EFMuCBLRTSel'+selCAName, isProbe=is_probe_leg)
627 viewName=
"EFMuCBLRTReco"
628 ViewCreatorTool=CompFactory.ViewCreatorNamedROITool
629 roiTool = ViewCreatorTool(ROILinkName=
"l2lrtroi")
631 recoCB = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView =
True, mergeUsingFeature=
True, isProbe=is_probe_leg)
633 from .MuonRecoSequences
import muEFCBRecoSequenceCfg
636 muonflagsCB = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.Muon').cloneAndReplace(
'MuonCombined',
'Trigger.Offline.Combined.MuonCombined')
637 recoCB.mergeReco(muEFCBRecoSequenceCfg(muonflagsCB, viewName+
"RoIs",
"LRT",
''))
638 sequenceOut = muNamesLRT.EFCBName
640 selAccCB.mergeReco(recoCB)
642 return (selAccCB, sequenceOut)
650 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
651 efmuCBLRTHypo = TrigMuonEFHypoAlgCfg( flags,
652 name =
'TrigMuonEFCombinerHypoAlgLRT',
653 MuonDecisions = sequenceOut,
654 MapToPreviousDecisions=
True)
657 selAcc.addHypoAlgo(efmuCBLRTHypo)
659 efmuCBSequence = MenuSequence(flags, selAcc,
660 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
662 return efmuCBSequence
670 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFCombinerHypoToolFromDict
671 efmuCBLRTHypo = TrigMuonEFHypoAlgCfg( flags,
672 name =
'TrigMuonEFCombinerHypoAlgLRTIDPerf',
674 MuonDecisions = sequenceOut,
675 MapToPreviousDecisions=
True)
678 selAcc.addHypoAlgo(efmuCBLRTHypo)
680 efmuCBSequence = MenuSequence(flags, selAcc,
681 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict)
683 return efmuCBSequence
692 selAccMS = SelectionCA(
'EFMuMSSel_FS')
694 viewName=
"EFMuMSReco_FS"
695 ViewCreatorFSROITool=CompFactory.ViewCreatorFSROITool
697 requireParentView =
False
699 recoMS = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView = requireParentView)
703 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
704 from .MuonRecoSequences
import muEFSARecoSequenceCfg, muonDecodeCfg
705 recoMS.mergeReco(muonDecodeCfg(muonflags,RoIs=recoMS.name+
"RoIs"))
707 muEFSARecoSequenceAcc, sequenceOut = muEFSARecoSequenceCfg(muonflags, recoMS.name+
'RoIs',
'FS' )
708 recoMS.mergeReco(muEFSARecoSequenceAcc)
710 selAccMS.mergeReco(recoMS)
712 return (selAccMS, sequenceOut)
720 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg, TrigMuonEFMSonlyHypoToolFromName
722 efmuMSHypo = TrigMuonEFHypoAlgCfg( flags,
723 name =
'TrigMuonEFMSonlyHypo_FS',
724 MuonDecisions = sequenceOut,
727 selAcc.addHypoAlgo(efmuMSHypo)
729 efmuMSSequence = MenuSequence(flags, selAcc,
730 HypoToolGen = TrigMuonEFMSonlyHypoToolFromName)
733 return efmuMSSequence
742 selAccCB = SelectionCA(
'EFMuCBSel_FS', isProbe=is_probe_leg)
744 viewName=
"EFMuCBReco_FS"
746 roiTool = CompFactory.ViewCreatorCentredOnIParticleROITool(RoisWriteHandleKey =
"MuonCandidates_FS_ROIs")
748 recoCB = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView =
True, isProbe=is_probe_leg, mergeUsingFeature=
True,
749 PlaceMuonInView=
True, InViewMuons =
"InViewMuons", InViewMuonCandidates =
"MuonCandidates_FS")
752 from TrigMuonEF.TrigMuonEFConfig
import MuonFilterAlgCfg, MergeEFMuonsAlgCfg
753 from .MuonRecoSequences
import muEFCBRecoSequenceCfg, muEFInsideOutRecoSequenceCfg
755 acc = ComponentAccumulator()
756 seqmerge = seqAND(
"muonCBInsideOutMergingSequenceEFCBFS{}".format(
"_probe" if is_probe_leg
else ""))
757 acc.addSequence(seqmerge)
759 muonflagsCB = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.Muon').cloneAndReplace(
'MuonCombined',
'Trigger.Offline.Combined.MuonCombined')
760 acc2 = ComponentAccumulator()
761 seqreco = parOR(
"muonEFCBFSInsideOutRecoSequence{}".format(
"_probe" if is_probe_leg
else ""))
762 acc2.addSequence(seqreco)
764 acc2.merge(muEFCBRecoSequenceCfg(muonflagsCB, viewName+
"RoIs",
"FS",
''), sequenceName=seqreco.name)
765 sequenceOutCB = muNamesFS.EFCBOutInName
768 muonFilter = MuonFilterAlgCfg(flags, name=
"FilterZeroMuonsEFCBFS", MuonContainerLocation = sequenceOutCB)
770 acc3 = ComponentAccumulator()
771 seqfilt = seqAND(
"muonEFCBFSInsideOutSequence{}".format(
"_probe" if is_probe_leg
else ""))
772 acc3.addSequence(seqfilt)
773 acc3.merge(muonFilter, sequenceName=seqfilt.name)
777 acc4 = ComponentAccumulator()
778 seqio = parOR(
"efmuInsideOutViewNode_FS{}".format(
"_probe" if is_probe_leg
else ""))
779 acc4.addSequence(seqio)
781 muonEFInsideOutRecoAlgSequence = muEFInsideOutRecoSequenceCfg(muonflagsCB, viewName+
"RoIs",
"FS",
'' )
782 acc4.merge(muonEFInsideOutRecoAlgSequence, sequenceName=seqio.name)
783 acc3.merge(acc4, sequenceName=seqfilt.name)
784 acc2.merge(acc3, sequenceName=seqreco.name)
785 acc.merge(acc2, sequenceName=seqmerge.name)
786 sequenceOutInsideOut = muNamesFS.EFCBInOutName
789 mergeMuons = MergeEFMuonsAlgCfg(flags, name=
"MergeEFCBFSMuons", MuonCBContainerLocation = sequenceOutCB,
790 MuonInsideOutContainerLocation = sequenceOutInsideOut, MuonOutputLocation = muNamesFS.EFCBName)
791 acc.merge(mergeMuons, sequenceName=seqmerge.name)
792 recoCB.mergeReco(acc)
794 sequenceOut = muNamesFS.EFCBName
795 selAccCB.mergeReco(recoCB)
797 return (selAccCB, sequenceOut)
859 from .MuonRecoSequences
import muEFInsideOutRecoSequenceCfg, muonDecodeCfg, muonIDFastTrackingSequenceCfg
860 selAcc = SelectionCA(
'EFLateMuAlg', isProbe=is_probe_leg)
862 viewName =
"EFLateMuReco"
863 viewcreator = CompFactory.ViewCreatorNamedROITool
864 roiTool = viewcreator(ROILinkName=
"feature")
866 recoLateMu = InViewRecoCA(name=viewName, RoITool = roiTool, RequireParentView=
True, mergeUsingFeature=
True, isProbe=is_probe_leg)
870 muonflagsCB = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.Muon').cloneAndReplace(
'MuonCombined',
'Trigger.Offline.Combined.MuonCombined')
871 muonflags = flags.cloneAndReplace(
'Muon',
'Trigger.Offline.SA.Muon')
873 recoLateMu.mergeReco(muonDecodeCfg(muonflags,RoIs=recoLateMu.name+
"RoIs"))
875 recoLateMu.mergeReco(muonIDFastTrackingSequenceCfg(flags, recoLateMu.name+
"RoIs",
"muonLate" ))
877 recoLateMu.mergeReco(muEFInsideOutRecoSequenceCfg(muonflagsCB, recoLateMu.name+
"RoIs",
"LateMu",
''))
878 sequenceOut = muNames.EFCBInOutName+
'_Late'
881 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Muon
882 robPrefetchAlg = ROBPrefetchingAlgCfg_Muon(flags, nameSuffix=viewName)
883 selAcc.mergeReco(recoLateMu, robPrefetchCA = robPrefetchAlg)
885 return (selAcc, sequenceOut)
894 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFHypoAlgCfg
895 trigMuonEFLateHypo = TrigMuonEFHypoAlgCfg(
"TrigMuonEFCombinerLateMuHypoAlg", MuonDecisions = sequenceOut )
897 selAcc.addHypoAlgo(trigMuonEFLateHypo)
898 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFCombinerHypoToolFromDict
900 return MenuSequence(flags, selAcc,
901 HypoToolGen = TrigMuonEFCombinerHypoToolFromDict )
914 selAccIso = SelectionCA(
'EFMuIso'+name, isProbe=is_probe_leg)
916 viewName=
"EFMuIsoReco"+name
918 roisWriteHandleKey =
"Roi_MuonIsoMS"
920 roisWriteHandleKey = recordable(
"HLT_Roi_MuonIso")
922 roiTool = CompFactory.ViewCreatorCentredOnIParticleROITool(RoisWriteHandleKey = roisWriteHandleKey,
923 RoIEtaWidth=flags.Trigger.InDetTracking.muonIso.etaHalfWidth,
924 RoIPhiWidth=flags.Trigger.InDetTracking.muonIso.phiHalfWidth,
925 RoIZedWidth=flags.Trigger.InDetTracking.muonIso.zedHalfWidth)
927 recoIso = InViewRecoCA(name=viewName, RoITool = roiTool, isProbe=is_probe_leg, mergeUsingFeature=
True,
928 PlaceMuonInView=
True, InViewMuons =
"IsoViewMuons"+name, InViewMuonCandidates =
"IsoMuonCandidates"+name)
932 from .MuonRecoSequences
import efmuisoRecoSequenceCfg
933 sequenceOut = muNames.EFIsoMuonName+name
934 recoIso.mergeReco(efmuisoRecoSequenceCfg( flags, viewName+
"RoIs",
"IsoViewMuons"+name, doMSiso ))
937 from TrigGenericAlgs.TrigGenericAlgsConfig
import ROBPrefetchingAlgCfg_Si
938 robPrefetchAlg = ROBPrefetchingAlgCfg_Si(flags, nameSuffix=viewName+
'_probe' if is_probe_leg
else viewName)
940 selAccIso.mergeReco(recoIso, robPrefetchCA = robPrefetchAlg)
942 return (selAccIso, sequenceOut)
950 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFTrackIsolationHypoAlgCfg, TrigMuonEFTrackIsolationHypoToolFromDict
951 efmuisoHypo = TrigMuonEFTrackIsolationHypoAlgCfg( flags,
952 name =
'EFMuisoHypoAlg',
953 EFMuonsName = sequenceOut)
955 selAcc.addHypoAlgo(efmuisoHypo)
957 efmuisoSequence = MenuSequence(flags, selAcc,
958 HypoToolGen = TrigMuonEFTrackIsolationHypoToolFromDict)
960 return efmuisoSequence
968 from TrigMuonHypo.TrigMuonHypoConfig
import TrigMuonEFTrackIsolationHypoAlgCfg, TrigMuonEFTrackIsolationHypoToolFromDict
969 efmuisoHypo = TrigMuonEFTrackIsolationHypoAlgCfg( flags,
970 name =
'EFMuMSisoHypoAlg',
971 EFMuonsName = sequenceOut)
973 selAcc.addHypoAlgo(efmuisoHypo)
975 efmuisoSequence = MenuSequence(flags, selAcc,
976 HypoToolGen = TrigMuonEFTrackIsolationHypoToolFromDict)
978 return efmuisoSequence
987 from TrigLongLivedParticles.TrigLongLivedParticlesConfig
import MuonClusterConfig
988 from TrigLongLivedParticlesHypo.TrigLongLivedParticlesHypoConfig
import MuonClusterHypoAlgConfig, TrigLongLivedParticlesHypoToolFromDict
990 selAcc = SelectionCA(
'muRoIClusterSel')
992 viewName=
"MuRoIClusReco"
993 viewcreator = CompFactory.ViewCreatorInitialROITool
994 roiTool = viewcreator()
996 recoRoICluster = InEventRecoCA(name=viewName, RoITool = roiTool, mergeUsingFeature =
False, RoIs =
'HLT_muVtxCluster_RoIs')
997 recoRoICluster.mergeReco(MuonClusterConfig(flags,
'muvtxMuonCluster'))
998 selAcc.mergeReco(recoRoICluster)
1001 hypoAlg = MuonClusterHypoAlgConfig( flags,
1002 name =
'MuRoiClusterHypoAlg')
1004 selAcc.addHypoAlgo(hypoAlg)
1006 muRoIClusterSequence = MenuSequence(flags, selAcc,
1007 HypoToolGen = TrigLongLivedParticlesHypoToolFromDict)
1009 return muRoIClusterSequence