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