From 01cb0cebf3384aa4ff5b92274b08ae40ab53d7f7 Mon Sep 17 00:00:00 2001
From: Tadej Novak <tadej.novak@cern.ch>
Date: Wed, 22 Dec 2021 11:06:42 +0100
Subject: [PATCH] Another round of tracking improvements

---
 .../InDetConfig/python/BackTrackingConfig.py  |   5 +-
 .../python/ITkTrackingSiPatternConfig.py      |  24 ++-
 .../InDetRecCaloSeededROISelectionConfig.py   |   5 +-
 .../InDetConfig/python/TRTStandaloneConfig.py |   7 +-
 .../python/TRT_ElectronPidToolsConfig.py      |   4 +
 .../python/TrackingCommonConfig.py            |  97 +++++-----
 .../python/TrackingSiPatternConfig.py         | 167 ++++++++----------
 .../share/ConfiguredNewTrackingSiPattern.py   |   1 +
 .../share/RecRenamedComponents                |   7 +-
 .../share/new_jo_raw_reco_aod_digest.ref      |   8 +-
 10 files changed, 159 insertions(+), 166 deletions(-)

diff --git a/InnerDetector/InDetConfig/python/BackTrackingConfig.py b/InnerDetector/InDetConfig/python/BackTrackingConfig.py
index c42e4c7e163e..dfc1d6f5cb91 100644
--- a/InnerDetector/InDetConfig/python/BackTrackingConfig.py
+++ b/InnerDetector/InDetConfig/python/BackTrackingConfig.py
@@ -235,7 +235,7 @@ def TrkAmbiguityScoreCfg(flags, name='InDetTRT_SeededAmbiguityScore', **kwargs):
 def InDetTRTAmbiTrackSelectionToolCfg(flags, name='InDetTRT_SeededAmbiTrackSelectionTool', **kwargs):
     acc = ComponentAccumulator()
 
-    InDetTRTDriftCircleCut = acc.getPrimaryAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+    InDetTRTDriftCircleCut = acc.popToolsAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
 
     InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge( TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags) )
 
@@ -250,8 +250,7 @@ def InDetTRTAmbiTrackSelectionToolCfg(flags, name='InDetTRT_SeededAmbiTrackSelec
     kwargs.setdefault("Cosmics", flags.Beam.Type == "cosmics")
     kwargs.setdefault("doPixelSplitting", flags.InDet.doPixelClusterSplitting)
 
-    InDetTRT_SeededAmbiTrackSelectionTool = CompFactory.InDet.InDetAmbiTrackSelectionTool(name = name, **kwargs)
-    acc.setPrivateTools(InDetTRT_SeededAmbiTrackSelectionTool)
+    acc.setPrivateTools(CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs))
     return acc
 
 def SimpleAmbiguityProcessorToolCfg(flags, name='InDetTRT_SeededAmbiguityProcessor', ClusterSplitProbContainer="", **kwargs):
diff --git a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py
index e14fda3b9115..f43242ead2e0 100644
--- a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py
+++ b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py
@@ -111,19 +111,18 @@ def ITkSiCombinatorialTrackFinder_xkCfg(flags, name="ITkSiComTrackFinder", **kwa
     kwargs.setdefault("ITkGeometry", True)
     kwargs.setdefault("doFastTracking", flags.ITk.Tracking.doFastTracking)
 
-    if flags.Detector.EnableITkStrip:
-        from SCT_ConditionsTools.ITkStripConditionsToolsConfig import ITkStripConditionsSummaryToolCfg
-        ITkStripConditionsSummaryTool = acc.popToolsAndMerge(ITkStripConditionsSummaryToolCfg(flags))
-        kwargs.setdefault("SctSummaryTool", ITkStripConditionsSummaryTool)
-    else:
-        kwargs.setdefault("SctSummaryTool", None)
-
     if flags.Detector.EnableITkPixel:
         from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg
-        kwargs.setdefault("PixelSummaryTool", acc.popToolsAndMerge(ITkPixelConditionsSummaryCfg(flags)) )
+        kwargs.setdefault("PixelSummaryTool", acc.popToolsAndMerge(ITkPixelConditionsSummaryCfg(flags)))
     else:
         kwargs.setdefault("PixelSummaryTool", None)
 
+    if flags.Detector.EnableITkStrip:
+        from SCT_ConditionsTools.ITkStripConditionsToolsConfig import ITkStripConditionsSummaryToolCfg
+        kwargs.setdefault("SctSummaryTool", acc.popToolsAndMerge(ITkStripConditionsSummaryToolCfg(flags)))
+    else:
+        kwargs.setdefault("SctSummaryTool", None)
+
     ITkSiComTrackFinder = CompFactory.InDet.SiCombinatorialTrackFinder_xk(name = name+flags.ITk.Tracking.Pass.extension, **kwargs)
     acc.setPrivateTools(ITkSiComTrackFinder)
     return acc
@@ -207,11 +206,10 @@ def ITkSiTrackMaker_xkCfg(flags, name="ITkSiTrackMaker", InputCollections = None
         extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
         acc.addPublicTool(extrapolator)  # TODO: migrate to private?
 
-        ITkSeedToTrackConversion = CompFactory.InDet.SeedToTrackConversionTool(name="ITkSeedToTrackConversion",
-                                                                               OutputName=f"SiSPSeedSegments{flags.ITk.Tracking.Pass.extension}",
-                                                                               Extrapolator=extrapolator)
-        acc.setPrivateTools(ITkSeedToTrackConversion)
-        kwargs.setdefault("SeedToTrackConversion", ITkSeedToTrackConversion)
+        kwargs.setdefault("SeedToTrackConversion", CompFactory.InDet.SeedToTrackConversionTool(
+            name="ITkSeedToTrackConversion",
+            Extrapolator=extrapolator,
+            OutputName=f"SiSPSeedSegments{flags.ITk.Tracking.Pass.extension}"))
         kwargs.setdefault("SeedSegmentsWrite", True)
 
     ITkSiTrackMaker = CompFactory.InDet.SiTrackMaker_xk(name = name+flags.ITk.Tracking.Pass.extension, **kwargs)
diff --git a/InnerDetector/InDetConfig/python/InDetRecCaloSeededROISelectionConfig.py b/InnerDetector/InDetConfig/python/InDetRecCaloSeededROISelectionConfig.py
index 24e1af799a35..e02608d06272 100644
--- a/InnerDetector/InDetConfig/python/InDetRecCaloSeededROISelectionConfig.py
+++ b/InnerDetector/InDetConfig/python/InDetRecCaloSeededROISelectionConfig.py
@@ -49,7 +49,10 @@ def HadCaloClusterROI_SelectorCfg(ConfigFlags, name="InDetHadCaloClusterROISelec
     kwargs.setdefault("InputClusterContainerName",  InDetKeys.HadCaloClusterContainer())
     kwargs.setdefault("OutputClusterContainerName", InDetKeys.HadCaloClusterROIContainer() + "Bjet")
     if "CaloClusterROIBuilder" not in kwargs:
-        kwargs["CaloClusterROIBuilder"] = CompFactory.InDet.CaloClusterROI_Builder("InDetCaloClusterROIBuilder")
+        kwargs["CaloClusterROIBuilder"] = CompFactory.InDet.CaloClusterROI_Builder(
+            "InDetCaloClusterROIBuilder",
+            EMEnergyOnly=False,
+        )
     if "egammaCaloClusterSelector" not in kwargs:
         kwargs["egammaCaloClusterSelector"] = result.popToolsAndMerge(egammaHadCaloClusterSelectorCfg(ConfigFlags))
     result.addEventAlgo(CompFactory.InDet.CaloClusterROI_Selector(name, **kwargs), primary=True)
diff --git a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py
index 3213f893b3a9..c5dd2fdb68c0 100644
--- a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py
+++ b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py
@@ -9,7 +9,8 @@ def InDetTrtTrackScoringToolCfg(flags, name ='InDetTRT_StandaloneScoringTool', e
     #
     # --- set up special Scoring Tool for standalone TRT tracks
     #
-    InDetTRTDriftCircleCut = acc.getPrimaryAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+    InDetTRTDriftCircleCut = acc.popToolsAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+    acc.addPublicTool(InDetTRTDriftCircleCut)
 
     #
     # Cut values and output key for the TRT segments standalone TRT track finder
@@ -78,10 +79,6 @@ def TRT_SegmentToTrackToolCfg(flags, name ='InDetTRT_SegmentToTrackTool', extens
 
 def TRT_StandaloneTrackFinderCfg(flags, name ='InDetTRT_StandaloneTrackFinder', extension = "", BarrelSegments = None, prd_to_track_map = '', **kwargs):
     acc = ComponentAccumulator()
-    if not flags.Input.isMC:
-        # TODO: certainly not the right dependency but at least it makes this algorithm run
-        from LumiBlockComps.LumiBlockMuWriterConfig import LumiBlockMuWriterCfg
-        acc.merge(LumiBlockMuWriterCfg(flags))
 
     usePrdAssociationTool = True
     #usePrdAssociationTool = True if len(InputCollections) > 0 else False
diff --git a/InnerDetector/InDetConfig/python/TRT_ElectronPidToolsConfig.py b/InnerDetector/InDetConfig/python/TRT_ElectronPidToolsConfig.py
index 608e47d60272..a0cb949c6df2 100644
--- a/InnerDetector/InDetConfig/python/TRT_ElectronPidToolsConfig.py
+++ b/InnerDetector/InDetConfig/python/TRT_ElectronPidToolsConfig.py
@@ -47,6 +47,10 @@ def TRT_dEdxToolCfg(flags, name="TRT_dEdxTool", **kwargs):
     from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTToTCondAlgCfg
     acc = TRTToTCondAlgCfg(flags)
 
+    if not flags.Input.isMC:
+        from LumiBlockComps.LumiBlockMuWriterConfig import LumiBlockMuWriterCfg
+        acc.merge(LumiBlockMuWriterCfg(flags))
+
     kwargs.setdefault("TRT_dEdx_isData", not flags.Input.isMC)
     kwargs.setdefault("TRT_LocalOccupancyTool", acc.popToolsAndMerge(TRT_LocalOccupancyCfg(flags)))
     
diff --git a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py
index abf2c58467c0..f3c14f3c618b 100644
--- a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py
+++ b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py
@@ -79,23 +79,23 @@ def LWTNNCondAlgCfg(flags, **kwargs):
     acc.addCondAlgo(CompFactory.InDet.LWTNNCondAlg(kwargs.pop("name", "LWTNNCondAlg"), **kwargs))
     return acc
 
-def NnClusterizationFactoryCfg(flags, name = 'NnClusterizationFactory', **kwargs):
+
+def NnClusterizationFactoryCfg(flags, name="NnClusterizationFactory", **kwargs):
     acc = ComponentAccumulator()
     the_name = makeName(name, kwargs)
 
-    if 'PixelLorentzAngleTool' not in kwargs :
+    if "PixelLorentzAngleTool" not in kwargs:
         from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleTool
         PixelLorentzAngleTool = PixelLorentzAngleTool(flags, name="PixelLorentzAngleTool", **kwargs)
         kwargs.setdefault("PixelLorentzAngleTool", PixelLorentzAngleTool)
 
-    useTTrainedNetworks = flags.InDet.useNNTTrainedNetworks
     do_runI = flags.GeoModel.Run == "RUN1"
 
-    if useTTrainedNetworks :
-        acc.merge(PixelClusterNnCondAlgCfg(flags, name='PixelClusterNnCondAlg', GetInputsInfo = do_runI))
-        acc.merge(PixelClusterNnWithTrackCondAlgCfg(flags, name = 'PixelClusterNnWithTrackCondAlg', GetInputsInfo = do_runI))
+    if flags.InDet.useNNTTrainedNetworks:
+        acc.merge(PixelClusterNnCondAlgCfg(flags, name="PixelClusterNnCondAlg", GetInputsInfo=do_runI))
+        acc.merge(PixelClusterNnWithTrackCondAlgCfg(flags, name="PixelClusterNnWithTrackCondAlg", GetInputsInfo=do_runI))
     else:
-        acc.merge(LWTNNCondAlgCfg(flags, name='LWTNNCondAlg'))
+        acc.merge(LWTNNCondAlgCfg(flags, name="LWTNNCondAlg"))
 
     kwargs.setdefault("doRunI", do_runI)
     kwargs.setdefault("useToT", False if do_runI else flags.InDet.doNNToTCalibration)
@@ -103,88 +103,88 @@ def NnClusterizationFactoryCfg(flags, name = 'NnClusterizationFactory', **kwargs
     kwargs.setdefault("useRecenteringNNWithTracks", False if do_runI else False)
     kwargs.setdefault("correctLorShiftBarrelWithoutTracks", 0)
     kwargs.setdefault("correctLorShiftBarrelWithTracks", 0.030 if do_runI else 0.000)
-    kwargs.setdefault("useTTrainedNetworks", useTTrainedNetworks)
-    kwargs.setdefault("NnCollectionReadKey", 'PixelClusterNN' if useTTrainedNetworks else '')
-    kwargs.setdefault("NnCollectionWithTrackReadKey", 'PixelClusterNNWithTrack' if useTTrainedNetworks else '')
-    kwargs.setdefault("NnCollectionJSONReadKey", '' if useTTrainedNetworks else 'PixelClusterNNJSON')
+    kwargs.setdefault("useTTrainedNetworks", flags.InDet.useNNTTrainedNetworks)
+    kwargs.setdefault("NnCollectionReadKey", "PixelClusterNN" if flags.InDet.useNNTTrainedNetworks else "")
+    kwargs.setdefault("NnCollectionWithTrackReadKey", "PixelClusterNNWithTrack" if flags.InDet.useNNTTrainedNetworks else "")
+    kwargs.setdefault("NnCollectionJSONReadKey", "" if flags.InDet.useNNTTrainedNetworks else "PixelClusterNNJSON")
 
-    NnClusterizationFactory = CompFactory.InDet.NnClusterizationFactory( name = the_name, **kwargs )
-    acc.setPrivateTools( NnClusterizationFactory )
+    acc.setPrivateTools(CompFactory.InDet.NnClusterizationFactory(the_name, **kwargs))
     return acc
 
+
 def InDetPixelClusterOnTrackToolBaseCfg(flags, name="PixelClusterOnTrackTool", **kwargs):
     acc = ComponentAccumulator()
     the_name = makeName(name, kwargs)
 
-    from PixelConditionsAlgorithms.PixelConditionsConfig import PixelOfflineCalibCondAlgCfg, PixelDistortionAlgCfg
+    from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDistortionAlgCfg, PixelOfflineCalibCondAlgCfg
     acc.merge(PixelOfflineCalibCondAlgCfg(flags))
     if not (flags.InDet.doFatras or flags.InDet.doDBMstandalone):
         acc.merge(PixelDistortionAlgCfg(flags))
 
     split_cluster_map_extension = kwargs.pop('SplitClusterMapExtension','')
-    if (flags.Beam.Type == "cosmics") or flags.InDet.doDBMstandalone:
+    if flags.Beam.Type == "cosmics" or flags.InDet.doDBMstandalone:
         kwargs.setdefault("ErrorStrategy", 0)
         kwargs.setdefault("PositionStrategy", 0)
 
-    kwargs.setdefault("DisableDistortions", flags.InDet.doFatras or flags.InDet.doDBMstandalone )
-    kwargs.setdefault("applyNNcorrection", flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == 'NeuralNet' )
-    kwargs.setdefault("NNIBLcorrection", flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == 'NeuralNet' )
-    kwargs.setdefault("SplitClusterAmbiguityMap", 'SplitClusterAmbiguityMap' + split_cluster_map_extension )
-    kwargs.setdefault("RunningTIDE_Ambi", flags.InDet.doTIDE_Ambi )
+    kwargs.setdefault("DisableDistortions", flags.InDet.doFatras or flags.InDet.doDBMstandalone)
+    kwargs.setdefault("applyNNcorrection", flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == "NeuralNet")
+    kwargs.setdefault("NNIBLcorrection", flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == "NeuralNet")
+    kwargs.setdefault("SplitClusterAmbiguityMap", f"SplitClusterAmbiguityMap{split_cluster_map_extension}")
+    kwargs.setdefault("RunningTIDE_Ambi", flags.InDet.doTIDE_Ambi)
 
     acc.setPrivateTools(CompFactory.InDet.PixelClusterOnTrackTool(the_name, **kwargs))
     return acc
 
-def InDetPixelClusterOnTrackToolDigitalCfg(flags, name='InDetPixelClusterOnTrackToolDigital', **kwargs):
+
+def InDetPixelClusterOnTrackToolDigitalCfg(flags, name="InDetPixelClusterOnTrackToolDigital", **kwargs):
     acc = ComponentAccumulator()
 
-    if 'LorentzAngleTool' not in kwargs :
+    kwargs.setdefault("SplitClusterAmbiguityMap", "")
+
+    if "LorentzAngleTool" not in kwargs:
         from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleCfg
         PixelLorentzAngleTool = acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))
         kwargs.setdefault("LorentzAngleTool", PixelLorentzAngleTool)
 
     if flags.InDet.doDigitalROTCreation:
-        kwargs.setdefault("applyNNcorrection", False )
-        kwargs.setdefault("NNIBLcorrection", False )
-        kwargs.setdefault("ErrorStrategy", 2 )
-        kwargs.setdefault("PositionStrategy", 1 )
-        kwargs.setdefault("SplitClusterAmbiguityMap", "" )
+        kwargs.setdefault("applyNNcorrection", False)
+        kwargs.setdefault("NNIBLcorrection", False)
+        kwargs.setdefault("ErrorStrategy", 2)
+        kwargs.setdefault("PositionStrategy", 1)
     else :
-        kwargs.setdefault("SplitClusterAmbiguityMap", "" )
+        kwargs.setdefault("SplitClusterAmbiguityMap", "")
 
-    PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolBaseCfg(flags, name=name, **kwargs))
-    acc.setPrivateTools(PixelClusterOnTrackTool)
+    acc.setPrivateTools(acc.popToolsAndMerge(InDetPixelClusterOnTrackToolBaseCfg(flags, name, **kwargs)))
     return acc
 
-def InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name='InDetPixelClusterOnTrackToolNNSplitting', **kwargs):
+
+def InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name="InDetPixelClusterOnTrackToolNNSplitting", **kwargs):
     acc = ComponentAccumulator()
 
-    if flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == 'NeuralNet':
-        if 'NnClusterizationFactory' not in kwargs :
-            NnClusterizationFactory = acc.popToolsAndMerge(NnClusterizationFactoryCfg(flags))
-            kwargs.setdefault("NnClusterizationFactory", NnClusterizationFactory)
+    if flags.InDet.doPixelClusterSplitting and flags.InDet.pixelClusterSplittingType == "NeuralNet":
+        if "NnClusterizationFactory" not in kwargs:
+            kwargs.setdefault("NnClusterizationFactory", acc.popToolsAndMerge(NnClusterizationFactoryCfg(flags)))
 
-    tool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolBaseCfg(flags, name=name, **kwargs))
-    acc.setPrivateTools(tool)
+    acc.setPrivateTools(acc.popToolsAndMerge(InDetPixelClusterOnTrackToolBaseCfg(flags, name, **kwargs)))
     return acc
 
-def InDetPixelClusterOnTrackToolCfg(flags, name='InDetPixelClusterOnTrackTool', **kwargs):
+
+def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", **kwargs):
     acc = ComponentAccumulator()
 
-    if 'LorentzAngleTool' not in kwargs :
+    if "LorentzAngleTool" not in kwargs:
         from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleCfg
-        PixelLorentzAngleTool = acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))
-        kwargs.setdefault("LorentzAngleTool", PixelLorentzAngleTool)
+        kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleCfg(flags)))
 
-    PixelClusterOnTrackTool = None
     if flags.InDet.doDigitalROTCreation:
-        PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, name=name, **kwargs))
+        PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs))
     else:
-        PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name=name, **kwargs))
+        PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name, **kwargs))
 
     acc.setPrivateTools(PixelClusterOnTrackTool)
     return acc
 
+
 def InDetSCT_ClusterOnTrackToolCfg(flags, name='InDetSCT_ClusterOnTrackTool', **kwargs):
     acc = ComponentAccumulator()
     the_name = makeName(name, kwargs)
@@ -360,8 +360,7 @@ def InDetTRTDriftCircleCutForPatternRecoCfg(flags, name='InDetTRTDriftCircleCutF
     kwargs.setdefault("MinOffsetDCs", 5)
     kwargs.setdefault("UseNewParameterization", flags.InDet.Tracking.useNewParameterizationTRT)
     kwargs.setdefault("UseActiveFractionSvc", flags.Detector.EnableTRT)
-    tool = CompFactory.InDet.InDetTrtDriftCircleCutTool(the_name, **kwargs)
-    result.addPublicTool( tool, primary=True )
+    result.setPrivateTools(CompFactory.InDet.InDetTrtDriftCircleCutTool(the_name, **kwargs))
     return result
 
 def InDetSummaryHelperNoHoleSearchCfg(flags, name='InDetSummaryHelperNoHoleSearch', **kwargs):
@@ -1031,7 +1030,7 @@ def InDetTRT_TrackExtensionTool_xkCfg(flags, name='InDetTRT_ExtensionTool', **kw
         kwargs.setdefault("UpdatorTool", InDetPatternUpdator)
 
     if 'DriftCircleCutTool' not in kwargs :
-        InDetTRTDriftCircleCutForPatternReco = acc.getPrimaryAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+        InDetTRTDriftCircleCutForPatternReco = acc.popToolsAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
         kwargs.setdefault("DriftCircleCutTool", InDetTRTDriftCircleCutForPatternReco)
 
     if 'RIOonTrackToolYesDr' not in kwargs :
@@ -1172,7 +1171,7 @@ def InDetAmbiScoringToolBaseCfg(flags, name='InDetAmbiScoringTool', **kwargs) :
     InDetTrackSummaryTool = acc.getPrimaryAndMerge(InDetTrackSummaryToolCfg(flags))
 
     if 'DriftCircleCutTool' not in kwargs :
-        InDetTRTDriftCircleCutForPatternReco = acc.getPrimaryAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+        InDetTRTDriftCircleCutForPatternReco = acc.popToolsAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
         kwargs.setdefault("DriftCircleCutTool", InDetTRTDriftCircleCutForPatternReco )
 
     have_calo_rois = flags.InDet.doBremRecovery and flags.InDet.doCaloSeededBrem and flags.Detector.EnableCalo
@@ -1363,7 +1362,7 @@ def InDetNNScoringToolBaseCfg(flags, name='InDetNNScoringTool', **kwargs) :
     InDetTrackSummaryTool = acc.getPrimaryAndMerge(InDetTrackSummaryToolCfg(flags))
 
     if 'DriftCircleCutTool' not in kwargs :
-        InDetTRTDriftCircleCutForPatternReco = acc.getPrimaryAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+        InDetTRTDriftCircleCutForPatternReco = acc.popToolsAndMerge(InDetTRTDriftCircleCutForPatternRecoCfg(flags))
         kwargs.setdefault("DriftCircleCutTool", InDetTRTDriftCircleCutForPatternReco )
 
     kwargs.setdefault("nnCutConfig", "dev/TrackingCP/LRTAmbiNetwork/20200727_225401/nn-config.json" )
diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py
index d4ca037db94f..e47f1441eca2 100644
--- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py
+++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py
@@ -68,7 +68,7 @@ def SiSpacePointsSeedMakerCfg(flags, name="InDetSpSeedsMaker", InputCollections
             kwargs.setdefault("maxSizeSP", 200)
             kwargs.setdefault("dImpactCutSlopeUnconfirmedSSS", 1.25)
             kwargs.setdefault("dImpactCutSlopeUnconfirmedPPP", 2.0)
-        
+
     if flags.InDet.Tracking.extension == "R3LargeD0":
         kwargs.setdefault("optimisePhiBinning", False)
         kwargs.setdefault("usePixel", False)
@@ -110,9 +110,9 @@ def SiZvertexMaker_xkCfg(flags, name="InDetZvertexMaker", InputCollections = Non
     kwargs.setdefault("Zmax", flags.InDet.Tracking.maxZImpact)
     kwargs.setdefault("Zmin", -flags.InDet.Tracking.maxZImpact)
     kwargs.setdefault("minRatio", 0.17)
-    
-    InDetSiSpacePointsSeedMaker = acc.popToolsAndMerge(SiSpacePointsSeedMakerCfg(flags, 
-                                                                                 InputCollections = InputCollections ))
+
+    InDetSiSpacePointsSeedMaker = acc.popToolsAndMerge(SiSpacePointsSeedMakerCfg(flags,
+                                                                                 InputCollections=InputCollections))
 
     kwargs.setdefault("SeedMakerTool", InDetSiSpacePointsSeedMaker)
     if flags.InDet.doHeavyIon:
@@ -147,41 +147,44 @@ def SiCombinatorialTrackFinder_xkCfg(flags, name="InDetSiComTrackFinder", **kwar
     # --- Local track finding using sdCaloSeededSSSpace point seed
     #
     # @TODO ensure that PRD association map is used if usePrdAssociationTool is set
-    is_dbm = flags.InDet.doDBMstandalone or flags.InDet.Tracking.extension == 'DBM'
-    if not is_dbm:
-        rot_creator_digital = acc.popToolsAndMerge(TC.InDetRotCreatorDigitalCfg(flags))
+    dbmMode = flags.InDet.doDBMstandalone or flags.InDet.Tracking.extension == 'DBM'
+    if dbmMode:
+        RotCreator = acc.popToolsAndMerge(TC.InDetRotCreatorDBMCfg(flags))
     else:
-        rot_creator_digital = acc.popToolsAndMerge(TC.InDetRotCreatorDBMCfg(flags))
+        RotCreator = acc.popToolsAndMerge(TC.InDetRotCreatorDigitalCfg(flags))
 
-    acc.addPublicTool(rot_creator_digital)
+    acc.addPublicTool(RotCreator)
+    kwargs.setdefault("RIOonTrackTool", RotCreator)
 
-    InDetPatternPropagator = acc.getPrimaryAndMerge(TC.InDetPatternPropagatorCfg())
-    InDetPatternUpdator = acc.getPrimaryAndMerge(TC.InDetPatternUpdatorCfg())
+    kwargs.setdefault("PropagatorTool", acc.getPrimaryAndMerge(TC.InDetPatternPropagatorCfg()))
+    kwargs.setdefault("UpdatorTool", acc.getPrimaryAndMerge(TC.InDetPatternUpdatorCfg()))
 
     from  InDetConfig.InDetRecToolConfig import InDetBoundaryCheckToolCfg
-    boundary_check_tool = acc.popToolsAndMerge(InDetBoundaryCheckToolCfg(flags))
-
-    kwargs.setdefault("PropagatorTool", InDetPatternPropagator)
-    kwargs.setdefault("UpdatorTool", InDetPatternUpdator)
-    kwargs.setdefault("BoundaryCheckTool", boundary_check_tool)
-    kwargs.setdefault("RIOonTrackTool", rot_creator_digital)
+    kwargs.setdefault("BoundaryCheckTool", acc.popToolsAndMerge(InDetBoundaryCheckToolCfg(flags)))
+    
     kwargs.setdefault("usePixel", flags.Detector.EnablePixel)
-    kwargs.setdefault("useSCT", flags.Detector.EnableSCT if not is_dbm else False)
-    kwargs.setdefault("PixelClusterContainer", 'PixelClusters') # InDetKeys.PixelClusters()
-    kwargs.setdefault("SCT_ClusterContainer", 'SCT_Clusters') # InDetKeys.SCT_Clusters()
+    kwargs.setdefault("PixelClusterContainer", "PixelClusters")
+    kwargs.setdefault("useSCT", flags.Detector.EnableSCT if not dbmMode else False)
+    kwargs.setdefault("SCT_ClusterContainer", "SCT_Clusters")
 
-    if flags.InDet.Tracking.extension == "": 
+    if flags.InDet.Tracking.extension == "":
         kwargs.setdefault("writeHolesFromPattern", flags.InDet.useHolesFromPattern)
 
-    if is_dbm :
+    if dbmMode:
         kwargs.setdefault("MagneticFieldMode", "NoField")
         kwargs.setdefault("TrackQualityCut", 9.3)
 
+    if flags.Detector.EnablePixel:
+        from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg
+        kwargs.setdefault("PixelSummaryTool", acc.popToolsAndMerge(PixelConditionsSummaryCfg(flags)))
+    else:
+        kwargs.setdefault("PixelSummaryTool", "")
+
     if flags.Detector.EnableSCT:
-        InDetSCT_ConditionsSummaryTool = CompFactory.SCT_ConditionsSummaryTool(name = 'InDetSCT_ConditionsSummaryTool')
-        kwargs.setdefault("SctSummaryTool", InDetSCT_ConditionsSummaryTool)
+        from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_ConditionsSummaryToolCfg
+        kwargs.setdefault("SctSummaryTool", acc.popToolsAndMerge(SCT_ConditionsSummaryToolCfg(flags)))
     else:
-        kwargs.setdefault("SctSummaryTool", None)
+        kwargs.setdefault("SctSummaryTool", "")
 
     track_finder = CompFactory.InDet.SiCombinatorialTrackFinder_xk(name = name+flags.InDet.Tracking.extension, **kwargs)
     acc.setPrivateTools(track_finder)
@@ -259,7 +262,7 @@ def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None,
 
     elif flags.InDet.doHeavyIon:
         kwargs.setdefault("TrackPatternRecoInfo", 'SiSpacePointsSeedMaker_HeavyIon')
-    
+
     elif flags.InDet.Tracking.extension == "LowPt":
         kwargs.setdefault("TrackPatternRecoInfo", 'SiSpacePointsSeedMaker_LowMomentum')
 
@@ -277,12 +280,14 @@ def SiTrackMaker_xkCfg(flags, name="InDetSiTrackMaker", InputCollections = None,
 
     else:
         kwargs.setdefault("TrackPatternRecoInfo", 'SiSPSeededFinder')
-            
+
     if flags.InDet.doStoreTrackSeeds:
-        InDet_SeedToTrackConversion = CompFactory.InDet.SeedToTrackConversionTool(  name = "InDet_SeedToTrackConversion",
-                                                                                    OutputName = 'SiSPSeedSegments' + flags.InDet.Tracking.extension)
-        acc.setPrivateTools(InDet_SeedToTrackConversion)
-        kwargs.setdefault("SeedToTrackConversion", InDet_SeedToTrackConversion)
+        from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
+        kwargs.setdefault("SeedToTrackConversion", CompFactory.InDet.SeedToTrackConversionTool(
+            name="InDet_SeedToTrackConversion",
+            Extrapolator=acc.getPrimaryAndMerge(InDetExtrapolatorCfg(flags)),
+            OutputName=f"SiSPSeedSegments{flags.InDet.Tracking.extension}",
+        ))
         kwargs.setdefault("SeedSegmentsWrite", True)
 
     InDetSiTrackMaker = CompFactory.InDet.SiTrackMaker_xk(name = name+flags.InDet.Tracking.extension, **kwargs)
@@ -311,10 +316,10 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection
 
     InDetSiTrackMaker = acc.popToolsAndMerge(SiTrackMaker_xkCfg(flags,
                                                                 InputCollections = InputCollections ))
- 
+
     InDetTrackSummaryToolNoHoleSearch = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolNoHoleSearchCfg(flags))
 
-    InDetSiSpacePointsSeedMaker = acc.popToolsAndMerge(SiSpacePointsSeedMakerCfg(flags, 
+    InDetSiSpacePointsSeedMaker = acc.popToolsAndMerge(SiSpacePointsSeedMakerCfg(flags,
                                                                                  InputCollections = InputCollections ))
 
     #
@@ -346,7 +351,7 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection
         kwargs.setdefault("useZvertexTool", flags.InDet.useZvertexTool and flags.InDet.Tracking.extension != "DBM")
         kwargs.setdefault("useNewStrategy", flags.InDet.useNewSiSPSeededTF and flags.InDet.Tracking.extension != "DBM")
         kwargs.setdefault("useZBoundFinding", flags.InDet.Tracking.doZBoundary and flags.InDet.Tracking.extension != "DBM")
-    
+
     if flags.InDet.doHeavyIon :
         kwargs.setdefault("FreeClustersCut",2) #Heavy Ion optimization from Igor
 
@@ -359,7 +364,7 @@ def SiSPSeededTrackFinderCfg(flags, name="InDetSiSpTrackFinder", InputCollection
 
 def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **kwargs) :
     acc = ComponentAccumulator()
-    
+
     # ------------------------------------------------------------
     #
     # ---------- Ambiguity solving
@@ -379,7 +384,7 @@ def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **
         AmbiTrackSelectionTool = CompFactory.InDet.InDetAmbiTrackSelectionTool
 
     if 'UseParameterization' in kwargs and kwargs.get('UseParameterization',False) :
-        InDetTRTDriftCircleCut = acc.getPrimaryAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
+        InDetTRTDriftCircleCut = acc.popToolsAndMerge(TC.InDetTRTDriftCircleCutForPatternRecoCfg(flags))
         kwargs.setdefault("DriftCircleCutTool", InDetTRTDriftCircleCut)
 
     InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags))
@@ -392,7 +397,7 @@ def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **
     kwargs.setdefault("UseParameterization" , False)
     kwargs.setdefault("Cosmics"             , flags.Beam.Type == 'cosmics' and flags.InDet.Tracking.extension != "DBM")
     kwargs.setdefault("doPixelSplitting"    , flags.InDet.doPixelClusterSplitting and flags.InDet.Tracking.extension != "DBM")
-    
+
     if flags.InDet.doTIDE_Ambi and not (flags.InDet.Tracking.extension == "ForwardTracks" or flags.InDet.Tracking.extension == "DBM"):
         kwargs.setdefault("sharedProbCut"             , prob1)
         kwargs.setdefault("sharedProbCut2"            , prob2)
@@ -419,7 +424,7 @@ def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **
         kwargs.setdefault("minPtBjetROI"              , 10000)
         kwargs.setdefault("phiWidthEM"                , 0.05)     #Split cluster ROI size
         kwargs.setdefault("etaWidthEM"                , 0.05)     #Split cluster ROI size
-    
+
     elif flags.InDet.Tracking.extension == "DBM":
         kwargs.setdefault("maxShared"             , 1000)
         kwargs.setdefault("maxTracksPerSharedPRD" , 2)
@@ -435,76 +440,58 @@ def InDetAmbiTrackSelectionToolCfg(flags, name="InDetAmbiTrackSelectionTool", **
     acc.setPrivateTools(InDetAmbiTrackSelectionTool)
     return acc
 
-def DenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, name = "InDetAmbiguityScoreProcessor", ClusterSplitProbContainer='', **kwargs) :
+
+def DenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, name="InDetAmbiguityScoreProcessor", ClusterSplitProbContainer="", **kwargs):
     acc = ComponentAccumulator()
-    #
-    # --- set up different Scoring Tool for collisions and cosmics
-    #
-    if flags.Beam.Type == 'cosmics' and flags.InDet.Tracking.extension != "DBM":
+    # set up different Scoring Tool for collisions and cosmics
+    if flags.Beam.Type == "cosmics" and flags.InDet.Tracking.extension != "DBM":
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetCosmicsScoringToolCfg(flags))
-    elif(flags.InDet.Tracking.extension == "R3LargeD0" and flags.InDet.nnCutLargeD0Threshold > 0):
+    elif flags.InDet.Tracking.extension == "R3LargeD0" and flags.InDet.nnCutLargeD0Threshold > 0:
         # Set up NN config
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetNNScoringToolSiCfg(flags))
     else:
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetAmbiScoringToolSiCfg(flags))
+    kwargs.setdefault("ScoringTool", InDetAmbiScoringTool)
 
     from InDetConfig.SiliconPreProcessing import NnPixelClusterSplitProbToolCfg
-    NnPixelClusterSplitProbTool = acc.popToolsAndMerge(NnPixelClusterSplitProbToolCfg(flags))
-
-    InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags))
+    kwargs.setdefault("SplitProbTool", acc.popToolsAndMerge(NnPixelClusterSplitProbToolCfg(flags)) if flags.InDet.doPixelClusterSplitting else "")
 
-    PRDtoTrackMapTool = acc.popToolsAndMerge(TC.PRDtoTrackMapToolCfg())
+    kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)))
+    kwargs.setdefault("AssociationToolNotGanged", acc.popToolsAndMerge(TC.PRDtoTrackMapToolCfg()))
+    kwargs.setdefault("AssociationMapName", f"PRDToTrackMap{flags.InDet.Tracking.extension}")
 
-    prob1 = flags.InDet.pixelClusterSplitProb1
-    prob2 = flags.InDet.pixelClusterSplitProb2
-    
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags
-    if CommonGeometryFlags.Run() == 1:
-        prob1 = flags.InDet.pixelClusterSplitProb1_run1
-        prob2 = flags.InDet.pixelClusterSplitProb2_run1
-
-    if flags.InDet.doTIDE_Ambi and not (flags.InDet.Tracking.extension == "ForwardTracks" or flags.InDet.Tracking.extension == "DBM") :
-        kwargs.setdefault("sharedProbCut", prob1)
-        kwargs.setdefault("sharedProbCut2", prob2)
+    if flags.InDet.doTIDE_Ambi and not (flags.InDet.Tracking.extension == "ForwardTracks" or flags.InDet.Tracking.extension == "DBM"):
+        kwargs.setdefault("sharedProbCut", flags.InDet.pixelClusterSplitProb1)
+        kwargs.setdefault("sharedProbCut2", flags.InDet.pixelClusterSplitProb2)
         if flags.InDet.Tracking.extension == "":
             kwargs.setdefault("SplitClusterMap_old", "")
         elif flags.InDet.Tracking.extension == "Disappearing":
-            kwargs.setdefault("SplitClusterMap_old", 'SplitClusterAmbiguityMap')
-        kwargs.setdefault("SplitClusterMap_new", 'SplitClusterAmbiguityMap'+flags.InDet.Tracking.extension)
+            kwargs.setdefault("SplitClusterMap_old", "SplitClusterAmbiguityMap")
+        kwargs.setdefault("SplitClusterMap_new", f"SplitClusterAmbiguityMap{flags.InDet.Tracking.extension}")
 
-    kwargs.setdefault("ScoringTool", InDetAmbiScoringTool)
-    kwargs.setdefault("SplitProbTool", NnPixelClusterSplitProbTool if flags.InDet.doPixelClusterSplitting else None,)
-    kwargs.setdefault("AssociationTool", InDetPRDtoTrackMapToolGangedPixels)
-    kwargs.setdefault("AssociationToolNotGanged", PRDtoTrackMapTool)
-    kwargs.setdefault("AssociationMapName", 'PRDToTrackMap'+flags.InDet.Tracking.extension)
     kwargs.setdefault("InputClusterSplitProbabilityName", ClusterSplitProbContainer)
-    kwargs.setdefault("OutputClusterSplitProbabilityName", 'SplitProb'+flags.InDet.Tracking.extension)
+    kwargs.setdefault("OutputClusterSplitProbabilityName", f"SplitProb{flags.InDet.Tracking.extension}")
 
-    # DenseEnvironmentsAmbiguityScoreProcessorTool
     ScoreProcessorTool = CompFactory.Trk.DenseEnvironmentsAmbiguityScoreProcessorTool
-    InDetAmbiguityScoreProcessor = ScoreProcessorTool(name=name+flags.InDet.Tracking.extension, **kwargs)
-
-    acc.setPrivateTools(InDetAmbiguityScoreProcessor)
+    acc.setPrivateTools(ScoreProcessorTool(f"{name}{flags.InDet.Tracking.extension}", **kwargs))
     return acc
 
-def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProcessor", ClusterSplitProbContainer='', **kwargs) :
+
+def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProcessor", ClusterSplitProbContainer="", **kwargs):
     acc = ComponentAccumulator()
 
     useBremMode = flags.InDet.Tracking.extension == "" or flags.InDet.Tracking.extension == "DBM"
-    
-    #
-    # --- set up different Scoring Tool for collisions and cosmics
-    #
-    if flags.Beam.Type == 'cosmics' and flags.InDet.Tracking.extension != "DBM":
+
+    # set up different Scoring Tool for collisions and cosmics
+    if flags.Beam.Type == "cosmics" and flags.InDet.Tracking.extension != "DBM":
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetCosmicsScoringToolCfg(flags))
-    elif(flags.InDet.Tracking.extension == "R3LargeD0" and flags.InDet.nnCutLargeD0Threshold > 0):
+    elif flags.InDet.Tracking.extension == "R3LargeD0" and flags.InDet.nnCutLargeD0Threshold > 0:
         # Set up NN config
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetNNScoringToolSiCfg(flags))
     else:
         InDetAmbiScoringTool = acc.popToolsAndMerge(TC.InDetAmbiScoringToolSiCfg(flags))
+    kwargs.setdefault("ScoringTool", InDetAmbiScoringTool)
 
-    use_low_pt_fitter =  True if flags.InDet.Tracking.extension == "LowPt" or flags.InDet.Tracking.extension == "VeryLowPt" or (flags.InDet.Tracking.extension == "Pixel" and flags.InDet.doMinBias) else False
-    
     fitter_args = {}
     fitter_args.setdefault("nameSuffix", 'Ambi'+flags.InDet.Tracking.extension)
     fitter_args.setdefault("SplitClusterMapExtension", flags.InDet.Tracking.extension)
@@ -517,14 +504,15 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProc
         fitter_args.setdefault("BoundaryCheckTool", InDetBoundaryCheckTool)
 
     fitter_list=[]
-    if not use_low_pt_fitter:
-        InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, name='InDetTrackFitter'+'Ambi'+flags.InDet.Tracking.extension, **fitter_args))
-        fitter_list.append(InDetTrackFitterAmbi)
-    else:
+    if flags.InDet.Tracking.extension == "LowPt" or flags.InDet.Tracking.extension == "VeryLowPt" or (flags.InDet.Tracking.extension == "Pixel" and flags.InDet.doMinBias):
         InDetTrackFitterLowPt = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, name='InDetTrackFitterLowPt'+flags.InDet.Tracking.extension, **fitter_args))
         fitter_list.append(InDetTrackFitterLowPt)
+    else:
+        InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, name='InDetTrackFitter'+'Ambi'+flags.InDet.Tracking.extension, **fitter_args))
+        fitter_list.append(InDetTrackFitterAmbi)
 
-    if flags.InDet.doRefitInvalidCov: 
+
+    if flags.InDet.doRefitInvalidCov:
         if len(flags.InDet.Tracking.extension) > 0 :
             fitter_args = {}
             fitter_args.setdefault("SplitClusterMapExtension", flags.InDet.Tracking.extension)
@@ -553,7 +541,6 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProc
     kwargs.setdefault("AssociationTool", InDetPRDtoTrackMapToolGangedPixels)
     kwargs.setdefault("AssociationMapName", 'PRDToTrackMap'+flags.InDet.Tracking.extension)
     kwargs.setdefault("TrackSummaryTool", ambi_track_summary_tool)
-    kwargs.setdefault("ScoringTool", InDetAmbiScoringTool)
     kwargs.setdefault("SelectionTool", InDetAmbiTrackSelectionTool)
     kwargs.setdefault("InputClusterSplitProbabilityName", 'SplitProb'+flags.InDet.Tracking.extension)
     kwargs.setdefault("OutputClusterSplitProbabilityName", 'InDetAmbiguityProcessorSplitProb'+flags.InDet.Tracking.extension)
@@ -573,7 +560,7 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProc
 def SimpleAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProcessor", ClusterSplitProbContainer='', **kwargs) :
     acc = ComponentAccumulator()
     useBremMode = flags.InDet.Tracking.extension == "" or flags.InDet.Tracking.extension == "DBM"
-    
+
     #
     # --- set up different Scoring Tool for collisions and cosmics
     #
@@ -664,7 +651,7 @@ def TrkAmbiguitySolverCfg(flags, name="InDetAmbiguitySolver", ResolvedTrackColle
     else:
         InDetAmbiguityProcessor = acc.popToolsAndMerge(SimpleAmbiguityProcessorToolCfg( flags,
                                                                                         ClusterSplitProbContainer=ClusterSplitProbContainer))
-    
+
     #
     # --- configure Ambiguity solver
     #
@@ -705,10 +692,10 @@ def TrackingSiPatternCfg(flags, InputCollections = None, ResolvedTrackCollection
     # ----------- SiSPSeededTrackFinder
     #
     # ------------------------------------------------------------
-    
+
     if flags.InDet.doSiSPSeededTrackFinder:
         acc.merge(SiSPSeededTrackFinderCfg( flags,
-                                            InputCollections = InputCollections, 
+                                            InputCollections = InputCollections,
                                             SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey))
     # ------------------------------------------------------------
     #
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py
index 0db548bf4aac..b07e38f35ac1 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py
@@ -324,6 +324,7 @@ class  ConfiguredNewTrackingSiPattern:
          if InDetFlags.doStoreTrackSeeds():
               from SeedToTrackConversionTool.SeedToTrackConversionToolConf import InDet__SeedToTrackConversionTool
               InDet_SeedToTrackConversion = InDet__SeedToTrackConversionTool(name = "InDet_SeedToTrackConversion",
+                                                                             Extrapolator = TrackingCommon.getInDetExtrapolator(),
                                                                              OutputName = InDetKeys.SiSPSeedSegments()+NewTrackingCuts.extension())
               InDetSiTrackMaker.SeedToTrackConversion = InDet_SeedToTrackConversion
               InDetSiTrackMaker.SeedSegmentsWrite = True
diff --git a/Reconstruction/RecJobTransforms/share/RecRenamedComponents b/Reconstruction/RecJobTransforms/share/RecRenamedComponents
index 8bd999dbfa09..80ab71f7216b 100644
--- a/Reconstruction/RecJobTransforms/share/RecRenamedComponents
+++ b/Reconstruction/RecJobTransforms/share/RecRenamedComponents
@@ -31,7 +31,12 @@ TileRChMaker.TileRawChannelBuilderOptATLAS.TileRawChannelOF1Corrector.TileCondTo
 TileRChMaker.TileRawChannelBuilderOptATLAS.TileRawChannelOF1Corrector.TileCondToolOnlineTiming = TileRChMaker.TileRawChannelBuilderOptATLAS.TileRawChannelOF1Corrector.TileCondToolTiming
 TileRawChannelCorrectionAlg.TileRawChannelOF1Corrector.TileCondToolOfcCoolOF1 = TileRawChannelCorrectionAlg.TileRawChannelOF1Corrector.TileCondToolOfcCool
 TileRawChannelCorrectionAlg.TileRawChannelOF1Corrector.TileCondToolOnlineTiming = TileRawChannelCorrectionAlg.TileRawChannelOF1Corrector.TileCondToolTiming
-# ID
+
+# ID/Tracking
+AtlasTrackingGeometryCondAlg.AtlasGeometryBuilder = AtlasTrackingGeometryCondAlg.AtlasGeometryBuilderCond
+AtlasTrackingGeometryCondAlg.AtlasGeometryBuilder.CaloTrackingGeometryBuilderCond = AtlasTrackingGeometryCondAlg.AtlasGeometryBuilderCond.CaloTrackingGeometryBuilderCondCond
+Trk::GeometryBuilderCond/AtlasGeometryBuilderCond = Trk::GeometryBuilderCond/AtlasGeometryBuilder
+
 InDetSCTRawDataProvider = SCTRawDataProvider
 InDetPixelRawDataProvider = PixelRawDataProvider
 InDetPixelRawDataProvider.RegSelTool_Pixel = PixelRawDataProvider.RegSelTool_Pixel
diff --git a/Reconstruction/RecJobTransforms/share/new_jo_raw_reco_aod_digest.ref b/Reconstruction/RecJobTransforms/share/new_jo_raw_reco_aod_digest.ref
index 1b2eb0292939..2967101ea32f 100644
--- a/Reconstruction/RecJobTransforms/share/new_jo_raw_reco_aod_digest.ref
+++ b/Reconstruction/RecJobTransforms/share/new_jo_raw_reco_aod_digest.ref
@@ -1,6 +1,6 @@
          run       event       nTopo   nIdTracks  nTauTracks       nTaus      nMuons       nElec   nTrueElec   nFakeElec       nPhot   nTruePhot   nFakePhot
       327265   186524665         430         399           0           0           0           1           0           1          12           0          12
-      327265   186525031         451         416           0           0           0           2           0           2           6           0           6
-      327265   186542447         338         282           0           0           0           2           0           2           8           0           8
-      327265   186543405         425         306           0           0           0           1           0           1           9           0           9
-      327265   186548387         536         498           0           0           0           3           0           3          22           0          22
+      327265   186525031         451         418           0           0           0           2           0           2           6           0           6
+      327265   186542447         338         286           0           0           0           2           0           2           8           0           8
+      327265   186543405         425         307           0           0           0           1           0           1           9           0           9
+      327265   186548387         536         501           0           0           0           3           0           3          22           0          22
-- 
GitLab