672def MuonCombinedReconstructionCfg(flags):
673 from MuonConfig.MuonGeometryConfig import MuonIdHelperSvcCfg
674
675
676 result = MuonIdHelperSvcCfg(flags)
677
678 from CaloRec.CaloTopoClusterConfig import CaloTopoClusterCfg
679 result.merge(CaloTopoClusterCfg(flags))
680 from TrackToCalo.CaloExtensionBuilderAlgCfg import CaloExtensionBuilderCfg
681 result.merge(CaloExtensionBuilderCfg(flags))
682
683 from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
684 result.merge(TrackingGeometryCondAlgCfg(flags))
685 from MuonConfig.MuonRecToolsConfig import MuonEDMHelperSvcCfg
686 result.merge(MuonEDMHelperSvcCfg(flags))
687
688
689 from TrkConfig.TrackCollectionReadConfig import TrackCollectionReadCfg
690 result.merge(TrackCollectionReadCfg(flags, 'Tracks'))
691
692
693
694 if flags.MuonCombined.doMuGirl or \
695 flags.MuonCombined.doStatisticalCombination or \
696 flags.MuonCombined.doCaloTrkMuId or \
697 flags.MuonCombined.doCombinedFit or \
698 flags.MuonCombined.doMuonSegmentTagger:
699
700 result.merge(MuonCombinedInDetCandidateAlgCfg(flags))
701 if flags.Tracking.doLargeD0:
702 result.merge(LRT_MuonCombinedInDetCandidateAlgCfg(flags))
703
704 result.merge(MuonCombinedMuonCandidateAlgCfg(flags))
705
706 if flags.MuonCombined.doStatisticalCombination or flags.MuonCombined.doCombinedFit:
707 result.merge(MuonCombinedAlgCfg(flags))
708 if flags.Tracking.doLargeD0:
709 result.merge(LRT_MuonCombinedAlgCfg(flags))
710
711
712 if flags.MuonCombined.doCombinedFit:
713 result.merge(MuonInDetToMuonSystemExtensionAlgCfg(flags))
714 if flags.Tracking.doLargeD0:
715 result.merge(LRT_MuonInDetToMuonSystemExtensionAlgCfg(flags))
716 if flags.MuonCombined.doMuGirl:
717
718 result.merge(MuonInsideOutRecoAlgCfg(flags, name="MuonInsideOutRecoAlg",
719 InDetCandidateLocation="InDetCandidates"
720 if not flags.MuonCombined.doCombinedFit else "InDetCandidatesSystemExtened"))
721 if flags.MuonCombined.doMuGirlLowBeta:
722 if flags.Tracking.doLargeD0:
723 result.merge(MuonInDetExtensionMergerAlgCfg(flags))
724
725
726 result.merge(MuGirlStauAlgCfg(flags))
727 if flags.Tracking.doLargeD0:
728 result.merge(LRT_MuGirlAlgCfg(flags))
729
730 if flags.MuonCombined.doCaloTrkMuId:
731 result.merge(MuonCaloTagAlgCfg(flags))
732 if flags.Tracking.doLargeD0:
733 result.merge(LRT_MuonCaloTagAlgCfg(flags))
734
735 if flags.MuonCombined.doMuonSegmentTagger:
736 result.merge(MuonSegmentTagAlgCfg(flags))
737 if flags.Tracking.doLargeD0:
738 result.merge(LRT_MuonSegmentTagAlgCfg(flags))
739
740 if flags.Muon.runCommissioningChain:
741 result.merge(EMEO_MuonCombinedMuonCandidateAlgCfg(flags))
742 result.merge(EMEO_MuonCombinedAlgCfg(flags))
743
744 result.merge(MuonSegContainerMergerAlgCfg(flags))
745 from MuonConfig.MuonSegmentFindingConfig import MuonSegmentCnvAlgCfg
746 result.merge(MuonSegmentCnvAlgCfg(flags, "MuonSegmentCnvAlg",
747 SegmentContainerName="TrkMuonSegments",
748 xAODContainerName="MuonSegments"))
749 if flags.MuonCombined.writeUnAssocSegments:
750 result.merge(MuonSegmentCnvAlgCfg(flags, "UnAssocMuonSegmentCnvAlg",
751 SegmentContainerName="UnAssocMuonTrkSegments",
752 xAODContainerName="UnAssocMuonSegments"))
753 if flags.MuonCombined.doMuGirlLowBeta:
754 result.merge(MuonSegmentCnvAlgCfg(flags, "MuonStauSegmentCnvAlg",
755 SegmentContainerName="TrkStauSegments",
756 xAODContainerName="StauSegments"))
757 if flags.Muon.runCommissioningChain:
758 result.merge(EMEO_MuonCreatorAlgCfg(flags))
759
760 result.merge(MuonCreatorAlgCfg(flags))
761 if flags.Tracking.doLargeD0:
762 result.merge(LRT_MuonCreatorAlgCfg(flags))
763
764 if flags.MuonCombined.doMuGirlLowBeta:
765
766 result.merge(StauCreatorAlgCfg(flags))
767
768
769
770 from MuonConfig.MuonRecToolsConfig import MuonTrackScoringToolCfg
771 result.addPublicTool(result.popToolsAndMerge(
772 MuonTrackScoringToolCfg(flags)))
773 from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
774 result.addPublicTool(result.popToolsAndMerge(
775 MuonCombinedTrackSummaryToolCfg(flags)))
776
777
778 from AthenaConfiguration.Enums import Format
779 if flags.Input.isMC and flags.Input.Format != Format.BS:
780 result.merge(CombinedMuonTrackTruthAlgsCfg(flags))
781 result.merge(CombinedMuonTruthAssociationAlgsCfg(flags))
782 if not flags.Muon.usePhaseIIGeoSetup and \
783 "MuonSegments" not in flags.Input.Collections:
784
785 from MuonConfig.MuonTruthAlgsConfig import MuonSegmentTruthAssociationAlgCfg
786 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
787
788 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
789 "MuonTCLinks", ClustersToDecorate="MuonClusterCollection"))
790 result.merge(MuonDecorationAlgsCfg(flags))
791
792 result.merge(CombinedMuonOutputCfg(flags))
793
794 return result
795
796