597def MuonCombinedReconstructionCfg(flags):
598 from MuonConfig.MuonGeometryConfig import MuonIdHelperSvcCfg
599
600
601 result = MuonIdHelperSvcCfg(flags)
602
603 from CaloRec.CaloTopoClusterConfig import CaloTopoClusterCfg
604 result.merge(CaloTopoClusterCfg(flags))
605 from TrackToCalo.CaloExtensionBuilderAlgCfg import CaloExtensionBuilderCfg
606 result.merge(CaloExtensionBuilderCfg(flags))
607
608 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
609 result.merge(TrackingGeometryCondAlgCfg(flags))
610 from MuonConfig.MuonRecToolsConfig import MuonEDMHelperSvcCfg
611 result.merge(MuonEDMHelperSvcCfg(flags))
612
613
614 from TrkConfig.TrackCollectionReadConfig import TrackCollectionReadCfg
615 result.merge(TrackCollectionReadCfg(flags, 'Tracks'))
616
617
618
619 if flags.MuonCombined.doMuGirl or \
620 flags.MuonCombined.doStatisticalCombination or \
621 flags.MuonCombined.doCaloTrkMuId or \
622 flags.MuonCombined.doCombinedFit or \
623 flags.MuonCombined.doMuonSegmentTagger:
624
625 result.merge(MuonCombinedInDetCandidateAlgCfg(flags))
626 if flags.Tracking.doLargeD0:
627 result.merge(LRT_MuonCombinedInDetCandidateAlgCfg(flags))
628
629 result.merge(MuonCombinedMuonCandidateAlgCfg(flags))
630
631 if flags.MuonCombined.doStatisticalCombination or flags.MuonCombined.doCombinedFit:
632 result.merge(MuonCombinedAlgCfg(flags))
633 if flags.Tracking.doLargeD0:
634 result.merge(LRT_MuonCombinedAlgCfg(flags))
635
636
637 if flags.MuonCombined.doCombinedFit:
638 result.merge(MuonInDetToMuonSystemExtensionAlgCfg(flags))
639 if flags.Tracking.doLargeD0:
640 result.merge(LRT_MuonInDetToMuonSystemExtensionAlgCfg(flags))
641 if flags.MuonCombined.doMuGirl:
642
643 result.merge(MuonInsideOutRecoAlgCfg(flags, name="MuonInsideOutRecoAlg",
644 InDetCandidateLocation="InDetCandidates"
645 if not flags.MuonCombined.doCombinedFit else "InDetCandidatesSystemExtened"))
646 if flags.MuonCombined.doMuGirlLowBeta:
647 if flags.Tracking.doLargeD0:
648 result.merge(MuonInDetExtensionMergerAlgCfg(flags))
649
650
651 result.merge(MuGirlStauAlgCfg(flags))
652 if flags.Tracking.doLargeD0:
653 result.merge(LRT_MuGirlAlgCfg(flags))
654
655 if flags.MuonCombined.doCaloTrkMuId:
656 result.merge(MuonCaloTagAlgCfg(flags))
657 if flags.Tracking.doLargeD0:
658 result.merge(LRT_MuonCaloTagAlgCfg(flags))
659
660 if flags.MuonCombined.doMuonSegmentTagger:
661 result.merge(MuonSegmentTagAlgCfg(flags))
662 if flags.Tracking.doLargeD0:
663 result.merge(LRT_MuonSegmentTagAlgCfg(flags))
664
665 result.merge(MuonSegContainerMergerAlgCfg(flags))
666 from MuonConfig.MuonSegmentFindingConfig import MuonSegmentCnvAlgCfg
667 result.merge(MuonSegmentCnvAlgCfg(flags, "MuonSegmentCnvAlg",
668 SegmentContainerName="TrkMuonSegments",
669 xAODContainerName="MuonSegments"))
670 if flags.MuonCombined.writeUnAssocSegments:
671 result.merge(MuonSegmentCnvAlgCfg(flags, "UnAssocMuonSegmentCnvAlg",
672 SegmentContainerName="UnAssocMuonTrkSegments",
673 xAODContainerName="UnAssocMuonSegments"))
674 if flags.MuonCombined.doMuGirlLowBeta:
675 result.merge(MuonSegmentCnvAlgCfg(flags, "MuonStauSegmentCnvAlg",
676 SegmentContainerName="TrkStauSegments",
677 xAODContainerName="StauSegments"))
678
679 result.merge(MuonCreatorAlgCfg(flags))
680 if flags.Tracking.doLargeD0:
681 result.merge(LRT_MuonCreatorAlgCfg(flags))
682
683 if flags.MuonCombined.doMuGirlLowBeta:
684
685 result.merge(StauCreatorAlgCfg(flags))
686
687
688
689 from MuonConfig.MuonRecToolsConfig import MuonTrackScoringToolCfg
690 result.addPublicTool(result.popToolsAndMerge(
691 MuonTrackScoringToolCfg(flags)))
692 from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
693 result.addPublicTool(result.popToolsAndMerge(
694 MuonCombinedTrackSummaryToolCfg(flags)))
695
696
697 from AthenaConfiguration.Enums import Format
698 if flags.Input.isMC and flags.Input.Format != Format.BS:
699 result.merge(CombinedMuonTrackTruthAlgsCfg(flags))
700 result.merge(CombinedMuonTruthAssociationAlgsCfg(flags))
701 if not flags.Muon.usePhaseIIGeoSetup and \
702 "MuonSegments" not in flags.Input.Collections:
703
704 from MuonConfig.MuonTruthAlgsConfig import MuonSegmentTruthAssociationAlgCfg
705 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
706
707 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
708 "MuonTCLinks", ClustersToDecorate="MuonClusterCollection"))
709 result.merge(MuonDecorationAlgsCfg(flags))
710
711 result.merge(CombinedMuonOutputCfg(flags))
712
713 return result
714
715