5 from AthenaCommon.Logging
import logging
6 log = logging.getLogger(__name__)
9 from TrigEDMConfig.TriggerEDM
import recordable
10 from MuonConfig.MuonBytestreamDecodeConfig
import RpcBytestreamDecodeCfg, TgcBytestreamDecodeCfg, MdtBytestreamDecodeCfg, CscBytestreamDecodeCfg, sTgcBytestreamDecodeCfg, MmBytestreamDecodeCfg
11 from MuonConfig.MuonRdoDecodeConfig
import RpcRDODecodeCfg, TgcRDODecodeCfg, MdtRDODecodeCfg, CscRDODecodeCfg, CscClusterBuildCfg, StgcRDODecodeCfg, MMRDODecodeCfg
12 from MuonConfig.MuonRdoDecodeConfig
import MuonPrdCacheNames
13 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
14 from AthenaConfiguration.ComponentFactory
import CompFactory
15 from TrigInDetConfig.utils
import getFlagsForActiveConfig
17 CBTPname =
recordable(
"HLT_CBCombinedMuon_RoITrackParticles")
18 CBTPnameFS =
recordable(
"HLT_CBCombinedMuon_FSTrackParticles")
19 CBTPnameLRT =
recordable(
"HLT_CBCombinedMuon_LRTTrackParticles")
20 ExtrpTPname =
recordable(
"HLT_MSExtrapolatedMuons_RoITrackParticles")
21 ExtrpTPnameFS =
recordable(
"HLT_MSExtrapolatedMuons_FSTrackParticles")
22 MSextrpTPname =
recordable(
"HLT_MSOnlyExtrapolatedMuons_FSTrackParticles")
25 from AthenaConfiguration.Enums
import BeamType
63 return (flags.Beam.Type == BeamType.Cosmics)
69 def getIDTracks(flags, name='', muonIDreuse=False, precision=False, suffix=''):
73 return 'HLT_IDTrack_MuonComb_FTF_LRT'
75 return 'HLT_IDTrack_MuonComb_FTF'
77 return 'HLT_IDTrack_MuonComb_FTF'+suffix
81 return flags.Tracking.ActiveConfig.tracks_IDTrig
84 return flags.Trigger.InDetTracking.muonLRT.tracks_FTF
86 return flags.Trigger.InDetTracking.cosmics.tracks_IDTrig
88 return flags.Trigger.InDetTracking.muon.tracks_FTF
93 dataObjects=[(
'RpcPrepDataCollection_Cache' ,
'StoreGateSvc+RpcPrdCache' ),
94 (
'TgcRdo_Cache' ,
'StoreGateSvc+TgcRdoCache' ),
95 (
'MdtCsm_Cache' ,
'StoreGateSvc+MdtCsmRdoCache' ),
96 (
'RpcPad_Cache' ,
'StoreGateSvc+RpcRdoCache' ),
97 (
'RpcCoinDataCollection_Cache' ,
'StoreGateSvc+RpcCoinCache' ),
98 (
'TgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCache +
'PriorBC' ),
99 (
'TgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCache +
'NextBC' ),
100 (
'TgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCache +
'AllBCs' ),
101 (
'TgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCache ),
102 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'PriorBC' ),
103 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'NextBC' ),
104 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache +
'NextNextBC' ),
105 (
'TgcCoinDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.TgcCoinCache )
108 dataObjects += [(
'MdtCsmContainer' ,
'StoreGateSvc+MDTCSM' ),
109 (
'RpcPadContainer' ,
'StoreGateSvc+RPCPAD' ),
110 (
'TgcRdoContainer' ,
'StoreGateSvc+TGCRDO' )]
111 if flags.Detector.GeometryCSC:
112 dataObjects+=[(
'CscRawDataCollection_Cache' ,
'StoreGateSvc+CscRdoCache' )]
114 dataObjects += [(
'CscRawDataContainer' ,
'StoreGateSvc+CSCRDO' ),
115 (
'CscRawDataCollection_Cache' ,
'StoreGateSvc+CscRdoCache' )]
116 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM
and flags.Input.isMC:
117 dataObjects += [(
'Muon::STGC_RawDataContainer' ,
'StoreGateSvc+sTGCRDO' ),
118 (
'Muon::MM_RawDataContainer' ,
'StoreGateSvc+MMRDO' )]
119 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
120 dataObjects += [(
'MMPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.MmCache)]
121 dataObjects += [(
'sTgcPrepDataCollection_Cache' ,
'StoreGateSvc+' + MuonPrdCacheNames.sTgcCache)]
123 if flags.Muon.usePhaseIIGeoSetup:
124 dataObjects += [(
'ActsGeometryContext' ,
'StoreGateSvc+ActsAlignment' )]
126 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuDataPrep",
127 DataObjects = dataObjects)
128 result.addEventAlgo(alg)
135 doSeededDecoding =
True
137 doSeededDecoding =
False
140 if not flags.Input.isMC:
141 rpcAcc =
RpcBytestreamDecodeCfg( flags, name =
"RpcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
144 rpcAcc =
RpcRDODecodeCfg( flags, name=
"RpcRdoToRpcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
147 if not flags.Input.isMC:
148 tgcAcc =
TgcBytestreamDecodeCfg( flags, name=
"TgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
151 tgcAcc =
TgcRDODecodeCfg( flags, name=
"TgcRdoToTgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
154 if not flags.Input.isMC:
155 mdtAcc =
MdtBytestreamDecodeCfg( flags, name=
"MdtRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
158 mdtAcc =
MdtRDODecodeCfg( flags, name=
"MdtRdoToMdtPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
161 if flags.Detector.GeometryCSC:
162 if not flags.Input.isMC:
163 cscAcc =
CscBytestreamDecodeCfg( flags, name=
"CscRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
166 cscAcc =
CscRDODecodeCfg( flags, name=
"CscRdoToCscPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
172 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
173 if not flags.Input.isMC:
174 stgcAcc =
sTgcBytestreamDecodeCfg(flags, name=
"sTgcRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
176 mmAcc =
MmBytestreamDecodeCfg(flags, name=
"MMRawDataProvider_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
179 stgcAcc =
StgcRDODecodeCfg( flags, name=
"StgcRdoToStgcPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding )
182 mmAcc =
MMRDODecodeCfg( flags, name=
"MMRdoToMMPrepData_"+RoIs, RoIs = RoIs, DoSeededDecoding = doSeededDecoding)
186 if flags.Muon.usePhaseIIGeoSetup:
187 from MuonSpacePointFormation.SpacePointFormationConfig
import MuonSpacePointFormationCfg
197 dataObjects = [(
'Muon::TgcPrepDataContainer',
'StoreGateSvc+TGC_Measurements'),
198 (
'TgcRdoContainer' ,
'StoreGateSvc+TGCRDO'),
199 (
'Muon::RpcPrepDataContainer',
'StoreGateSvc+RPC_Measurements'),
200 (
'Muon::MdtPrepDataContainer',
'StoreGateSvc+MDT_DriftCircles'),
201 (
'RpcPadContainer' ,
'StoreGateSvc+RPCPAD' )]
202 if flags.Detector.GeometryCSC:
203 dataObjects += [(
'Muon::CscPrepDataContainer',
'StoreGateSvc+CSC_Clusters')]
204 if flags.Detector.GeometrysTGC:
205 dataObjects += [(
'Muon::sTgcPrepDataContainer',
'StoreGateSvc+STGC_Measurements')]
206 if flags.Detector.GeometryMM:
207 dataObjects += [(
'Muon::MMPrepDataContainer',
'StoreGateSvc+MM_Measurements')]
209 if flags.Muon.usePhaseIIGeoSetup:
210 dataObjects += [(
'ActsGeometryContext' ,
'StoreGateSvc+ActsAlignment' )]
211 dataObjects += [(
'MuonR4::SpacePointContainer' ,
'StoreGateSvc+MuonSpacePoints' )]
212 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
213 dataObjects += [(
'MuonR4::SpacePointContainer' ,
'StoreGateSvc+NswSpacePoints' )]
216 dataObjects += [(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+%s' % RoIs )]
217 dataObjects += [(
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' )]
218 if flags.Trigger.enableL1MuonPhase1:
219 dataObjects += [(
'xAOD::MuonRoIContainer' ,
'StoreGateSvc+LVL1MuonRoIs' )]
221 dataObjects += [(
'DataVector< LVL1::RecMuonRoI >' ,
'StoreGateSvc+HLT_RecMURoIs' )]
225 dataObjects += extraLoads
226 ViewVerify = CompFactory.AthViews.ViewDataVerifier(
"muFastRecoVDV"+postFix, DataObjects = dataObjects)
228 result.addEventAlgo(ViewVerify)
231 def muFastRecoSequenceCfg( flags, RoIs, doFullScanID = False, InsideOutMode=False, extraLoads=None, l2mtmode=False, calib=False ):
242 acc.merge(
muFastVDVCfg(flags, RoIs, postFix, InsideOutMode, extraLoads))
246 from TrigL2MuonSA.TrigL2MuonSAConfig
import l2MuFastAlgCfg
250 FILL_FSIDRoI = doFullScanID,
251 MuonL2SAInfo = muNames.L2SAName+postFix,
252 L2IOCB = muNames.L2CBName+postFix,
253 forID = muNames.L2forIDName+postFix,
254 forMS =
"forMS"+postFix,
262 dataObjects=[(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+%s' % RoIs )]
264 dataObjects += extraLoads
265 if extraLoadsForl2mtmode:
266 dataObjects += extraLoadsForl2mtmode
267 ViewVerify = CompFactory.AthViews.ViewDataVerifier(
"muCombVDV"+name, DataObjects = dataObjects)
269 result.addEventAlgo(ViewVerify)
275 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
278 acc.merge(
muonIDtrackVDVCfg(flags, name, RoIs, extraLoads, extraLoadsForl2mtmode))
286 acc.merge(
muonIDtrackVDVCfg(flags,
'cosmics', RoIs, extraLoads, extraLoadsForl2mtmode))
290 from TrigInDetConfig.InnerTrackingTrigSequence
import InnerTrackingTrigSequence
291 seq = InnerTrackingTrigSequence.create(flagsWithTrk,
292 flagsWithTrk.Tracking.ActiveConfig.input_name,
294 inView =
"muCombVDVcosmics")
295 acc.merge(seq.sequence(
"Offline"))
302 dataObjects=[(
'xAOD::L2StandAloneMuonContainer',
'StoreGateSvc+%s' % muNames.L2SAName+postFix)]
303 ViewVerify = CompFactory.AthViews.ViewDataVerifier(
"muCombAlgVDV"+postFix, DataObjects = dataObjects)
304 result.addEventAlgo(ViewVerify)
316 from TrigmuComb.TrigmuCombConfig
import muCombCfg
318 acc.merge(
muCombCfg(flags, f
'{postFix}_{name}', useBackExtrp=
True,
319 L2StandAloneMuonContainerName = muNames.L2SAName+postFix,
320 L2CombinedMuonContainerName = l2CBname, TrackParticleContainerName = l2trackname ))
326 dataObjects=[(
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' ),
327 (
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+%s' % RoIs )]
329 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuEFSA_"+roiName,
330 DataObjects = dataObjects)
331 result.addEventAlgo(alg)
338 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
339 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg, MuonSegmentFilterAlgCfg
340 from MuonConfig.MuonTrackBuildingConfig
import MuPatTrackBuilderCfg, EMEO_MuPatTrackBuilderCfg
341 from xAODTrackingCnv.xAODTrackingCnvConfig
import MuonStandaloneTrackParticleCnvAlgCfg
342 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCombinedMuonCandidateAlgCfg, MuonCreatorAlgCfg
352 if flags.Muon.runCommissioningChain:
353 acc.merge(
MuonSegmentFinderAlgCfg(flags, name=
"TrigMuonSegmentMaker_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW"))
354 acc.merge(
MuonSegmentFilterAlgCfg(flags, name=
"TrigMuonSegmentFilter_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW",
355 FilteredCollectionName=
"TrackMuonSegments", TrashUnFiltered=
False, ThinStations=()))
359 from MuonSegmentTrackMaker.MuonTrackMakerAlgsMonitoring
import MuPatTrackBuilderMonitoring
361 if flags.Muon.runCommissioningChain:
362 acc.merge(
EMEO_MuPatTrackBuilderCfg(flags, name=
"TrigMuPatTrackBuilder_"+name ,MuonSegmentCollection =
"TrackMuonSegments", MonTool =
MuPatTrackBuilderMonitoring(flags,
"MuPatTrackBuilderMonitoringSA_"+name), SpectrometerTrackOutputLocation=
"MuonSpectrometerTracks"))
370 msMuonName = muNames.EFSAName
372 msMuonName = muNamesFS.EFSAName
374 acc.merge(
MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlg_"+name, CreateSAmuons=
True, TagMaps=[], MuonContainerLocation=msMuonName,
375 ExtrapolatedLocation =
"HLT_MSExtrapolatedMuons_"+name, MSOnlyExtrapolatedLocation =
"HLT_MSOnlyExtrapolatedMuons_"+name,
381 sequenceOut = msMuonName
383 return acc, sequenceOut
389 dataObjects = [(
'Muon::MdtPrepDataContainer' ,
'StoreGateSvc+MDT_DriftCircles' ),
390 (
'Muon::TgcPrepDataContainer' ,
'StoreGateSvc+TGC_Measurements' ),
391 (
'Muon::RpcPrepDataContainer' ,
'StoreGateSvc+RPC_Measurements' ),
392 (
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+%s' % RoIs ),
393 (
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' ),
396 dataObjects +=[(
'MuonCandidateCollection' ,
'StoreGateSvc+MuonCandidates_FS' )]
398 dataObjects +=[(
'MuonCandidateCollection' ,
'StoreGateSvc+MuonCandidates')]
400 if flags.Detector.GeometryCSC:
401 dataObjects += [(
'Muon::CscStripPrepDataContainer' ,
'StoreGateSvc+CSC_Measurements' )]
402 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
403 dataObjects += [(
'Muon::MMPrepDataContainer' ,
'StoreGateSvc+MM_Measurements'),
404 (
'Muon::sTgcPrepDataContainer' ,
'StoreGateSvc+STGC_Measurements') ]
405 if flags.Muon.usePhaseIIGeoSetup:
406 dataObjects += [(
'MuonR4::SpacePointContainer' ,
'StoreGateSvc+MuonSpacePoints' )]
407 if flags.Detector.GeometrysTGC
or flags.Detector.GeometryMM:
408 dataObjects += [(
'MuonR4::SpacePointContainer' ,
'StoreGateSvc+NswSpacePoints' )]
410 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuEFCB_"+name,
411 DataObjects = dataObjects)
412 acc.addEventAlgo(alg)
418 vdvName =
"VDVMuTrkLRT" if "LRT" in name
else "VDVMuTrk"
419 trkname =
"LRT" if "LRT" in name
else ''
420 dataObjects = [(
'xAOD::IParticleContainer' ,
'StoreGateSvc+'+
getIDTracks(flags, trkname) )]
423 if not flags.Muon.enableTrigIDtrackReuse:
424 dataObjects += [(
'xAOD::TrackParticleContainer' ,
'StoreGateSvc+'+
getIDTracks(flags, trkname, muonIDreuse=flags.Muon.enableTrigIDtrackReuse) )]
426 MuonL2CBContainer = muNames.L2CBName+suffix
427 dataObjects += [(
'xAOD::L2CombinedMuonContainer',
'StoreGateSvc+'+MuonL2CBContainer)]
429 if not flags.Input.isMC:
430 dataObjects += [(
'IDCInDetBSErrContainer' ,
'StoreGateSvc+PixelByteStreamErrs' ),
431 (
'IDCInDetBSErrContainer' ,
'StoreGateSvc+SCT_ByteStreamErrs' )]
433 alg = CompFactory.AthViews.ViewDataVerifier( name = vdvName+suffix,
434 DataObjects = dataObjects)
435 acc.addEventAlgo(alg)
443 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
444 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
454 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
462 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
466 if isCosmic(flags)
and 'LRT' not in name:
468 if flags.Muon.enableTrigIDtrackReuse:
469 trackParticles=
'HLT_IDTrack_MuonComb_FTF'
471 trackParticles=
getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
476 if flags.Muon.enableTrigIDtrackReuse:
477 trackParticles=
'HLT_IDTrack_MuonComb_FTF_LRT'
479 trackParticles =
getIDTracks(muLrtFlags, name, precision=
True)
483 trackParticles =
getIDTracks(muFsFlags, precision=
True)
486 if not flags.Muon.enableTrigIDtrackReuse
or suffix==
"":
488 trackParticles=
getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=
True, suffix=suffix)
490 if flags.Muon.enableTrigIDtrackReuse:
491 trackParticles=
'HLT_IDTrack_MuonComb_FTF'
493 trackParticles =
getIDTracks(muFlags, precision=
True)
496 if flags.Muon.enableTrigIDtrackReuse:
497 from TrigMuonEF.TrigMuonEFConfig
import MergeMuonInDetTracksAlgCfg
500 MuonCBContainerLocation=muNames.L2CBName,
501 MuonInsideOutContainerLocation=muNames.L2CBName+
'IOmode',
502 MuonL2mtContainerLocation=muNames.L2CBName+
'l2mtmode',
503 IDtrackOutputLocation=
"HLT_IDTrack_MuonComb_FTF"))
505 if flags.Muon.enableTrigIDtrackReuse:
506 if 'LRT' not in name
or 'FS' not in name:
507 MuonL2CBInputContainer = muNames.L2CBName+suffix
508 from TrigMuonEF.TrigMuonEFConfig
import GetL2CBmuonInDetTracksAlgCfg
510 MuonL2CBContainerLocation=MuonL2CBInputContainer,
511 IDtrackOutputLocation=
"HLT_IDTrack_MuonComb_FTF"+suffix))
514 acc.merge(
MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name+suffix,TrackParticleLocation = [trackParticles], InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
518 candidatesName =
"MuonCandidates"
520 candidatesName =
"MuonCandidates_FS"
522 acc.merge(
MuonCombinedAlgCfg(flags,name=
"TrigMuonCombinedAlg_"+name+suffix, MuonCandidateLocation=candidatesName, InDetCandidateLocation=
"InDetCandidates_"+name+suffix))
524 cbMuonName = muNames.EFCBOutInName
526 cbMuonName = muNamesFS.EFCBOutInName
528 cbMuonName = muNamesLRT.EFCBName
531 acc.merge(
MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgCB_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muidcoTagMap"], InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
532 MuonContainerLocation = cbMuonName+suffix, ExtrapolatedLocation =
"CBExtrapolatedMuons"+suffix,
533 MSOnlyExtrapolatedLocation =
"CBMSonlyExtrapolatedMuons"+suffix, CombinedLocation =
"HLT_CBCombinedMuon_"+name+suffix,
543 dataObjects = [(
'Muon::RpcPrepDataContainer' ,
'StoreGateSvc+RPC_Measurements' ),
544 (
'Muon::TgcPrepDataContainer' ,
'StoreGateSvc+TGC_Measurements' ),
545 (
'MuonCandidateCollection' ,
'StoreGateSvc+'+candidatesName )]
546 if not isCosmic(flags): dataObjects += [(
'Muon::HoughDataPerSectorVec' ,
'StoreGateSvc+HoughDataPerSectorVec')]
547 if flags.Detector.GeometryCSC:
548 dataObjects += [(
'Muon::CscPrepDataContainer' ,
'StoreGateSvc+CSC_Clusters' )]
549 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
550 dataObjects += [(
'Muon::MMPrepDataContainer' ,
'StoreGateSvc+MM_Measurements'),
551 (
'Muon::sTgcPrepDataContainer' ,
'StoreGateSvc+STGC_Measurements') ]
553 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuInsideOut_"+name+suffix,
554 DataObjects = dataObjects)
555 acc.addEventAlgo(alg)
561 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg, MuonSegmentFilterAlgCfg
562 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
563 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuGirlStauAlgCfg, StauCreatorAlgCfg, MuonInDetToMuonSystemExtensionAlgCfg, MuonInsideOutRecoAlgCfg, MuonCombinedInDetCandidateAlgCfg
567 candidatesName =
"MuonCandidates"
569 candidatesName =
"MuonCandidates_FS"
574 acc.merge(
MuonLayerHoughAlgCfg(flags,
"TrigMuonLayerHoughAlg_"+name,MuonPatternCombinationCollection=
"MuonLayerHoughCombis_"+name,
575 Key_MuonLayerHoughToolHoughDataPerSectorVec=
"HoughDataPerSectorVec_"+name))
579 if flags.Muon.runCommissioningChain:
580 acc.merge(
MuonSegmentFinderAlgCfg(flags, name=
"TrigMuonSegmentMaker_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW",MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
581 acc.merge(
MuonSegmentFilterAlgCfg(flags, name=
"TrigMuonSegmentFilter_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW",
582 FilteredCollectionName=
"TrackMuonSegments", TrashUnFiltered=
False, ThinStations=()))
584 acc.merge(
MuonSegmentFinderAlgCfg(flags,
"TrigMuonSegmentMaker_"+name,MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
588 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
591 trackParticles = muLateFlags.Tracking.ActiveConfig.tracks_IDTrig
594 acc.merge(
MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name,TrackParticleLocation=[trackParticles],ForwardParticleLocation=trackParticles,InDetCandidateLocation=
"InDetCandidates_"+name,ExtendBulk=
True))
603 cbMuonName = muNames.EFCBInOutName+suffix
606 acc.merge(
MuGirlStauAlgCfg(flags, name=
"TrigMuonLateInsideOutRecoAlg_"+name,InDetCandidateLocation=
"InDetCandidates_"+name))
607 acc.merge(
StauCreatorAlgCfg(flags, name=
"TrigLateMuonCreatorAlg_"+name, TagMaps=[
"stauTagMap"], SegmentContainerName=
"", InDetCandidateLocation=
"InDetCandidates_"+name,
611 WriteInDetCandidates=
"InDetCandidatesSystemExtended_"+name+suffix))
612 acc.merge(
MuonInsideOutRecoAlgCfg(flags, name=
"TrigMuonInsideOutRecoAlg_"+name+suffix,InDetCandidateLocation=
"InDetCandidatesSystemExtended_"+name+suffix))
614 acc.merge(
MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgInsideOut_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muGirlTagMap"],InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
615 MuonContainerLocation = cbMuonName, ExtrapolatedLocation =
"InsideOutCBExtrapolatedMuons"+suffix,
616 MSOnlyExtrapolatedLocation =
"InsideOutCBMSOnlyExtrapolatedMuons"+suffix, CombinedLocation =
"InsideOutCBCombinedMuon"+suffix, MonTool =
MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgInsideOut_"+name)))
625 dataObjects = [(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+'+RoIs ),
626 (
'xAOD::MuonContainer' ,
'StoreGateSvc+IsoViewMuons'+name )]
628 alg = CompFactory.AthViews.ViewDataVerifier( name =
"efMuIsoVDV"+name,
629 DataObjects = dataObjects)
630 acc.addEventAlgo(alg)
643 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
646 trackParticles = muIsoFlags.Tracking.ActiveConfig.tracks_IDTrig
649 from TrigMuonEF.TrigMuonEFConfig
import TrigMuonEFTrackIsolationAlgCfg
651 MuonEFContainer = Muons,IdTrackParticles = trackParticles, MuonContName = muNames.EFIsoMuonName+name,
652 ptcone02Name = muNames.EFIsoMuonName+name +
".ptcone02",
653 ptcone03Name = muNames.EFIsoMuonName+name +
".ptcone03"))
659 dataObjects = [(
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCm2' ),
660 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCm1' ),
661 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCp1' ),
662 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCp2' )]
664 alg = CompFactory.AthViews.ViewDataVerifier( name =
"efLateMuRoIVDV",
665 DataObjects = dataObjects)
666 acc.addEventAlgo(alg)
674 from TrigmuRoI.TrigmuRoIConfig
import TrigmuRoIConfig
675 sequenceOut =
"LateMuRoIs"
678 return acc, sequenceOut