ATLAS Offline Software
Loading...
Searching...
No Matches
python.HLT.Muon.MuonRecoSequences Namespace Reference

Functions

 isCosmic (flags)
 isLRT (name)
 getIDTracks (flags, name='', muonIDreuse=False, precision=False, suffix='')
 MuDataPrepViewDataVerifierCfg (flags)
 muonDecodeCfg (flags, RoIs)
 muFastVDVCfg (flags, RoIs, suffix, InsideOutMode, extraLoads)
 muFastRecoSequenceCfg (flags, RoIs, suffix="", doFullScanID=False, InsideOutMode=False, extraLoads=None, l2mtmode=False, calib=False, useNewFast=False)
 muonIDtrackVDVCfg (flags, name, RoIs, extraLoads=None, extraLoadsForl2mtmode=None)
 muonIDFastTrackingSequenceCfg (flags, RoIs, name, extraLoads=None, extraLoadsForl2mtmode=None, doLRT=False, trackingMode="FTF")
 muonIDCosmicTrackingSequenceCfg (flags, RoIs, name, extraLoads=None, extraLoadsForl2mtmode=None)
 muCombVDVCfg (flags, postFix)
 muCombRecoSequenceCfg (flags, RoIs, name, l2mtmode=False, l2CBname="")
 EFMuSADataPrepViewDataVerifierCfg (flags, RoIs, suffix="")
 muEFSARecoSequenceCfg (flags, RoIs, suffix="", useBucketFilter=False)
 VDVEFMuCBCfg (flags, RoIs, name, suffix)
 VDVPrecMuTrkCfg (flags, name, suffix)
 VDVidReuseITkCfg (flags, suffix)
 muEFCBRecoSequenceCfg (flags, RoIs, name, suffix)
 VDVMuInsideOutCfg (flags, name, candidatesName, suffix)
 muEFInsideOutRecoSequenceCfg (flags, RoIs, name, suffix)
 VDVMuIsoCfg (flags, name, RoIs)
 efmuisoRecoSequenceCfg (flags, RoIs, Muons, doMSiso=False)
 VDVLateMuCfg (flags)
 efLateMuRoISequenceCfg (flags)

Variables

 log = logging.getLogger(__name__)
 muNames = muonNames().getNames('RoI')
 muNamesFS = muonNames().getNames('FS')
 muNamesLRT = muonNames().getNames('LRT')

Function Documentation

◆ efLateMuRoISequenceCfg()

efLateMuRoISequenceCfg ( flags)

Definition at line 740 of file MuonRecoSequences.py.

740def efLateMuRoISequenceCfg(flags):
741
742 acc = VDVLateMuCfg(flags)
743
744 from TrigmuRoI.TrigmuRoIConfig import TrigmuRoIConfig
745 sequenceOut = "LateMuRoIs"
746 acc.merge(TrigmuRoIConfig(flags, "TrigmuRoI", outputRoIs=sequenceOut))
747
748 return acc, sequenceOut

◆ efmuisoRecoSequenceCfg()

efmuisoRecoSequenceCfg ( flags,
RoIs,
Muons,
doMSiso = False )

Definition at line 704 of file MuonRecoSequences.py.

704def efmuisoRecoSequenceCfg( flags, RoIs, Muons, doMSiso=False ):
705
706 name = ""
707 if doMSiso:
708 name = "MS"
709 acc = VDVMuIsoCfg(flags, name, RoIs)
710
711 acc.merge(muonIDFastTrackingSequenceCfg(flags, RoIs, "muonIso"+name ))
712
713 from TrigInDetConfig.TrigInDetConfig import trigInDetPrecisionTrackingCfg
714 muIsoFlags = getFlagsForActiveConfig(flags, "muonIso"+name, log)
715 acc.merge(trigInDetPrecisionTrackingCfg(muIsoFlags, rois= RoIs, signatureName="muonIso"+name, in_view=False))
716 trackParticles = muIsoFlags.Tracking.ActiveConfig.tracks_IDTrig
717
718 # Isolation alg
719 from TrigMuonEF.TrigMuonEFConfig import TrigMuonEFTrackIsolationAlgCfg
720 acc.merge(TrigMuonEFTrackIsolationAlgCfg(flags,name="TrigEFMuIso"+name, requireCombinedMuon = not doMSiso,
721 MuonEFContainer = Muons,IdTrackParticles = trackParticles, MuonContName = muNames.EFIsoMuons+name,
722 ptcone02Name = muNames.EFIsoMuons+name + ".ptcone02",
723 ptcone03Name = muNames.EFIsoMuons+name + ".ptcone03"))
724
725 return acc
726

◆ EFMuSADataPrepViewDataVerifierCfg()

EFMuSADataPrepViewDataVerifierCfg ( flags,
RoIs,
suffix = "" )

Definition at line 299 of file MuonRecoSequences.py.

299def EFMuSADataPrepViewDataVerifierCfg(flags, RoIs, suffix=""):
300 result=ComponentAccumulator()
301 dataObjects=[( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
302 ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
303
304 if flags.Muon.usePhaseIIGeoSetup:
305 dataObjects += [( 'ActsGeometryContext' , 'StoreGateSvc+ActsAlignment' )]
306
307 if flags.Muon.setupTruthAlgorithms:
308 dataObjects += [( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+MDT_SDO' ),
309 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+MM_SDO' ),
310 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+RPC_SDO' ),
311 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+TGC_SDO' ),
312 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+sTGC_SDO' ),
313 ( 'McEventCollection' , 'StoreGateSvc+TruthEvent' ),
314 # Truth muons containers and decorations
315 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles' ),
316 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles.truthClassification' ),
317 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles.truthOrigin' ),
318 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles.truthParticleLink' ),
319 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles.truthType' ),
320 # Truth segments and SDO-to-segment links
321 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments' ),
322 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments.charge' ),
323 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments.localSegPars' ),
324 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments.pt' ),
325 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments.simHitLinks' ),
326 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+MDT_SDO.truthSegmentLink' ),
327 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+MM_SDO.truthSegmentLink' ),
328 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+RPC_SDO.truthSegmentLink' ),
329 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+TGC_SDO.truthSegmentLink' ),
330 ( 'xAOD::MuonSimHitContainer' , 'StoreGateSvc+sTGC_SDO.truthSegmentLink' ),
331 # Truth segment to truth particle links
332 ( 'xAOD::MuonSegmentContainer' , 'StoreGateSvc+MuonTruthSegments.truthParticleLink' ),
333 ( 'xAOD::TruthParticleContainer' , 'StoreGateSvc+MuonTruthParticles.truthSegmentLinks' )]
334
335 alg = CompFactory.AthViews.ViewDataVerifier( name = f"VDVMuEFSA_{suffix}",
336 DataObjects = dataObjects)
337 result.addEventAlgo(alg)
338 return result
339
340

◆ getIDTracks()

getIDTracks ( flags,
name = '',
muonIDreuse = False,
precision = False,
suffix = '' )

Definition at line 32 of file MuonRecoSequences.py.

32def getIDTracks(flags, name='', muonIDreuse=False, precision=False, suffix=''):
33
34 if muonIDreuse or suffix != '':
35 if isLRT(name):
36 return 'HLT_IDTrack_MuonComb_FTF_LRT'
37 elif isCosmic(flags):
38 return 'HLT_IDTrack_MuonComb_FTF'
39 else:
40 return 'HLT_IDTrack_MuonComb_FTF'+suffix
41
42 else:
43 if precision:
44 return flags.Tracking.ActiveConfig.tracks_IDTrig
45 else:
46 if isLRT(name):
47 return flags.Trigger.InDetTracking.muonLRT.tracks_FTF
48 elif isCosmic(flags):
49 return flags.Trigger.InDetTracking.cosmics.tracks_IDTrig
50 else:
51 return flags.Trigger.InDetTracking.muon.tracks_FTF
52
53

◆ isCosmic()

isCosmic ( flags)

Definition at line 24 of file MuonRecoSequences.py.

24def isCosmic(flags):
25 #FIXME: this might not be ideal criteria to determine if this is cosmic chain but used to work in Run2 and will do for now, ATR-22758
26 return (flags.Beam.Type == BeamType.Cosmics)
27

◆ isLRT()

isLRT ( name)

Definition at line 28 of file MuonRecoSequences.py.

28def isLRT(name):
29 return "LRT" in name
30
31#Returns relevant track collection name

◆ muCombRecoSequenceCfg()

muCombRecoSequenceCfg ( flags,
RoIs,
name,
l2mtmode = False,
l2CBname = "" )

Definition at line 283 of file MuonRecoSequences.py.

283def muCombRecoSequenceCfg( flags, RoIs, name, l2mtmode=False, l2CBname="" ):
284
285 acc = ComponentAccumulator()
286 postFix = ""
287 if l2mtmode:
288 postFix = "l2mtmode"
289
290 acc.merge(muCombVDVCfg(flags, postFix))
291 from TrigmuComb.TrigmuCombConfig import muCombCfg
292 l2trackname = getIDTracks(flags) if l2mtmode else getIDTracks(flags, name)
293 acc.merge(muCombCfg(flags, f'{postFix}_{name}', useBackExtrp=True,
294 L2StandAloneMuonContainerName = muNames.L2SAMuons+postFix,
295 L2CombinedMuonContainerName = l2CBname, TrackParticleContainerName = l2trackname ))
296
297 return acc
298

◆ muCombVDVCfg()

muCombVDVCfg ( flags,
postFix )

Definition at line 275 of file MuonRecoSequences.py.

275def muCombVDVCfg( flags, postFix):
276 result=ComponentAccumulator()
277 dataObjects=[('xAOD::L2StandAloneMuonContainer','StoreGateSvc+%s' % muNames.L2SAMuons+postFix)]
278 ViewVerify = CompFactory.AthViews.ViewDataVerifier("muCombAlgVDV"+postFix, DataObjects = dataObjects)
279 result.addEventAlgo(ViewVerify)
280 return result
281
282

◆ MuDataPrepViewDataVerifierCfg()

MuDataPrepViewDataVerifierCfg ( flags)

Definition at line 54 of file MuonRecoSequences.py.

54def MuDataPrepViewDataVerifierCfg(flags):
55 result = ComponentAccumulator()
56
57 # Cache
58 dataObjects=[( 'RpcPrepDataCollection_Cache' , 'StoreGateSvc+RpcPrdCache' ),
59 ( 'TgcRdo_Cache' , 'StoreGateSvc+TgcRdoCache' ),
60 ( 'MdtCsm_Cache' , 'StoreGateSvc+MdtCsmRdoCache' ),
61 ( 'RpcPad_Cache' , 'StoreGateSvc+RpcRdoCache' ),
62 ( 'RpcCoinDataCollection_Cache' , 'StoreGateSvc+RpcCoinCache' ),
63 ( 'TgcPrepDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.TgcCache + 'AllBCs' ),
64 ( 'TgcCoinDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache + 'PriorBC' ),
65 ( 'TgcCoinDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache + 'NextBC' ),
66 ( 'TgcCoinDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache + 'NextNextBC' ),
67 ( 'TgcCoinDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache )
68 ]
69
70 if flags.Detector.GeometrysTGC:
71 dataObjects += [( 'sTgcPrepDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.sTgcCache)]
72 if flags.Input.isMC:
73 dataObjects += [( 'Muon::STGC_RawDataContainer' , 'StoreGateSvc+sTGCRDO' )]
74
75 if flags.Detector.GeometryMM:
76 dataObjects += [( 'MMPrepDataCollection_Cache' , 'StoreGateSvc+' + MuonPrdCacheNames.MmCache)]
77 if flags.Input.isMC:
78 dataObjects += [( 'Muon::MM_RawDataContainer' , 'StoreGateSvc+MMRDO' )]
79
80 if flags.Detector.GeometryCSC:
81 dataObjects+=[( 'CscRawDataCollection_Cache' , 'StoreGateSvc+CscRdoCache' )]
82 if flags.Input.isMC:
83 dataObjects += [( 'CscRawDataContainer' , 'StoreGateSvc+CSCRDO' ),
84 ( 'CscRawDataCollection_Cache' , 'StoreGateSvc+CscRdoCache' )]
85
86 if flags.Input.isMC:
87 dataObjects += [( 'MdtCsmContainer' , 'StoreGateSvc+MDTCSM' ),
88 *( [( 'RpcPadContainer' , 'StoreGateSvc+RPCPAD' )] if "RPCPAD" in flags.Input.Collections else [] ),
89 *( [( 'xAOD::NRPCRDOContainer' , 'StoreGateSvc+NRPCRDO' )] if flags.Muon.enableNRPC else [] ),
90 ('TgcRdoContainer' , 'StoreGateSvc+TGCRDO' )]
91
92 if flags.Muon.usePhaseIIGeoSetup:
93 dataObjects += [('ActsTrk::GeometryContext' , 'StoreGateSvc+ActsAlignment' )]
94
95 alg = CompFactory.AthViews.ViewDataVerifier( name = "VDVMuDataPrep",
96 DataObjects = dataObjects)
97 result.addEventAlgo(alg)
98 return result
99
100

◆ muEFCBRecoSequenceCfg()

muEFCBRecoSequenceCfg ( flags,
RoIs,
name,
suffix )

Definition at line 531 of file MuonRecoSequences.py.

531def muEFCBRecoSequenceCfg( flags, RoIs, name, suffix ):
532
533
534 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring import MuonCreatorAlgMonitoring
535 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
536 acc = ComponentAccumulator()
537
538 acc.merge(VDVEFMuCBCfg(flags, RoIs, name, suffix))
539
540 if "FS" in name:
541 #Need to run tracking for full scan chains
542 from TrigInDetConfig.TrigInDetConfig import trigInDetFastTrackingCfg
543 acc.merge(trigInDetFastTrackingCfg( flags, roisKey=RoIs, signatureName="muonFS" ))
544
545 else:
546 acc.merge(VDVPrecMuTrkCfg(flags, name, suffix))
547
548
549 #Precision Tracking
550 from TrigInDetConfig.TrigInDetConfig import trigInDetPrecisionTrackingCfg
551 #When run in a different view than FTF some data dependencies needs to be loaded through verifier
552 #Pass verifier as an argument and it will automatically append necessary DataObjects
553 #@NOTE: Don't provide any verifier if loaded in the same view as FTF
554 if isCosmic(flags) and 'LRT' not in name:
555 trackParticles=getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
556 elif 'LRT' in name:
557 muLrtFlags = getFlagsForActiveConfig(flags, "muonLRT", log)
558 acc.merge(trigInDetPrecisionTrackingCfg(muLrtFlags, rois= RoIs, signatureName="muonLRT"))
559 trackParticles = getIDTracks(muLrtFlags, name, precision=True)
560 elif 'FS' in name:
561 muFsFlags = getFlagsForActiveConfig(flags, "muonFS", log)
562 acc.merge(trigInDetPrecisionTrackingCfg(muFsFlags, rois= RoIs, signatureName="muonFS", in_view=False))
563 trackParticles = getIDTracks(muFsFlags, precision=True)
564 else:
565 muFlags = getFlagsForActiveConfig(flags, "muon", log)
566 if not flags.Muon.enableTrigIDtrackReuse and suffix == '':
567 acc.merge(trigInDetPrecisionTrackingCfg(muFlags, rois= RoIs, signatureName="muon"))
568 trackParticles=getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=True, suffix=suffix)
569
570 if flags.Muon.enableTrigIDtrackReuse or suffix != '':
571 if 'LRT' not in name or 'FS' not in name:
572 if flags.GeoModel.Run > LHCPeriod.Run3:
573 acc.merge(VDVidReuseITkCfg(flags, suffix))
574 if suffix != 'idReuse':
575 MuonL2CBInputContainer = muNames.L2CBMuons+suffix
576 else:
577 MuonL2CBInputContainer = muNames.L2CBMuons
578 from TrigMuonEF.TrigMuonEFConfig import GetL2CBmuonInDetTracksAlgCfg
579 acc.merge(GetL2CBmuonInDetTracksAlgCfg(flags, name="GetL2CBInDetTracks"+suffix,
580 MuonL2CBContainerLocation=MuonL2CBInputContainer,
581 IDtrackOutputLocation="HLT_IDTrack_MuonComb_FTF"+suffix))
582
583 #Make InDetCandidates
584 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name="TrigMuonCombinedInDetCandidateAlg_"+name+suffix,TrackParticleLocation = [trackParticles], InDetCandidateLocation="InDetCandidates_"+name+suffix))
585
586
587 #MS ID combination
588 candidatesName = "MuonCandidates"
589 if 'FS' in name:
590 candidatesName = "MuonCandidates_FS"
591
592 acc.merge(MuonCombinedAlgCfg(flags,name="TrigMuonCombinedAlg_"+name+suffix, MuonCandidateLocation=candidatesName, InDetCandidateLocation="InDetCandidates_"+name+suffix))
593
594 if 'FS' in name:
595 cbMuonName = muNamesFS.EFCBOutInMuons
596 elif 'LRT' in name:
597 cbMuonName = muNamesLRT.EFCBMuons
598 else:
599 cbMuonName = muNames.EFCBOutInMuons
600
601
602 acc.merge(MuonCreatorAlgCfg(flags, name="TrigMuonCreatorAlgCB_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=["muidcoTagMap"], InDetCandidateLocation="InDetCandidates_"+name+suffix,
603 MuonContainerLocation = cbMuonName+suffix, ExtrapolatedLocation = "CBExtrapolatedMuons"+suffix,
604 MSOnlyExtrapolatedLocation = "CBMSonlyExtrapolatedMuons"+suffix, CombinedLocation = "HLT_CBCombinedMuon_"+name+suffix,
605 MonTool = MuonCreatorAlgMonitoring(flags, "MuonCreatorAlgCB_"+name+suffix)))
606
607
608
609 return acc
610
611

◆ muEFInsideOutRecoSequenceCfg()

muEFInsideOutRecoSequenceCfg ( flags,
RoIs,
name,
suffix )

Definition at line 631 of file MuonRecoSequences.py.

631def muEFInsideOutRecoSequenceCfg(flags, RoIs, name, suffix ):
632
633 from MuonConfig.MuonSegmentFindingConfig import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
634 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring import MuonCreatorAlgMonitoring
635 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg, MuGirlStauAlgCfg, StauCreatorAlgCfg, MuonInDetToMuonSystemExtensionAlgCfg, MuonInsideOutRecoAlgCfg, MuonCombinedInDetCandidateAlgCfg
636 from MuonCombinedConfig.MuonCombinedRecToolsConfig import MuonInsideOutRecoToolCfg
637
638 acc = ComponentAccumulator()
639
640 candidatesName = "MuonCandidates"
641 if 'FS' in name:
642 candidatesName = "MuonCandidates_FS"
643
644 if "Late" in name:
645
646 #Need to run hough transform at start of late muon chain
647 acc.merge(MuonLayerHoughAlgCfg(flags, "TrigMuonLayerHoughAlg_"+name,MuonPatternCombinationCollection="MuonLayerHoughCombis_"+name,
648 Key_MuonLayerHoughToolHoughDataPerSectorVec="HoughDataPerSectorVec_"+name))
649
650 acc.merge(MuonSegmentFinderAlgCfg(flags, "TrigMuonSegmentMaker_"+name,MuonLayerHoughCombisKey="MuonLayerHoughCombis_"+name))
651
652
653 # need to run precisions tracking for late muons, since we don't run it anywhere else
654 from TrigInDetConfig.TrigInDetConfig import trigInDetPrecisionTrackingCfg
655 muLateFlags = getFlagsForActiveConfig(flags, "muonLate", log)
656 acc.merge(trigInDetPrecisionTrackingCfg(muLateFlags, rois= RoIs, signatureName="muonLate", in_view=False))
657 trackParticles = muLateFlags.Tracking.ActiveConfig.tracks_IDTrig
658
659 #Make InDetCandidates
660 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name="TrigMuonCombinedInDetCandidateAlg_"+name,TrackParticleLocation=[trackParticles],ForwardParticleLocation=trackParticles,InDetCandidateLocation="InDetCandidates_"+name,ExtendBulk=True))
661
662 else:
663 # for non-latemu chains, the decoding/hough transform is run in an earlier step
664 #Need PRD containers for inside-out reco
665 acc.merge(VDVMuInsideOutCfg(flags, name, candidatesName, suffix))
666
667 #Inside-out reconstruction
668
669 cbMuonName = muNames.EFCBInOutMuons+suffix
670 if 'Late' in name:
671 cbMuonName = recordable(cbMuonName+"_Late")
672 acc.merge(MuGirlStauAlgCfg(flags, name="TrigMuonLateInsideOutRecoAlg_"+name,InDetCandidateLocation="InDetCandidates_"+name))
673 acc.merge(StauCreatorAlgCfg(flags, name="TrigLateMuonCreatorAlg_"+name, TagMaps=["stauTagMap"], SegmentContainerName="", InDetCandidateLocation="InDetCandidates_"+name,
674 MuonContainerLocation=cbMuonName, MonTool=MuonCreatorAlgMonitoring(flags, "LateMuonCreatorAlg_"+name)))
675 else:
676 acc.merge(MuonInDetToMuonSystemExtensionAlgCfg(flags, name="TrigInDetMuonExtensionAlg_"+name+suffix, InputInDetCandidates="InDetCandidates_"+name+suffix,
677 WriteInDetCandidates="InDetCandidatesSystemExtended_"+name+suffix))
678 if 'RoI' in name:
679 ioTool = MuonInsideOutRecoToolCfg(flags, MuonLayerSegmentFinderTool="", InputSegments="TrackMuonSegments")
680 else:
681 ioTool = MuonInsideOutRecoToolCfg(flags)
682 InsideOutRecoTool = acc.popToolsAndMerge(ioTool)
683
684 acc.merge(MuonInsideOutRecoAlgCfg(flags, name="TrigMuonInsideOutRecoAlg_"+name+suffix,InDetCandidateLocation="InDetCandidatesSystemExtended_"+name+suffix, MuonCombinedInDetExtensionTool=InsideOutRecoTool))
685
686 acc.merge(MuonCreatorAlgCfg(flags, name="TrigMuonCreatorAlgInsideOut_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=["muGirlTagMap"],InDetCandidateLocation="InDetCandidates_"+name+suffix,
687 MuonContainerLocation = cbMuonName, ExtrapolatedLocation = "InsideOutCBExtrapolatedMuons"+suffix,
688 MSOnlyExtrapolatedLocation = "InsideOutCBMSOnlyExtrapolatedMuons"+suffix, CombinedLocation = "InsideOutCBCombinedMuon"+suffix, MonTool = MuonCreatorAlgMonitoring(flags, "MuonCreatorAlgInsideOut_"+name+suffix)))
689
690 return acc
691
692

◆ muEFSARecoSequenceCfg()

muEFSARecoSequenceCfg ( flags,
RoIs,
suffix = "",
useBucketFilter = False )

Definition at line 341 of file MuonRecoSequences.py.

341def muEFSARecoSequenceCfg(flags, RoIs, suffix="", useBucketFilter=False):
342
343 acc = ComponentAccumulator()
344
345 acc.merge(EFMuSADataPrepViewDataVerifierCfg(flags, RoIs=RoIs, suffix=suffix))
346
347 nameGroups = muNamesFS if 'FS' in suffix else muNames
348
349 if flags.Muon.usePhaseIIGeoSetup and flags.Muon.scheduleActsReco:
350
351 if "newFast" in suffix:
352 msMuonName = nameGroups.EFSAMuonsPhIINewFast
353 msTrackName = nameGroups.EFSATrackParticlesPhIINewFast
354 elif useBucketFilter:
355 msMuonName = nameGroups.EFSAMuonsPhIIMlbkt
356 msTrackName = nameGroups.EFSATrackParticlesPhIIMlbkt
357 else:
358 msMuonName = nameGroups.EFSAMuonsPhII
359 msTrackName = nameGroups.EFSATrackParticlesPhII
360
361 # Schedule reco-to-truth object association
362 if flags.Muon.setupTruthAlgorithms:
363 from MuonObjectMarker.ObjectMarkerConfig import TruthMeasMarkerAlgCfg
364 acc.merge(TruthMeasMarkerAlgCfg(flags, name = f"TruthMeasMarkerAlg{suffix}"))
365 from MuonTruthAlgsR4.MuonTruthAlgsConfig import TruthHitAssociationCfg, RecoSegmentTruthAssocCfg, MuonToTruthAssocAlgCfg
366 acc.merge(TruthHitAssociationCfg(flags, useSDO=True, suffix=suffix))
367 acc.merge(RecoSegmentTruthAssocCfg(flags, name=f"MuonSegmentsFromR4TruthMatching{suffix}",
368 SegmentKey="MuonSegmentsFromR4"))
369 acc.merge(MuonToTruthAssocAlgCfg(flags, name=f'MuonToTruthMatchingAlg{suffix}'))
370
371 # ML bucket filter
372 if useBucketFilter:
373 from MuonInference.InferenceConfig import GraphBucketFilterToolCfg, GraphInferenceAlgCfg
374 bucketTool = acc.popToolsAndMerge(GraphBucketFilterToolCfg(flags, name=f"GraphBucketFilterTool{suffix}",
375 WriteSpacePointKey="FilteredMlBuckets"))
376 acc.merge(GraphInferenceAlgCfg(flags, name = f"GraphInferenceAlg{suffix}",
377 InferenceTools=[bucketTool]))
378
379 # Pattern recognition & segment fitting
380 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
381 segmentContainers = []
382 if flags.Detector.GeometrysTGC or flags.Detector.GeometryMM:
383 segmentContainers+=["MuonNswSegments"]
384 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name=f"MuonNswEtaHoughTransformAlg{suffix}",
385 EtaHoughMaxContainer = "MuonHoughNswMaxima",
386 SpacePointContainer = "NswSpacePoints"))
387 acc.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f"MuonNswSegmentFinderAlg{suffix}",
388 MuonNswSegmentWriteKey = segmentContainers[-1],
389 MuonNswSegmentSeedWriteKey = "MuonNswSegmentSeeds",
390 CombinatorialReadKey = "MuonHoughNswMaxima"))
391
392 if flags.Detector.GeometryMDT or flags.Detector.GeometryRPC or flags.Detector.GeometryTGC:
393 if useBucketFilter:
394 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}",
395 SpacePointContainer = "FilteredMlBuckets"))
396 else:
397 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f"MuonEtaHoughTransformAlg{suffix}"))
398
399 acc.merge(MuonPhiHoughTransformAlgCfg(flags, name = f"MuonPhiHoughTransformAlg{suffix}"))
400
401 segmentContainers+=["R4MuonSegments"]
402 acc.merge(MuonSegmentFittingAlgCfg(flags, name = f"MuonSegmentFittingAlg{suffix}",
403 OutSegmentContainer=segmentContainers[-1]))
404
405 from MuonSegmentCnv.MuonSegmentCnvConfig import xAODSegmentCnvAlgCfg
406 acc.merge(xAODSegmentCnvAlgCfg(flags, name = f"MuonR4xAODSegmentCnvAlg{suffix}",
407 InSegmentKeys = segmentContainers))
408
409 from MuonSegmentCnv.MuonSegmentCnvConfig import MuonR4SegmentCnvAlgCfg
410 acc.merge(MuonR4SegmentCnvAlgCfg(flags, name=f"MuonR4SegmentCnvAlg{suffix}",
411 ReadSegments = segmentContainers,
412 WriteKey="TrackMuonSegments"))
413
414 # Track building
415 from MuonTrackFindingAlgs.TrackFindingConfig import MSTrackFinderAlgCfg, StandaloneTrackPartCnvCfg, MuidSaTagMakerAlgCfg, MuonCreatorAlgCfg
416 acc.merge(MSTrackFinderAlgCfg(flags, name=f"MSTrackFinderAlg{suffix}"))
417 acc.merge(StandaloneTrackPartCnvCfg(flags, name=f"MuonMsTrackParticleCnvR4{suffix}",
418 TrackParticlesOutKey = msTrackName))
419 acc.merge(MuidSaTagMakerAlgCfg(flags, name=f"MuidSaTagMakerAlg{suffix}",
420 MsTracks = msTrackName))
421 acc.merge(MuonCreatorAlgCfg(flags, name = f"MuonActsCreatorAlg{suffix}",
422 TagKeys = ["MuonTagsSA"],
423 MuonKey = msMuonName))
424 # This alg needs to be removed once the Phase-2 combined steps is ready
425 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg
426 acc.merge(MuonCombinedMuonCandidateAlgCfg(flags, name=f"MuonCombinedMuonCandidateAlg{suffix}",
427 MuonSpectrometerTrackParticleLocation = msTrackName))
428 else:
429 msMuonName = nameGroups.EFSAMuons
430
431 from MuonConfig.MuonSegmentFindingConfig import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
432 acc.merge(MuonLayerHoughAlgCfg(flags, f"TrigMuonLayerHoughAlg{suffix}"))
433 acc.merge(MuonSegmentFinderAlgCfg(flags, f"TrigMuonSegmentMaker{suffix}"))
434
435 from MuonSegmentTrackMaker.MuonTrackMakerAlgsMonitoring import MuPatTrackBuilderMonitoring
436 from MuonConfig.MuonTrackBuildingConfig import MuPatTrackBuilderCfg
437 from xAODTrackingCnv.xAODTrackingCnvConfig import MuonStandaloneTrackParticleCnvAlgCfg
438 acc.merge(MuPatTrackBuilderCfg(flags, name=f"TrigMuPatTrackBuilder{suffix}",
439 MuonSegmentCollection = "TrackMuonSegments",
440 MonTool = MuPatTrackBuilderMonitoring(flags, f"MuPatTrackBuilderMonitoringSA{suffix}")))
441
442 acc.merge(MuonStandaloneTrackParticleCnvAlgCfg(flags, name = f"TrigMuonStandaloneTrackParticleCnvAlg{suffix}"))
443 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg, MuonCreatorAlgCfg
444 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring import MuonCreatorAlgMonitoring
445 acc.merge(MuonCombinedMuonCandidateAlgCfg(flags, name=f"TrigMuonCandidateAlg{suffix}"))
446 acc.merge(MuonCreatorAlgCfg(flags, name=f"TrigMuonCreatorAlg_{suffix}",
447 CreateSAmuons=True,
448 TagMaps=[],
449 MuonContainerLocation=msMuonName,
450 ExtrapolatedLocation = f"HLT_MSExtrapolatedMuons_{suffix}",
451 MSOnlyExtrapolatedLocation = f"HLT_MSOnlyExtrapolatedMuons_{suffix}",
452 MonTool = MuonCreatorAlgMonitoring(flags, f"MuonCreatorAlgSA_{suffix}")))
453
454 sequenceOut = msMuonName
455
456 return acc, sequenceOut
457
458
459

◆ muFastRecoSequenceCfg()

muFastRecoSequenceCfg ( flags,
RoIs,
suffix = "",
doFullScanID = False,
InsideOutMode = False,
extraLoads = None,
l2mtmode = False,
calib = False,
useNewFast = False )

Definition at line 200 of file MuonRecoSequences.py.

200def muFastRecoSequenceCfg( flags, RoIs, suffix="", doFullScanID = False, InsideOutMode=False, extraLoads=None, l2mtmode=False, calib=False, useNewFast=False ):
201
202 acc = ComponentAccumulator()
203
204 if useNewFast:
205 acc.merge(muFastVDVCfg(flags, RoIs=RoIs, suffix=suffix, InsideOutMode=False, extraLoads=None))
206
207 from MuonFastRecoAlgs.MuonFastReconstructionConfig import MuonFastReconstructionAlgCfg
208 acc.merge(MuonFastReconstructionAlgCfg(flags, name=f"MuonFastReconstructionAlg{suffix}",
209 OutMuons=muNames.L2SAMuonsPhII))
210 else:
211
212 suffix = ""
213 if InsideOutMode:
214 suffix="IOmode"
215 elif l2mtmode:
216 suffix="l2mtmode"
217 elif calib:
218 suffix="Calib"
219
220 acc.merge(muFastVDVCfg(flags, RoIs=RoIs, suffix=suffix, InsideOutMode=InsideOutMode, extraLoads=extraLoads))
221
222
223 from TrigL2MuonSA.TrigL2MuonSAConfig import l2MuFastAlgCfg
224 acc.merge(l2MuFastAlgCfg(flags,
225 roisKey = RoIs,
226 setup = suffix,
227 FILL_FSIDRoI = doFullScanID,
228 MuonL2SAInfo = muNames.L2SAMuons+suffix,
229 L2IOCB = muNames.L2CBMuons+suffix,
230 forID = muNames.L2forIDName+suffix,
231 forMS = "forMS"+suffix,
232 TrackParticlesContainerName = getIDTracks(flags)))
233 return acc
234

◆ muFastVDVCfg()

muFastVDVCfg ( flags,
RoIs,
suffix,
InsideOutMode,
extraLoads )

Definition at line 164 of file MuonRecoSequences.py.

164def muFastVDVCfg(flags, RoIs, suffix, InsideOutMode, extraLoads):
165 result=ComponentAccumulator()
166 # In insideout mode, need to inherit muon decoding objects for TGC, RPC, MDT, CSC
167 dataObjects=[]
168 if InsideOutMode:
169 dataObjects = [('Muon::TgcPrepDataContainer','StoreGateSvc+TGC_MeasurementsAllBCs'),
170 ('TgcRdoContainer' , 'StoreGateSvc+TGCRDO'),
171 ('Muon::RpcPrepDataContainer','StoreGateSvc+RPC_Measurements'),
172 ('Muon::MdtPrepDataContainer','StoreGateSvc+MDT_DriftCircles'),
173 *( [( 'RpcPadContainer' , 'StoreGateSvc+RPCPAD' )] if "RPCPAD" in flags.Input.Collections else [] )]
174 if flags.Detector.GeometryCSC:
175 dataObjects += [('Muon::CscPrepDataContainer','StoreGateSvc+CSC_Clusters')]
176 if flags.Detector.GeometrysTGC:
177 dataObjects += [('Muon::sTgcPrepDataContainer','StoreGateSvc+STGC_Measurements')]
178 if flags.Detector.GeometryMM:
179 dataObjects += [('Muon::MMPrepDataContainer','StoreGateSvc+MM_Measurements')]
180
181 if flags.Muon.usePhaseIIGeoSetup:
182 dataObjects += [('ActsTrk::GeometryContext' , 'StoreGateSvc+ActsAlignment' )]
183
184 else:
185 dataObjects += [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
186 dataObjects += [( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' )]
187 if flags.Trigger.enableL1MuonPhase1:
188 dataObjects += [( 'xAOD::MuonRoIContainer' , 'StoreGateSvc+LVL1MuonRoIs' )]
189 else:
190 dataObjects += [( 'DataVector< LVL1::RecMuonRoI >' , 'StoreGateSvc+HLT_RecMURoIs' )]
191
192 #For L2 multi-track SA mode
193 if extraLoads:
194 dataObjects += extraLoads
195 ViewVerify = CompFactory.AthViews.ViewDataVerifier("muFastRecoVDV"+suffix, DataObjects = dataObjects)
196
197 result.addEventAlgo(ViewVerify)
198 return result
199

◆ muonDecodeCfg()

muonDecodeCfg ( flags,
RoIs )

Definition at line 101 of file MuonRecoSequences.py.

101def muonDecodeCfg(flags, RoIs):
102 acc = ComponentAccumulator()
103
104 doSeededDecoding =True
105 if 'FSRoI' in RoIs:
106 doSeededDecoding = False
107 acc.merge(MuDataPrepViewDataVerifierCfg(flags))
108
109 # Get RPC BS decoder
110 if not flags.Input.isMC:
111 rpcAcc = RpcBytestreamDecodeCfg( flags, name = "RpcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
112 acc.merge( rpcAcc )
113 if flags.Muon.enableNRPC:
114 acc.merge(NrpcBytestreamDecodeCfg( flags, name="NRpcRawDataProvider_"+RoIs ))
115 # Get RPC RDO convertor
116 rpcAcc = RpcRDODecodeCfg( flags, name= "RpcRdoToRpcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
117 acc.merge( rpcAcc )
118 # Get TGC BS decoder
119 if not flags.Input.isMC:
120 tgcAcc = TgcBytestreamDecodeCfg( flags, name="TgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
121 acc.merge( tgcAcc )
122 # Get TGC RDO convertor
123 tgcAcc = TgcRDODecodeCfg( flags, name="TgcRdoToTgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
124 acc.merge( tgcAcc )
125 # Get MDT BS decoder
126 if not flags.Input.isMC:
127 mdtAcc = MdtBytestreamDecodeCfg( flags, name="MdtRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
128 acc.merge( mdtAcc )
129 # Get MDT RDO convertor
130 mdtAcc = MdtRDODecodeCfg( flags, name="MdtRdoToMdtPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
131 acc.merge( mdtAcc )
132 # Get CSC BS decoder
133 if flags.Detector.GeometryCSC:
134 if not flags.Input.isMC:
135 cscAcc = CscBytestreamDecodeCfg( flags, name="CscRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
136 acc.merge( cscAcc )
137 # Get CSC RDO convertor
138 cscAcc = CscRDODecodeCfg( flags, name="CscRdoToCscPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
139 acc.merge( cscAcc )
140 # Get CSC cluster builder
141 cscAcc = CscClusterBuildCfg( flags, name="CscThresholdClusterBuilder_"+RoIs )
142 acc.merge( cscAcc )
143 #sTGC and MM BS decoder
144 if flags.Detector.GeometrysTGC and flags.Detector.GeometryMM:
145 if not flags.Input.isMC:
146 stgcAcc = sTgcBytestreamDecodeCfg(flags, name="sTgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
147 acc.merge( stgcAcc )
148 mmAcc = MmBytestreamDecodeCfg(flags, name="MMRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
149 acc.merge( mmAcc )
150 #sTGC and MM RDO converter
151 stgcAcc = StgcRDODecodeCfg( flags, name="StgcRdoToStgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
152 acc.merge( stgcAcc )
153
154 mmAcc = MMRDODecodeCfg( flags, name="MMRdoToMMPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
155 acc.merge( mmAcc )
156
157 # SpacePoint formation
158 if flags.Muon.usePhaseIIGeoSetup and flags.Muon.scheduleActsReco:
159 from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
160 acc.merge( MuonSpacePointFormationCfg( flags, suffix =f'_{RoIs}' ) )
161
162 return acc
163

◆ muonIDCosmicTrackingSequenceCfg()

muonIDCosmicTrackingSequenceCfg ( flags,
RoIs,
name,
extraLoads = None,
extraLoadsForl2mtmode = None )

Definition at line 257 of file MuonRecoSequences.py.

257def muonIDCosmicTrackingSequenceCfg( flags, RoIs, name, extraLoads=None, extraLoadsForl2mtmode=None ):
258
259 acc = ComponentAccumulator()
260
261 acc.merge(muonIDtrackVDVCfg(flags, 'cosmics', RoIs, extraLoads, extraLoadsForl2mtmode))
262
263 flagsWithTrk = getFlagsForActiveConfig(flags, "cosmics", log)
264
265 from TrigInDetConfig.InnerTrackingTrigSequence import InnerTrackingTrigSequence
266 seq = InnerTrackingTrigSequence.create(flagsWithTrk,
267 flagsWithTrk.Tracking.ActiveConfig.input_name,
268 rois = RoIs,
269 inView = "muCombVDVcosmics")
270 acc.merge(seq.sequence("Offline"))
271
272
273 return acc
274

◆ muonIDFastTrackingSequenceCfg()

muonIDFastTrackingSequenceCfg ( flags,
RoIs,
name,
extraLoads = None,
extraLoadsForl2mtmode = None,
doLRT = False,
trackingMode = "FTF" )

Definition at line 247 of file MuonRecoSequences.py.

247def muonIDFastTrackingSequenceCfg( flags, RoIs, name, extraLoads=None, extraLoadsForl2mtmode=None, doLRT=False, trackingMode="FTF" ):
248
249 acc = ComponentAccumulator()
250 from TrigInDetConfig.TrigInDetConfig import trigInDetFastTrackingCfg
251 acc.merge(trigInDetFastTrackingCfg( flags, roisKey=RoIs, signatureName=name, patternMode=trackingMode ))
252
253 acc.merge(muonIDtrackVDVCfg(flags, name, RoIs, extraLoads, extraLoadsForl2mtmode))
254
255 return acc
256

◆ muonIDtrackVDVCfg()

muonIDtrackVDVCfg ( flags,
name,
RoIs,
extraLoads = None,
extraLoadsForl2mtmode = None )

Definition at line 235 of file MuonRecoSequences.py.

235def muonIDtrackVDVCfg( flags, name, RoIs, extraLoads=None, extraLoadsForl2mtmode=None ):
236 result=ComponentAccumulator()
237 dataObjects=[( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs )]
238 if extraLoads:
239 dataObjects += extraLoads
240 if extraLoadsForl2mtmode:
241 dataObjects += extraLoadsForl2mtmode
242 ViewVerify = CompFactory.AthViews.ViewDataVerifier("muCombVDV"+name, DataObjects = dataObjects)
243
244 result.addEventAlgo(ViewVerify)
245 return result
246

◆ VDVEFMuCBCfg()

VDVEFMuCBCfg ( flags,
RoIs,
name,
suffix )

Definition at line 460 of file MuonRecoSequences.py.

460def VDVEFMuCBCfg(flags, RoIs, name, suffix):
461 acc = ComponentAccumulator()
462 dataObjects = [( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ),
463 ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_MeasurementsAllBCs' ),
464 ( 'Muon::RpcPrepDataContainer' , 'StoreGateSvc+RPC_Measurements' ),
465 ( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+%s' % RoIs ),
466 ( 'xAOD::EventInfo' , 'StoreGateSvc+EventInfo' ),
467 ]
468 if "FS" in name:
469 dataObjects +=[( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' )]
470 else:
471 dataObjects +=[( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates')]
472
473 if flags.Detector.GeometryCSC:
474 dataObjects += [( 'Muon::CscStripPrepDataContainer' , 'StoreGateSvc+CSC_Measurements' )]
475 if flags.Detector.GeometrysTGC and flags.Detector.GeometryMM:
476 dataObjects += [( 'Muon::MMPrepDataContainer' , 'StoreGateSvc+MM_Measurements'),
477 ( 'Muon::sTgcPrepDataContainer' , 'StoreGateSvc+STGC_Measurements') ]
478 if flags.Muon.usePhaseIIGeoSetup:
479 dataObjects += [( 'MuonR4::SpacePointContainer' , 'StoreGateSvc+MuonSpacePoints' )]
480 if flags.Detector.GeometrysTGC or flags.Detector.GeometryMM:
481 dataObjects += [( 'MuonR4::SpacePointContainer' , 'StoreGateSvc+NswSpacePoints' )]
482
483 alg = CompFactory.AthViews.ViewDataVerifier( name = "VDVMuEFCB_"+name+suffix,
484 DataObjects = dataObjects)
485 acc.addEventAlgo(alg)
486 return acc
487
488
489

◆ VDVidReuseITkCfg()

VDVidReuseITkCfg ( flags,
suffix )

Definition at line 516 of file MuonRecoSequences.py.

516def VDVidReuseITkCfg(flags, suffix):
517 acc = ComponentAccumulator()
518
519 vdvName = "VDVidReuseITk"
520 dataObjects = []
521
522 from TrigInDetConfig.TrigInDetConfig import InDetExtraDataObjectsFromDataPrep
523 InDetExtraDataObjectsFromDataPrep(flags, dataObjects)
524
525 alg = CompFactory.AthViews.ViewDataVerifier( name = vdvName+suffix,
526 DataObjects = dataObjects)
527 acc.addEventAlgo(alg)
528 return acc
529
530

◆ VDVLateMuCfg()

VDVLateMuCfg ( flags)

Definition at line 727 of file MuonRecoSequences.py.

727def VDVLateMuCfg(flags):
728 acc = ComponentAccumulator()
729 dataObjects = [( 'xAOD::MuonRoIContainer', 'StoreGateSvc+LVL1MuonRoIsBCm2' ),
730 ( 'xAOD::MuonRoIContainer', 'StoreGateSvc+LVL1MuonRoIsBCm1' ),
731 ( 'xAOD::MuonRoIContainer', 'StoreGateSvc+LVL1MuonRoIsBCp1' ),
732 ( 'xAOD::MuonRoIContainer', 'StoreGateSvc+LVL1MuonRoIsBCp2' )]
733
734 alg = CompFactory.AthViews.ViewDataVerifier( name = "efLateMuRoIVDV",
735 DataObjects = dataObjects)
736 acc.addEventAlgo(alg)
737 return acc
738
739

◆ VDVMuInsideOutCfg()

VDVMuInsideOutCfg ( flags,
name,
candidatesName,
suffix )

Definition at line 612 of file MuonRecoSequences.py.

612def VDVMuInsideOutCfg(flags, name, candidatesName, suffix):
613 acc = ComponentAccumulator()
614 dataObjects = [( 'Muon::RpcPrepDataContainer' , 'StoreGateSvc+RPC_Measurements' ),
615 ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_MeasurementsAllBCs' ),
616 ( 'MuonCandidateCollection' , 'StoreGateSvc+'+candidatesName ),
617 ('Trk::SegmentCollection' , 'StoreGateSvc+TrackMuonSegments')]
618 if not isCosmic(flags): dataObjects += [( 'Muon::HoughDataPerSectorVec' , 'StoreGateSvc+HoughDataPerSectorVec')]
619 if flags.Detector.GeometryCSC:
620 dataObjects += [( 'Muon::CscPrepDataContainer' , 'StoreGateSvc+CSC_Clusters' )]
621 if flags.Detector.GeometrysTGC and flags.Detector.GeometryMM:
622 dataObjects += [( 'Muon::MMPrepDataContainer' , 'StoreGateSvc+MM_Measurements'),
623 ( 'Muon::sTgcPrepDataContainer' , 'StoreGateSvc+STGC_Measurements') ]
624
625 alg = CompFactory.AthViews.ViewDataVerifier( name = "VDVMuInsideOut_"+name+suffix,
626 DataObjects = dataObjects)
627 acc.addEventAlgo(alg)
628 return acc
629
630

◆ VDVMuIsoCfg()

VDVMuIsoCfg ( flags,
name,
RoIs )

Definition at line 693 of file MuonRecoSequences.py.

693def VDVMuIsoCfg(flags, name, RoIs):
694 acc = ComponentAccumulator()
695 dataObjects = [( 'TrigRoiDescriptorCollection' , 'StoreGateSvc+'+RoIs ),
696 ( 'xAOD::MuonContainer' , 'StoreGateSvc+IsoViewMuons'+name )]
697
698 alg = CompFactory.AthViews.ViewDataVerifier( name = "efMuIsoVDV"+name,
699 DataObjects = dataObjects)
700 acc.addEventAlgo(alg)
701 return acc
702
703

◆ VDVPrecMuTrkCfg()

VDVPrecMuTrkCfg ( flags,
name,
suffix )

Definition at line 490 of file MuonRecoSequences.py.

490def VDVPrecMuTrkCfg(flags, name, suffix):
491 acc = ComponentAccumulator()
492
493 vdvName = "VDVMuTrkLRT" if "LRT" in name else "VDVMuTrk"
494 trkname = "LRT" if "LRT" in name else ''
495 dataObjects = [( 'xAOD::IParticleContainer' , 'StoreGateSvc+'+ getIDTracks(flags, trkname) )]
496
497 if not flags.Muon.enableTrigIDtrackReuse and suffix == '':
498 dataObjects += [( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+getIDTracks(flags, trkname, muonIDreuse=flags.Muon.enableTrigIDtrackReuse) )]
499 else:
500 if suffix != 'idReuse':
501 MuonL2CBContainer = muNames.L2CBMuons+suffix
502 else:
503 MuonL2CBContainer = muNames.L2CBMuons
504 dataObjects += [( 'xAOD::L2CombinedMuonContainer', 'StoreGateSvc+'+MuonL2CBContainer)]
505
506 if not flags.Input.isMC:
507 dataObjects += [( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ),
508 ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )]
509
510 alg = CompFactory.AthViews.ViewDataVerifier( name = vdvName+suffix,
511 DataObjects = dataObjects)
512 acc.addEventAlgo(alg)
513 return acc
514
515

Variable Documentation

◆ log

python.HLT.Muon.MuonRecoSequences.log = logging.getLogger(__name__)

Definition at line 6 of file MuonRecoSequences.py.

◆ muNames

python.HLT.Muon.MuonRecoSequences.muNames = muonNames().getNames('RoI')

Definition at line 20 of file MuonRecoSequences.py.

◆ muNamesFS

python.HLT.Muon.MuonRecoSequences.muNamesFS = muonNames().getNames('FS')

Definition at line 21 of file MuonRecoSequences.py.

◆ muNamesLRT

python.HLT.Muon.MuonRecoSequences.muNamesLRT = muonNames().getNames('LRT')

Definition at line 22 of file MuonRecoSequences.py.