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 if flags.Input.isMC:
782 result.merge(CombinedMuonTrackTruthAlgsCfg(flags))
783 result.merge(CombinedMuonTruthAssociationAlgsCfg(flags))
784 if not flags.Muon.usePhaseIIGeoSetup and \
785 "MuonSegments" not in flags.Input.Collections:
786
787 from MuonConfig.MuonTruthAlgsConfig import MuonSegmentTruthAssociationAlgCfg
788 result.merge(MuonSegmentTruthAssociationAlgCfg(flags))
789
790 result.addEventAlgo(CompFactory.ClusterMatching.CaloClusterMatchLinkAlg(
791 "MuonTCLinks", ClustersToDecorate="MuonClusterCollection"))
792 result.merge(MuonDecorationAlgsCfg(flags))
793
794 result.merge(CombinedMuonOutputCfg(flags))
795
796 return result
797
798