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, LHCPeriod
63 return (flags.Beam.Type == BeamType.Cosmics)
69 def getIDTracks(flags, name='', muonIDreuse=False, precision=False, suffix=''):
71 if muonIDreuse
or 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+suffix,
411 DataObjects = dataObjects)
412 acc.addEventAlgo(alg)
420 vdvName =
"VDVMuTrkLRT" if "LRT" in name
else "VDVMuTrk"
421 trkname =
"LRT" if "LRT" in name
else ''
422 dataObjects = [(
'xAOD::IParticleContainer' ,
'StoreGateSvc+'+
getIDTracks(flags, trkname) )]
424 if not flags.Muon.enableTrigIDtrackReuse
and suffix ==
'':
425 dataObjects += [(
'xAOD::TrackParticleContainer' ,
'StoreGateSvc+'+
getIDTracks(flags, trkname, muonIDreuse=flags.Muon.enableTrigIDtrackReuse) )]
427 if suffix !=
'idReuse':
428 MuonL2CBContainer = muNames.L2CBName+suffix
430 MuonL2CBContainer = muNames.L2CBName
431 dataObjects += [(
'xAOD::L2CombinedMuonContainer',
'StoreGateSvc+'+MuonL2CBContainer)]
433 if not flags.Input.isMC:
434 dataObjects += [(
'IDCInDetBSErrContainer' ,
'StoreGateSvc+PixelByteStreamErrs' ),
435 (
'IDCInDetBSErrContainer' ,
'StoreGateSvc+SCT_ByteStreamErrs' )]
437 alg = CompFactory.AthViews.ViewDataVerifier( name = vdvName+suffix,
438 DataObjects = dataObjects)
439 acc.addEventAlgo(alg)
446 vdvName =
"VDVidReuseITk"
449 from TrigInDetConfig.TrigInDetConfig
import InDetExtraDataObjectsFromDataPrep
452 alg = CompFactory.AthViews.ViewDataVerifier( name = vdvName+suffix,
453 DataObjects = dataObjects)
454 acc.addEventAlgo(alg)
461 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
462 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
472 from TrigInDetConfig.TrigInDetConfig
import trigInDetFastTrackingCfg
480 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
484 if isCosmic(flags)
and 'LRT' not in name:
485 trackParticles=
getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
489 trackParticles =
getIDTracks(muLrtFlags, name, precision=
True)
493 trackParticles =
getIDTracks(muFsFlags, precision=
True)
496 if not flags.Muon.enableTrigIDtrackReuse
and suffix ==
'':
498 trackParticles=
getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=
True, suffix=suffix)
500 if flags.Muon.enableTrigIDtrackReuse
or suffix !=
'':
501 if 'LRT' not in name
or 'FS' not in name:
502 if flags.GeoModel.Run > LHCPeriod.Run3:
504 if suffix !=
'idReuse':
505 MuonL2CBInputContainer = muNames.L2CBName+suffix
507 MuonL2CBInputContainer = muNames.L2CBName
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 (
'Trk::SegmentCollection' ,
'StoreGateSvc+TrackMuonSegments')]
547 if not isCosmic(flags): dataObjects += [(
'Muon::HoughDataPerSectorVec' ,
'StoreGateSvc+HoughDataPerSectorVec')]
548 if flags.Detector.GeometryCSC:
549 dataObjects += [(
'Muon::CscPrepDataContainer' ,
'StoreGateSvc+CSC_Clusters' )]
550 if flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM:
551 dataObjects += [(
'Muon::MMPrepDataContainer' ,
'StoreGateSvc+MM_Measurements'),
552 (
'Muon::sTgcPrepDataContainer' ,
'StoreGateSvc+STGC_Measurements') ]
554 alg = CompFactory.AthViews.ViewDataVerifier( name =
"VDVMuInsideOut_"+name+suffix,
555 DataObjects = dataObjects)
556 acc.addEventAlgo(alg)
562 from MuonConfig.MuonSegmentFindingConfig
import MuonSegmentFinderAlgCfg, MuonLayerHoughAlgCfg, MuonSegmentFilterAlgCfg
563 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring
import MuonCreatorAlgMonitoring
564 from MuonCombinedConfig.MuonCombinedReconstructionConfig
import MuonCreatorAlgCfg, MuGirlStauAlgCfg, StauCreatorAlgCfg, MuonInDetToMuonSystemExtensionAlgCfg, MuonInsideOutRecoAlgCfg, MuonCombinedInDetCandidateAlgCfg
565 from MuonCombinedConfig.MuonCombinedRecToolsConfig
import MuonInsideOutRecoToolCfg
569 candidatesName =
"MuonCandidates"
571 candidatesName =
"MuonCandidates_FS"
576 acc.merge(
MuonLayerHoughAlgCfg(flags,
"TrigMuonLayerHoughAlg_"+name,MuonPatternCombinationCollection=
"MuonLayerHoughCombis_"+name,
577 Key_MuonLayerHoughToolHoughDataPerSectorVec=
"HoughDataPerSectorVec_"+name))
581 if flags.Muon.runCommissioningChain:
582 acc.merge(
MuonSegmentFinderAlgCfg(flags, name=
"TrigMuonSegmentMaker_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW",MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
583 acc.merge(
MuonSegmentFilterAlgCfg(flags, name=
"TrigMuonSegmentFilter_"+name,SegmentCollectionName=
"TrackMuonSegments_withNSW",
584 FilteredCollectionName=
"TrackMuonSegments", TrashUnFiltered=
False, ThinStations=()))
586 acc.merge(
MuonSegmentFinderAlgCfg(flags,
"TrigMuonSegmentMaker_"+name,MuonLayerHoughCombisKey=
"MuonLayerHoughCombis_"+name))
590 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
593 trackParticles = muLateFlags.Tracking.ActiveConfig.tracks_IDTrig
596 acc.merge(
MuonCombinedInDetCandidateAlgCfg(flags, name=
"TrigMuonCombinedInDetCandidateAlg_"+name,TrackParticleLocation=[trackParticles],ForwardParticleLocation=trackParticles,InDetCandidateLocation=
"InDetCandidates_"+name,ExtendBulk=
True))
605 cbMuonName = muNames.EFCBInOutName+suffix
608 acc.merge(
MuGirlStauAlgCfg(flags, name=
"TrigMuonLateInsideOutRecoAlg_"+name,InDetCandidateLocation=
"InDetCandidates_"+name))
609 acc.merge(
StauCreatorAlgCfg(flags, name=
"TrigLateMuonCreatorAlg_"+name, TagMaps=[
"stauTagMap"], SegmentContainerName=
"", InDetCandidateLocation=
"InDetCandidates_"+name,
613 WriteInDetCandidates=
"InDetCandidatesSystemExtended_"+name+suffix))
618 InsideOutRecoTool = acc.popToolsAndMerge(ioTool)
620 acc.merge(
MuonInsideOutRecoAlgCfg(flags, name=
"TrigMuonInsideOutRecoAlg_"+name+suffix,InDetCandidateLocation=
"InDetCandidatesSystemExtended_"+name+suffix, MuonCombinedInDetExtensionTool=InsideOutRecoTool))
622 acc.merge(
MuonCreatorAlgCfg(flags, name=
"TrigMuonCreatorAlgInsideOut_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=[
"muGirlTagMap"],InDetCandidateLocation=
"InDetCandidates_"+name+suffix,
623 MuonContainerLocation = cbMuonName, ExtrapolatedLocation =
"InsideOutCBExtrapolatedMuons"+suffix,
624 MSOnlyExtrapolatedLocation =
"InsideOutCBMSOnlyExtrapolatedMuons"+suffix, CombinedLocation =
"InsideOutCBCombinedMuon"+suffix, MonTool =
MuonCreatorAlgMonitoring(flags,
"MuonCreatorAlgInsideOut_"+name+suffix)))
633 dataObjects = [(
'TrigRoiDescriptorCollection' ,
'StoreGateSvc+'+RoIs ),
634 (
'xAOD::MuonContainer' ,
'StoreGateSvc+IsoViewMuons'+name )]
636 alg = CompFactory.AthViews.ViewDataVerifier( name =
"efMuIsoVDV"+name,
637 DataObjects = dataObjects)
638 acc.addEventAlgo(alg)
651 from TrigInDetConfig.TrigInDetConfig
import trigInDetPrecisionTrackingCfg
654 trackParticles = muIsoFlags.Tracking.ActiveConfig.tracks_IDTrig
657 from TrigMuonEF.TrigMuonEFConfig
import TrigMuonEFTrackIsolationAlgCfg
659 MuonEFContainer = Muons,IdTrackParticles = trackParticles, MuonContName = muNames.EFIsoMuonName+name,
660 ptcone02Name = muNames.EFIsoMuonName+name +
".ptcone02",
661 ptcone03Name = muNames.EFIsoMuonName+name +
".ptcone03"))
667 dataObjects = [(
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCm2' ),
668 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCm1' ),
669 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCp1' ),
670 (
'xAOD::MuonRoIContainer',
'StoreGateSvc+LVL1MuonRoIsBCp2' )]
672 alg = CompFactory.AthViews.ViewDataVerifier( name =
"efLateMuRoIVDV",
673 DataObjects = dataObjects)
674 acc.addEventAlgo(alg)
682 from TrigmuRoI.TrigmuRoIConfig
import TrigmuRoIConfig
683 sequenceOut =
"LateMuRoIs"
686 return acc, sequenceOut