487def muEFCBRecoSequenceCfg( flags, RoIs, name, suffix ):
488
489
490 from MuonCombinedAlgs.MuonCombinedAlgsMonitoring import MuonCreatorAlgMonitoring
491 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg, MuonCombinedAlgCfg, MuonCombinedInDetCandidateAlgCfg
492 acc = ComponentAccumulator()
493
494 acc.merge(VDVEFMuCBCfg(flags, RoIs, name, suffix))
495
496 if "FS" in name:
497
498 from TrigInDetConfig.TrigInDetConfig import trigInDetFastTrackingCfg
499 acc.merge(trigInDetFastTrackingCfg( flags, roisKey=RoIs, signatureName="muonFS" ))
500
501 else:
502 acc.merge(VDVPrecMuTrkCfg(flags, name, suffix))
503
504
505
506 from TrigInDetConfig.TrigInDetConfig import trigInDetPrecisionTrackingCfg
507
508
509
510 if isCosmic(flags) and 'LRT' not in name:
511 trackParticles=getIDTracks(flags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse)
512 elif 'LRT' in name:
513 muLrtFlags = getFlagsForActiveConfig(flags, "muonLRT", log)
514 acc.merge(trigInDetPrecisionTrackingCfg(muLrtFlags, rois= RoIs, signatureName="muonLRT"))
515 trackParticles = getIDTracks(muLrtFlags, name, precision=True)
516 elif 'FS' in name:
517 muFsFlags = getFlagsForActiveConfig(flags, "muonFS", log)
518 acc.merge(trigInDetPrecisionTrackingCfg(muFsFlags, rois= RoIs, signatureName="muonFS", in_view=False))
519 trackParticles = getIDTracks(muFsFlags, precision=True)
520 else:
521 muFlags = getFlagsForActiveConfig(flags, "muon", log)
522 if not flags.Muon.enableTrigIDtrackReuse and suffix == '':
523 acc.merge(trigInDetPrecisionTrackingCfg(muFlags, rois= RoIs, signatureName="muon"))
524 trackParticles=getIDTracks(muFlags, name, muonIDreuse=flags.Muon.enableTrigIDtrackReuse, precision=True, suffix=suffix)
525
526 if flags.Muon.enableTrigIDtrackReuse or suffix != '':
527 if 'LRT' not in name or 'FS' not in name:
528 if flags.GeoModel.Run > LHCPeriod.Run3:
529 acc.merge(VDVidReuseITkCfg(flags, suffix))
530 if suffix != 'idReuse':
531 MuonL2CBInputContainer = muNames.L2CBName+suffix
532 else:
533 MuonL2CBInputContainer = muNames.L2CBName
534 from TrigMuonEF.TrigMuonEFConfig import GetL2CBmuonInDetTracksAlgCfg
535 acc.merge(GetL2CBmuonInDetTracksAlgCfg(flags, name="GetL2CBInDetTracks"+suffix,
536 MuonL2CBContainerLocation=MuonL2CBInputContainer,
537 IDtrackOutputLocation="HLT_IDTrack_MuonComb_FTF"+suffix))
538
539
540 acc.merge(MuonCombinedInDetCandidateAlgCfg(flags, name="TrigMuonCombinedInDetCandidateAlg_"+name+suffix,TrackParticleLocation = [trackParticles], InDetCandidateLocation="InDetCandidates_"+name+suffix))
541
542
543
544 candidatesName = "MuonCandidates"
545 if 'FS' in name:
546 candidatesName = "MuonCandidates_FS"
547
548 acc.merge(MuonCombinedAlgCfg(flags,name="TrigMuonCombinedAlg_"+name+suffix, MuonCandidateLocation=candidatesName, InDetCandidateLocation="InDetCandidates_"+name+suffix))
549
550 cbMuonName = muNames.EFCBOutInName
551 if 'FS' in name:
552 cbMuonName = muNamesFS.EFCBOutInName
553 elif 'LRT' in name:
554 cbMuonName = muNamesLRT.EFCBName
555
556
557 acc.merge(MuonCreatorAlgCfg(flags, name="TrigMuonCreatorAlgCB_"+name+suffix, MuonCandidateLocation=[candidatesName], TagMaps=["muidcoTagMap"], InDetCandidateLocation="InDetCandidates_"+name+suffix,
558 MuonContainerLocation = cbMuonName+suffix, ExtrapolatedLocation = "CBExtrapolatedMuons"+suffix,
559 MSOnlyExtrapolatedLocation = "CBMSonlyExtrapolatedMuons"+suffix, CombinedLocation = "HLT_CBCombinedMuon_"+name+suffix,
560 MonTool = MuonCreatorAlgMonitoring(flags, "MuonCreatorAlgCB_"+name+suffix)))
561
562
563
564 return acc
565
566