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