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