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