140 acc = ComponentAccumulator()
142 doSeededDecoding =
True
144 doSeededDecoding =
False
148 if not flags.Input.isMC:
149 rpcAcc = RpcBytestreamDecodeCfg( flags, name =
"RpcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
151 if flags.Muon.enableNRPC:
152 acc.merge(NrpcBytestreamDecodeCfg( flags, name=
"NRpcRawDataProvider_"+RoIs ))
154 rpcAcc = RpcRDODecodeCfg( flags, name=
"RpcRdoToRpcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
157 if not flags.Input.isMC:
158 tgcAcc = TgcBytestreamDecodeCfg( flags, name=
"TgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
161 tgcAcc = TgcRDODecodeCfg( flags, name=
"TgcRdoToTgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
164 if not flags.Input.isMC:
165 mdtAcc = MdtBytestreamDecodeCfg( flags, name=
"MdtRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
168 mdtAcc = MdtRDODecodeCfg( flags, name=
"MdtRdoToMdtPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
171 if flags.Detector.GeometryCSC:
172 if not flags.Input.isMC:
173 cscAcc = CscBytestreamDecodeCfg( flags, name=
"CscRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
176 cscAcc = CscRDODecodeCfg( flags, name=
"CscRdoToCscPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
179 cscAcc = CscClusterBuildCfg( flags, name=
"CscThresholdClusterBuilder_"+RoIs )
182 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
183 if not flags.Input.isMC:
184 stgcAcc = sTgcBytestreamDecodeCfg(flags, name=
"sTgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
186 mmAcc = MmBytestreamDecodeCfg(flags, name=
"MMRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
189 stgcAcc = StgcRDODecodeCfg( flags, name=
"StgcRdoToStgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
192 mmAcc = MMRDODecodeCfg( flags, name=
"MMRdoToMMPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
196 if flags.Muon.usePhaseIIGeoSetup
and flags.Muon.scheduleActsReco:
197 from MuonSpacePointFormation.SpacePointFormationConfig
import MuonSpacePointFormationCfg
198 acc.merge( MuonSpacePointFormationCfg( flags, suffix =f
'_{RoIs}' ) )
238def muFastRecoSequenceCfg( flags, RoIs, doFullScanID = False, InsideOutMode=False, extraLoads=None, l2mtmode=False, calib=False, useNewFast=False ):
240 acc = ComponentAccumulator()
249 acc.merge(
muFastVDVCfg(flags, RoIs, postFix, InsideOutMode, extraLoads))
252 from MuonFastRecoAlgs.MuonFastReconstructionConfig
import MuonFastReconstructionAlgCfg
253 acc.merge(MuonFastReconstructionAlgCfg(flags, name=f
"MuonFastReconstructionAlg_{RoIs}",
254 OutMuons=muNames.L2SANamePhII))
257 from TrigL2MuonSA.TrigL2MuonSAConfig
import l2MuFastAlgCfg
258 acc.merge(l2MuFastAlgCfg(flags,
261 FILL_FSIDRoI = doFullScanID,
262 MuonL2SAInfo = muNames.L2SAName+postFix,
263 L2IOCB = muNames.L2CBName+postFix,
264 forID = muNames.L2forIDName+postFix,
265 forMS =
"forMS"+postFix,
379 acc = ComponentAccumulator()
383 msMuonName = muNames.EFSAName
385 msMuonName = muNamesFS.EFSAName
387 if flags.Muon.usePhaseIIGeoSetup
and flags.Muon.scheduleActsReco:
390 if flags.Muon.setupTruthAlgorithms:
391 from MuonObjectMarker.ObjectMarkerConfig
import TruthMeasMarkerAlgCfg
392 acc.merge(TruthMeasMarkerAlgCfg(flags, name = f
"TruthMeasMarkerAlg{suffix}"))
393 from MuonTruthAlgsR4.MuonTruthAlgsConfig
import TruthHitAssociationCfg, RecoSegmentTruthAssocCfg, MuonToTruthAssocAlgCfg
394 acc.merge(TruthHitAssociationCfg(flags, useSDO=
True, suffix=suffix))
395 acc.merge(RecoSegmentTruthAssocCfg(flags, name=f
"MuonSegmentsFromR4TruthMatching{suffix}",
396 SegmentKey=
"MuonSegmentsFromR4"))
397 acc.merge(MuonToTruthAssocAlgCfg(flags, name=f
'MuonToTruthMatchingAlg{suffix}'))
401 from MuonInference.InferenceConfig
import GraphBucketFilterToolCfg, GraphInferenceAlgCfg
402 bucketTool = acc.popToolsAndMerge(GraphBucketFilterToolCfg(flags, name=f
"GraphBucketFilterTool{suffix}",
403 WriteSpacePointKey=f
"FilteredMlBuckets{suffix}"))
404 acc.merge(GraphInferenceAlgCfg(flags, name = f
"GraphInferenceAlg{suffix}",
405 InferenceTools=[bucketTool]))
408 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig
import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
409 segmentContainers = []
410 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
411 segmentContainers+=[
"MuonNswSegments"]
412 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name=f
"MuonNswEtaHoughTransformAlg{suffix}",
413 EtaHoughMaxContainer =
"MuonHoughNswMaxima",
414 SpacePointContainer =
"NswSpacePoints"))
415 acc.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f
"MuonNswSegmentFinderAlg{suffix}",
416 MuonNswSegmentWriteKey = segmentContainers[-1],
417 MuonNswSegmentSeedWriteKey =
"MuonNswSegmentSeeds",
418 CombinatorialReadKey =
"MuonHoughNswMaxima"))
420 if flags.Detector.GeometryMDT
or flags.Detector.GeometryRPC
or flags.Detector.GeometryTGC:
421 if flags.Muon.enableMLBucketFilter:
422 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f
"MuonEtaHoughTransformAlg{suffix}",
423 SpacePointContainer =
"FilteredMlBuckets"))
425 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f
"MuonEtaHoughTransformAlg{suffix}"))
427 acc.merge(MuonPhiHoughTransformAlgCfg(flags, name = f
"MuonPhiHoughTransformAlg{suffix}"))
429 segmentContainers+=[
"R4MuonSegments"]
430 acc.merge(MuonSegmentFittingAlgCfg(flags, name = f
"MuonSegmentFittingAlg{suffix}",
431 OutSegmentContainer=segmentContainers[-1]))
433 from MuonSegmentCnv.MuonSegmentCnvConfig
import xAODSegmentCnvAlgCfg
434 acc.merge(xAODSegmentCnvAlgCfg(flags, name = f
"MuonR4xAODSegmentCnvAlg{suffix}",
435 InSegmentKeys = segmentContainers))
437 from MuonSegmentCnv.MuonSegmentCnvConfig
import MuonR4SegmentCnvAlgCfg
438 acc.merge(MuonR4SegmentCnvAlgCfg(flags, name=f
"MuonR4SegmentCnvAlg{suffix}",
439 ReadSegments = segmentContainers,
440 WriteKey=
"TrackMuonSegments"))
443 from MuonTrackFindingAlgs.TrackFindingConfig
import MSTrackFinderAlgCfg, StandaloneTrackPartCnvCfg, MuidSaTagMakerAlgCfg, MuonCreatorAlgCfg
444 acc.merge(MSTrackFinderAlgCfg(flags, name=f
"MSTrackFinderAlg{suffix}"))
445 trackContainer = f
"HLT_MSMuons_{suffix}"
446 acc.merge(StandaloneTrackPartCnvCfg(flags, name=f
"MuonMsTrackParticleCnvR4{suffix}",
447 TrackParticlesOutKey = trackContainer))
448 acc.merge(MuidSaTagMakerAlgCfg(flags, name=f
"MuidSaTagMakerAlg{suffix}",
449 MsTracks = trackContainer))
450 acc.merge(MuonCreatorAlgCfg(flags, name = f
"MuonActsCreatorAlg{suffix}",
451 TagKeys = [
"MuonTagsSA"],
452 MuonKey = msMuonName))
455 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
456 acc.merge(MuonLayerHoughAlgCfg(flags, f
"TrigMuonLayerHoughAlg{suffix}"))
457 acc.merge(MuonSegmentFinderAlgCfg(flags, f
"TrigMuonSegmentMaker{suffix}"))
459 from MuonSegmentTrackMaker.MuonTrackMakerAlgsMonitoring
import MuPatTrackBuilderMonitoring
460 from MuonConfig.MuonTrackBuildingConfig
import MuPatTrackBuilderCfg
461 from xAODTrackingCnv.xAODTrackingCnvConfig
import MuonStandaloneTrackParticleCnvAlgCfg
462 acc.merge(MuPatTrackBuilderCfg(flags, name=f
"TrigMuPatTrackBuilder{suffix}",
463 MuonSegmentCollection =
"TrackMuonSegments",
464 MonTool = MuPatTrackBuilderMonitoring(flags, f
"MuPatTrackBuilderMonitoringSA{suffix}")))
466 acc.merge(MuonStandaloneTrackParticleCnvAlgCfg(flags, name = f
"TrigMuonStandaloneTrackParticleCnvAlg{suffix}"))
467 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCombinedMuonCandidateAlgCfg, MuonCreatorAlgCfg
468 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
469 acc.merge(MuonCombinedMuonCandidateAlgCfg(flags, name=f
"TrigMuonCandidateAlg{suffix}"))
470 acc.merge(MuonCreatorAlgCfg(flags, name=f
"TrigMuonCreatorAlg_{suffix}",
473 MuonContainerLocation=msMuonName,
474 ExtrapolatedLocation = f
"HLT_MSExtrapolatedMuons_{suffix}",
475 MSOnlyExtrapolatedLocation = f
"HLT_MSOnlyExtrapolatedMuons_{suffix}",
476 MonTool = MuonCreatorAlgMonitoring(flags, f
"MuonCreatorAlgSA_{suffix}")))
478 sequenceOut = msMuonName
480 return acc, sequenceOut
558 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
559 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
560 acc = ComponentAccumulator()
566 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
567 acc.merge(trigInDetFastTrackingCfg( flags, roisKey=RoIs, signatureName=
"muonFS" ))
574 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
578 if isCosmic(flags)
and 'LRT' not in name:
579 trackParticles=
getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
581 muLrtFlags = getFlagsForActiveConfig(flags,
"muonLRT", log)
582 acc.merge(trigInDetPrecisionTrackingCfg(muLrtFlags, rois= RoIs, signatureName=
"muonLRT"))
583 trackParticles =
getIDTracks(muLrtFlags, name, precision=
True)
585 muFsFlags = getFlagsForActiveConfig(flags,
"muonFS", log)
586 acc.merge(trigInDetPrecisionTrackingCfg(muFsFlags, rois= RoIs, signatureName=
"muonFS", in_view=
False))
587 trackParticles =
getIDTracks(muFsFlags, precision=
True)
589 muFlags = getFlagsForActiveConfig(flags,
"muon", log)
590 if not flags.Muon.enableTrigIDtrackReuse
and suffix ==
'':
591 acc.merge(trigInDetPrecisionTrackingCfg(muFlags, rois= RoIs, signatureName=
"muon"))
592 trackParticles=
getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=
True, suffix=suffix)
594 if flags.Muon.enableTrigIDtrackReuse
or suffix !=
'':
595 if 'LRT' not in name
or 'FS' not in name:
596 if flags.GeoModel.Run > LHCPeriod.Run3:
598 if suffix !=
'idReuse':
599 MuonL2CBInputContainer = muNames.L2CBName+suffix
601 MuonL2CBInputContainer = muNames.L2CBName
602 from TrigMuonEF.TrigMuonEFConfig
import GetL2CBmuonInDetTracksAlgCfg
603 acc.merge(GetL2CBmuonInDetTracksAlgCfg(flags, name=
"GetL2CBInDetTracks"+suffix,
604 MuonL2CBContainerLocation=MuonL2CBInputContainer,
605 IDtrackOutputLocation=
"HLT_IDTrack_MuonComb_FTF"+suffix))
608 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name+suffix,TrackParticleLocation = [trackParticles], InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
612 candidatesName =
"MuonCandidates"
614 candidatesName =
"MuonCandidates_FS"
616 acc.merge(MuonCombinedAlgCfg(flags,name=
"TrigMuonCombinedAlg_"+name+suffix, MuonCandidateLocation=candidatesName, InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
618 cbMuonName = muNames.EFCBOutInName
620 cbMuonName = muNamesFS.EFCBOutInName
622 cbMuonName = muNamesLRT.EFCBName
625 acc.merge(MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgCB_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muidcoTagMap"], InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
626 MuonContainerLocation = cbMuonName+suffix, ExtrapolatedLocation =
"CBExtrapolatedMuons"+suffix,
627 MSOnlyExtrapolatedLocation =
"CBMSonlyExtrapolatedMuons"+suffix, CombinedLocation =
"HLT_CBCombinedMuon_"+name+suffix,
628 MonTool = MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgCB_"+name+suffix)))
656 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
657 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
658 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuGirlStauAlgCfg, StauCreatorAlgCfg, MuonInDetToMuonSystemExtensionAlgCfg, MuonInsideOutRecoAlgCfg, MuonCombinedInDetCandidateAlgCfg
659 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonInsideOutRecoToolCfg
661 acc = ComponentAccumulator()
663 candidatesName =
"MuonCandidates"
665 candidatesName =
"MuonCandidates_FS"
670 acc.merge(MuonLayerHoughAlgCfg(flags,
"TrigMuonLayerHoughAlg_"+name,MuonPatternCombinationCollection=
"MuonLayerHoughCombis_"+name,
671 Key_MuonLayerHoughToolHoughDataPerSectorVec=
"HoughDataPerSectorVec_"+name))
673 acc.merge(MuonSegmentFinderAlgCfg(flags,
"TrigMuonSegmentMaker_"+name,MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
677 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
678 muLateFlags = getFlagsForActiveConfig(flags,
"muonLate", log)
679 acc.merge(trigInDetPrecisionTrackingCfg(muLateFlags, rois= RoIs, signatureName=
"muonLate", in_view=
False))
680 trackParticles = muLateFlags.Tracking.ActiveConfig.tracks_IDTrig
683 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name,TrackParticleLocation=[trackParticles],ForwardParticleLocation=trackParticles,InDetCandidateLocation=
"InDetCandidates_"+name,ExtendBulk=
True))
692 cbMuonName = muNames.EFCBInOutName+suffix
694 cbMuonName = recordable(cbMuonName+
"_Late")
695 acc.merge(MuGirlStauAlgCfg(flags, name=
"TrigMuonLateInsideOutRecoAlg_"+name,InDetCandidateLocation=
"InDetCandidates_"+name))
696 acc.merge(StauCreatorAlgCfg(flags, name=
"TrigLateMuonCreatorAlg_"+name, TagMaps=[
"stauTagMap"], SegmentContainerName=
"", InDetCandidateLocation=
"InDetCandidates_"+name,
697 MuonContainerLocation=cbMuonName, MonTool=MuonCreatorAlgMonitoring(flags,
"LateMuonCreatorAlg_"+name)))
699 acc.merge(MuonInDetToMuonSystemExtensionAlgCfg(flags, name=
"TrigInDetMuonExtensionAlg_"+name+suffix, InputInDetCandidates=
"InDetCandidates_"+name+suffix,
700 WriteInDetCandidates=
"InDetCandidatesSystemExtended_"+name+suffix))
702 ioTool = MuonInsideOutRecoToolCfg(flags, MuonLayerSegmentFinderTool=
"", InputSegments=
"TrackMuonSegments")
704 ioTool = MuonInsideOutRecoToolCfg(flags)
705 InsideOutRecoTool = acc.popToolsAndMerge(ioTool)
707 acc.merge(MuonInsideOutRecoAlgCfg(flags, name=
"TrigMuonInsideOutRecoAlg_"+name+suffix,InDetCandidateLocation=
"InDetCandidatesSystemExtended_"+name+suffix, MuonCombinedInDetExtensionTool=InsideOutRecoTool))
709 acc.merge(MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgInsideOut_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muGirlTagMap"],InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
710 MuonContainerLocation = cbMuonName, ExtrapolatedLocation =
"InsideOutCBExtrapolatedMuons"+suffix,
711 MSOnlyExtrapolatedLocation =
"InsideOutCBMSOnlyExtrapolatedMuons"+suffix, CombinedLocation =
"InsideOutCBCombinedMuon"+suffix, MonTool = MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgInsideOut_"+name+suffix)))
736 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
737 muIsoFlags = getFlagsForActiveConfig(flags,
"muonIso"+name, log)
738 acc.merge(trigInDetPrecisionTrackingCfg(muIsoFlags, rois= RoIs, signatureName=
"muonIso"+name, in_view=
False))
739 trackParticles = muIsoFlags.Tracking.ActiveConfig.tracks_IDTrig
742 from TrigMuonEF.TrigMuonEFConfig
import TrigMuonEFTrackIsolationAlgCfg
743 acc.merge(TrigMuonEFTrackIsolationAlgCfg(flags,name=
"TrigEFMuIso"+name, requireCombinedMuon =
not doMSiso,
744 MuonEFContainer = Muons,IdTrackParticles = trackParticles, MuonContName = muNames.EFIsoMuonName+name,
745 ptcone02Name = muNames.EFIsoMuonName+name +
".ptcone02",
746 ptcone03Name = muNames.EFIsoMuonName+name +
".ptcone03"))