92 result = ComponentAccumulator()
95 dataObjects=[(
'RpcPrepDataCollection_Cache' ,
'StoreGateSvc+RpcPrdCache' ),
96 (
'TgcRdo_Cache' ,
'StoreGateSvc+TgcRdoCache' ),
97 (
'MdtCsm_Cache' ,
'StoreGateSvc+MdtCsmRdoCache' ),
98 (
'RpcPad_Cache' ,
'StoreGateSvc+RpcRdoCache' ),
99 (
'RpcCoinDataCollection_Cache' ,
'StoreGateSvc+RpcCoinCache' ),
100 (
'TgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCache +
'AllBCs' ),
101 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'PriorBC' ),
102 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'NextBC' ),
103 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'NextNextBC' ),
104 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache )
107 if flags.Detector.GeometrysTGC:
108 dataObjects += [(
'sTgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.sTgcCache)]
110 dataObjects += [(
'Muon::STGC_RawDataContainer' ,
'StoreGateSvc+sTGCRDO' )]
112 if flags.Detector.GeometryMM:
113 dataObjects += [(
'MMPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.MmCache)]
115 dataObjects += [(
'Muon::MM_RawDataContainer' ,
'StoreGateSvc+MMRDO' )]
117 if flags.Detector.GeometryCSC:
118 dataObjects+=[(
'CscRawDataCollection_Cache' ,
'StoreGateSvc+CscRdoCache' )]
120 dataObjects += [(
'CscRawDataContainer' ,
'StoreGateSvc+CSCRDO' ),
121 (
'CscRawDataCollection_Cache' ,
'StoreGateSvc+CscRdoCache' )]
124 dataObjects += [(
'MdtCsmContainer' ,
'StoreGateSvc+MDTCSM' ),
125 *( [(
'RpcPadContainer' ,
'StoreGateSvc+RPCPAD' )]
if "RPCPAD" in flags.Input.Collections
else [] ),
126 *( [(
'xAOD::NRPCRDOContainer' ,
'StoreGateSvc+NRPCRDO' )]
if flags.Muon.enableNRPC
else [] ),
127 (
'TgcRdoContainer' ,
'StoreGateSvc+TGCRDO' )]
129 if flags.Muon.usePhaseIIGeoSetup:
130 dataObjects += [(
'ActsTrk::GeometryContext' ,
'StoreGateSvc+ActsAlignment' )]
132 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuDataPrep",
133 DataObjects = dataObjects)
134 result.addEventAlgo(alg)
139 acc = ComponentAccumulator()
141 doSeededDecoding =
True
143 doSeededDecoding =
False
147 if not flags.Input.isMC:
148 rpcAcc = RpcBytestreamDecodeCfg( flags, name =
"RpcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
150 if flags.Muon.enableNRPC:
151 acc.merge(NrpcBytestreamDecodeCfg( flags, name=
"NRpcRawDataProvider_"+RoIs ))
153 rpcAcc = RpcRDODecodeCfg( flags, name=
"RpcRdoToRpcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
156 if not flags.Input.isMC:
157 tgcAcc = TgcBytestreamDecodeCfg( flags, name=
"TgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
160 tgcAcc = TgcRDODecodeCfg( flags, name=
"TgcRdoToTgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
163 if not flags.Input.isMC:
164 mdtAcc = MdtBytestreamDecodeCfg( flags, name=
"MdtRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
167 mdtAcc = MdtRDODecodeCfg( flags, name=
"MdtRdoToMdtPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
170 if flags.Detector.GeometryCSC:
171 if not flags.Input.isMC:
172 cscAcc = CscBytestreamDecodeCfg( flags, name=
"CscRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
175 cscAcc = CscRDODecodeCfg( flags, name=
"CscRdoToCscPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
178 cscAcc = CscClusterBuildCfg( flags, name=
"CscThresholdClusterBuilder_"+RoIs )
181 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
182 if not flags.Input.isMC:
183 stgcAcc = sTgcBytestreamDecodeCfg(flags, name=
"sTgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
185 mmAcc = MmBytestreamDecodeCfg(flags, name=
"MMRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
188 stgcAcc = StgcRDODecodeCfg( flags, name=
"StgcRdoToStgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
191 mmAcc = MMRDODecodeCfg( flags, name=
"MMRdoToMMPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
232def muFastRecoSequenceCfg( flags, RoIs, doFullScanID = False, InsideOutMode=False, extraLoads=None, l2mtmode=False, calib=False ):
234 acc = ComponentAccumulator()
243 acc.merge(
muFastVDVCfg(flags, RoIs, postFix, InsideOutMode, extraLoads))
247 from TrigL2MuonSA.TrigL2MuonSAConfig
import l2MuFastAlgCfg
248 acc.merge(l2MuFastAlgCfg(flags,
251 FILL_FSIDRoI = doFullScanID,
252 MuonL2SAInfo = muNames.L2SAName+postFix,
253 L2IOCB = muNames.L2CBName+postFix,
254 forID = muNames.L2forIDName+postFix,
255 forMS =
"forMS"+postFix,
369 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
370 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
371 from MuonConfig.MuonTrackBuildingConfig
import MuPatTrackBuilderCfg
372 from xAODTrackingCnv.xAODTrackingCnvConfig
import MuonStandaloneTrackParticleCnvAlgCfg
373 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCombinedMuonCandidateAlgCfg, MuonCreatorAlgCfg
375 acc = ComponentAccumulator()
379 if flags.Muon.usePhaseIIGeoSetup
and flags.Muon.scheduleActsReco:
382 if flags.Muon.setupTruthAlgorithms:
383 from MuonObjectMarker.ObjectMarkerConfig
import TruthMeasMarkerAlgCfg
384 acc.merge(TruthMeasMarkerAlgCfg(flags, name = f
"TruthMeasMarkerAlg{name}"))
385 from MuonTruthAlgsR4.MuonTruthAlgsConfig
import TruthHitAssociationCfg, RecoSegmentTruthAssocCfg
386 acc.merge(TruthHitAssociationCfg(flags, useSDO=
True, suffix=f
'_{name}'))
387 acc.merge(RecoSegmentTruthAssocCfg(flags, name=f
"MuonSegmentsFromR4TruthMatching{name}",
388 SegmentKey=
"MuonSegmentsFromR4"))
391 from MuonSpacePointFormation.SpacePointFormationConfig
import MuonSpacePointFormationCfg
392 acc.merge( MuonSpacePointFormationCfg( flags, suffix =f
'_{name}' ) )
395 from MuonInference.InferenceConfig
import GraphBucketFilterToolCfg, GraphInferenceAlgCfg
396 bucketTool = acc.popToolsAndMerge(GraphBucketFilterToolCfg(flags, name=f
"GraphBucketFilterTool_{name}",
397 WriteSpacePointKey=f
"FilteredMlBuckets_{name}"))
398 acc.merge(GraphInferenceAlgCfg(flags, name = f
"GraphInferenceAlg_{name}",
399 InferenceTools=[bucketTool]))
402 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig
import MuonEtaHoughTransformAlgCfg, MuonNSWSegmentFinderAlgCfg, MuonPhiHoughTransformAlgCfg, MuonSegmentFittingAlgCfg
403 segmentContainers = []
404 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
405 segmentContainers+=[
"MuonNswSegments"]
406 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name=f
"MuonNswEtaHoughTransformAlg_{name}",
407 EtaHoughMaxContainer =
"MuonHoughNswMaxima",
408 SpacePointContainer =
"NswSpacePoints"))
409 acc.merge(MuonNSWSegmentFinderAlgCfg(flags, name=f
"MuonNswSegmentFinderAlg_{name}",
410 MuonNswSegmentWriteKey = segmentContainers[-1],
411 MuonNswSegmentSeedWriteKey =
"MuonNswSegmentSeeds",
412 CombinatorialReadKey =
"MuonHoughNswMaxima"))
414 if flags.Detector.GeometryMDT
or flags.Detector.GeometryRPC
or flags.Detector.GeometryTGC:
415 if flags.Muon.enableMLBucketFilter:
416 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f
"MuonEtaHoughTransformAlg_{name}",
417 SpacePointContainer =
"FilteredMlBuckets"))
419 acc.merge(MuonEtaHoughTransformAlgCfg(flags, name = f
"MuonEtaHoughTransformAlg_{name}"))
420 acc.merge(MuonPhiHoughTransformAlgCfg(flags, name = f
"MuonPhiHoughTransformAlg_{name}"))
422 segmentContainers+=[
"R4MuonSegments"]
423 acc.merge(MuonSegmentFittingAlgCfg(flags, name = f
"MuonSegmentFittingAlg_{name}",
424 OutSegmentContainer=segmentContainers[-1]))
426 from MuonSegmentCnv.MuonSegmentCnvConfig
import xAODSegmentCnvAlgCfg
427 acc.merge(xAODSegmentCnvAlgCfg(flags, name = f
"MuonR4xAODSegmentCnvAlg_{name}",
428 InSegmentKeys = segmentContainers))
430 from MuonSegmentCnv.MuonSegmentCnvConfig
import MuonR4SegmentCnvAlgCfg
431 acc.merge(MuonR4SegmentCnvAlgCfg(flags, name=f
"MuonR4SegmentCnvAlg_{name}",
432 ReadSegments = segmentContainers,
433 WriteKey=
"TrackMuonSegments"))
435 acc.merge(MuonLayerHoughAlgCfg(flags,
"TrigMuonLayerHoughAlg"))
436 acc.merge(MuonSegmentFinderAlgCfg(flags,
"TrigMuonSegmentMaker_"+name))
438 from MuonSegmentTrackMaker.MuonTrackMakerAlgsMonitoring
import MuPatTrackBuilderMonitoring
439 acc.merge(MuPatTrackBuilderCfg(flags, name=
"TrigMuPatTrackBuilder_"+name ,MuonSegmentCollection =
"TrackMuonSegments", MonTool = MuPatTrackBuilderMonitoring(flags,
"MuPatTrackBuilderMonitoringSA_"+name)))
441 acc.merge(MuonStandaloneTrackParticleCnvAlgCfg(flags, name =
"TrigMuonStandaloneTrackParticleCnvAlg_"+name))
442 acc.merge(MuonCombinedMuonCandidateAlgCfg(flags, name=
"TrigMuonCandidateAlg_"+name))
444 msMuonName = muNames.EFSAName
446 msMuonName = muNamesFS.EFSAName
448 acc.merge(MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlg_"+name, CreateSAmuons=
True, TagMaps=[], MuonContainerLocation=msMuonName,
449 ExtrapolatedLocation =
"HLT_MSExtrapolatedMuons_"+name, MSOnlyExtrapolatedLocation =
"HLT_MSOnlyExtrapolatedMuons_"+name,
450 MonTool = MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgSA_"+name)))
452 sequenceOut = msMuonName
454 return acc, sequenceOut
532 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
533 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
534 acc = ComponentAccumulator()
540 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
541 acc.merge(trigInDetFastTrackingCfg( flags, roisKey=RoIs, signatureName=
"muonFS" ))
548 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
552 if isCosmic(flags)
and 'LRT' not in name:
553 trackParticles=
getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
555 muLrtFlags = getFlagsForActiveConfig(flags,
"muonLRT", log)
556 acc.merge(trigInDetPrecisionTrackingCfg(muLrtFlags, rois= RoIs, signatureName=
"muonLRT"))
557 trackParticles =
getIDTracks(muLrtFlags, name, precision=
True)
559 muFsFlags = getFlagsForActiveConfig(flags,
"muonFS", log)
560 acc.merge(trigInDetPrecisionTrackingCfg(muFsFlags, rois= RoIs, signatureName=
"muonFS", in_view=
False))
561 trackParticles =
getIDTracks(muFsFlags, precision=
True)
563 muFlags = getFlagsForActiveConfig(flags,
"muon", log)
564 if not flags.Muon.enableTrigIDtrackReuse
and suffix ==
'':
565 acc.merge(trigInDetPrecisionTrackingCfg(muFlags, rois= RoIs, signatureName=
"muon"))
566 trackParticles=
getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=
True, suffix=suffix)
568 if flags.Muon.enableTrigIDtrackReuse
or suffix !=
'':
569 if 'LRT' not in name
or 'FS' not in name:
570 if flags.GeoModel.Run > LHCPeriod.Run3:
572 if suffix !=
'idReuse':
573 MuonL2CBInputContainer = muNames.L2CBName+suffix
575 MuonL2CBInputContainer = muNames.L2CBName
576 from TrigMuonEF.TrigMuonEFConfig
import GetL2CBmuonInDetTracksAlgCfg
577 acc.merge(GetL2CBmuonInDetTracksAlgCfg(flags, name=
"GetL2CBInDetTracks"+suffix,
578 MuonL2CBContainerLocation=MuonL2CBInputContainer,
579 IDtrackOutputLocation=
"HLT_IDTrack_MuonComb_FTF"+suffix))
582 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name+suffix,TrackParticleLocation = [trackParticles], InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
586 candidatesName =
"MuonCandidates"
588 candidatesName =
"MuonCandidates_FS"
590 acc.merge(MuonCombinedAlgCfg(flags,name=
"TrigMuonCombinedAlg_"+name+suffix, MuonCandidateLocation=candidatesName, InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
592 cbMuonName = muNames.EFCBOutInName
594 cbMuonName = muNamesFS.EFCBOutInName
596 cbMuonName = muNamesLRT.EFCBName
599 acc.merge(MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgCB_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muidcoTagMap"], InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
600 MuonContainerLocation = cbMuonName+suffix, ExtrapolatedLocation =
"CBExtrapolatedMuons"+suffix,
601 MSOnlyExtrapolatedLocation =
"CBMSonlyExtrapolatedMuons"+suffix, CombinedLocation =
"HLT_CBCombinedMuon_"+name+suffix,
602 MonTool = MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgCB_"+name+suffix)))
630 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg
631 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
632 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuGirlStauAlgCfg, StauCreatorAlgCfg, MuonInDetToMuonSystemExtensionAlgCfg, MuonInsideOutRecoAlgCfg, MuonCombinedInDetCandidateAlgCfg
633 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonInsideOutRecoToolCfg
635 acc = ComponentAccumulator()
637 candidatesName =
"MuonCandidates"
639 candidatesName =
"MuonCandidates_FS"
644 acc.merge(MuonLayerHoughAlgCfg(flags,
"TrigMuonLayerHoughAlg_"+name,MuonPatternCombinationCollection=
"MuonLayerHoughCombis_"+name,
645 Key_MuonLayerHoughToolHoughDataPerSectorVec=
"HoughDataPerSectorVec_"+name))
647 acc.merge(MuonSegmentFinderAlgCfg(flags,
"TrigMuonSegmentMaker_"+name,MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
651 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
652 muLateFlags = getFlagsForActiveConfig(flags,
"muonLate", log)
653 acc.merge(trigInDetPrecisionTrackingCfg(muLateFlags, rois= RoIs, signatureName=
"muonLate", in_view=
False))
654 trackParticles = muLateFlags.Tracking.ActiveConfig.tracks_IDTrig
657 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name,TrackParticleLocation=[trackParticles],ForwardParticleLocation=trackParticles,InDetCandidateLocation=
"InDetCandidates_"+name,ExtendBulk=
True))
666 cbMuonName = muNames.EFCBInOutName+suffix
668 cbMuonName = recordable(cbMuonName+
"_Late")
669 acc.merge(MuGirlStauAlgCfg(flags, name=
"TrigMuonLateInsideOutRecoAlg_"+name,InDetCandidateLocation=
"InDetCandidates_"+name))
670 acc.merge(StauCreatorAlgCfg(flags, name=
"TrigLateMuonCreatorAlg_"+name, TagMaps=[
"stauTagMap"], SegmentContainerName=
"", InDetCandidateLocation=
"InDetCandidates_"+name,
671 MuonContainerLocation=cbMuonName, MonTool=MuonCreatorAlgMonitoring(flags,
"LateMuonCreatorAlg_"+name)))
673 acc.merge(MuonInDetToMuonSystemExtensionAlgCfg(flags, name=
"TrigInDetMuonExtensionAlg_"+name+suffix, InputInDetCandidates=
"InDetCandidates_"+name+suffix,
674 WriteInDetCandidates=
"InDetCandidatesSystemExtended_"+name+suffix))
676 ioTool = MuonInsideOutRecoToolCfg(flags, MuonLayerSegmentFinderTool=
"", InputSegments=
"TrackMuonSegments")
678 ioTool = MuonInsideOutRecoToolCfg(flags)
679 InsideOutRecoTool = acc.popToolsAndMerge(ioTool)
681 acc.merge(MuonInsideOutRecoAlgCfg(flags, name=
"TrigMuonInsideOutRecoAlg_"+name+suffix,InDetCandidateLocation=
"InDetCandidatesSystemExtended_"+name+suffix, MuonCombinedInDetExtensionTool=InsideOutRecoTool))
683 acc.merge(MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgInsideOut_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muGirlTagMap"],InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
684 MuonContainerLocation = cbMuonName, ExtrapolatedLocation =
"InsideOutCBExtrapolatedMuons"+suffix,
685 MSOnlyExtrapolatedLocation =
"InsideOutCBMSOnlyExtrapolatedMuons"+suffix, CombinedLocation =
"InsideOutCBCombinedMuon"+suffix, MonTool = MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgInsideOut_"+name+suffix)))
710 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
711 muIsoFlags = getFlagsForActiveConfig(flags,
"muonIso"+name, log)
712 acc.merge(trigInDetPrecisionTrackingCfg(muIsoFlags, rois= RoIs, signatureName=
"muonIso"+name, in_view=
False))
713 trackParticles = muIsoFlags.Tracking.ActiveConfig.tracks_IDTrig
716 from TrigMuonEF.TrigMuonEFConfig
import TrigMuonEFTrackIsolationAlgCfg
717 acc.merge(TrigMuonEFTrackIsolationAlgCfg(flags,name=
"TrigEFMuIso"+name, requireCombinedMuon =
not doMSiso,
718 MuonEFContainer = Muons,IdTrackParticles = trackParticles, MuonContName = muNames.EFIsoMuonName+name,
719 ptcone02Name = muNames.EFIsoMuonName+name +
".ptcone02",
720 ptcone03Name = muNames.EFIsoMuonName+name +
".ptcone03"))