From 3796b1390ce82cbc2508fa6ebdc43b1095c89c14 Mon Sep 17 00:00:00 2001 From: tstreble Date: Mon, 17 Jan 2022 19:34:25 +0100 Subject: [PATCH 1/6] Updated ClusterSplitProbabilityName arg passing for PixelClusterOnTrackTool --- .../python/TrackingCommonConfig.py | 131 ++++++++---------- .../python/TrackingSiPatternConfig.py | 12 +- 2 files changed, 62 insertions(+), 81 deletions(-) diff --git a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py index 8c4ec46f0e9..3811d397905 100644 --- a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py @@ -167,13 +167,17 @@ def InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name="InDetPixelClusterOnT return acc -def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", **kwargs): +def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", isAmbi=False, **kwargs): acc = ComponentAccumulator() if "LorentzAngleTool" not in kwargs: from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleCfg kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))) + if isAmbi: + name = name + "Ambi" + flags.InDet.Tracking.ActivePass.extension + kwargs.setdefault("ClusterSplitProbabilityName","InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension) + if flags.InDet.Tracking.doDigitalROTCreation: PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs)) else: @@ -202,9 +206,9 @@ def InDetBroadSCT_ClusterOnTrackToolCfg(flags, name='InDetBroadSCT_ClusterOnTrac kwargs.setdefault("ErrorStrategy", 0) return InDetSCT_ClusterOnTrackToolCfg(flags, name=name, **kwargs) -def InDetBroadPixelClusterOnTrackToolCfg(flags, name='InDetBroadPixelClusterOnTrackTool', **kwargs): +def InDetBroadPixelClusterOnTrackToolCfg(flags, name='InDetBroadPixelClusterOnTrackTool', isAmbi=False, **kwargs): kwargs.setdefault("ErrorStrategy", 0) - return InDetPixelClusterOnTrackToolCfg(flags, name=name, **kwargs) + return InDetPixelClusterOnTrackToolCfg(flags, name, isAmbi, **kwargs) def RIO_OnTrackErrorScalingCondAlgCfg(flags, **kwargs): acc = ComponentAccumulator() @@ -264,28 +268,22 @@ def InDetBroadTRT_DriftCircleOnTrackToolCfg(name='InDetBroadTRT_DriftCircleOnTra acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackNoDriftTimeTool(the_name, **kwargs)) return acc -def InDetRotCreatorCfg(flags, name='InDetRotCreator', **kwargs): +def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkTrackingCommonConfig import ITkRotCreatorCfg return ITkRotCreatorCfg(flags, name, **kwargs) acc = ComponentAccumulator() - strip_args=['ClusterSplitProbabilityName','nameSuffix'] - pix_cluster_on_track_args = copyArgs(kwargs,strip_args) - the_name = makeName(name, kwargs) - - for an_arg in strip_args: - kwargs.pop(an_arg, None) use_broad_cluster_pix = flags.InDet.Tracking.useBroadPixClusterErrors and not flags.InDet.Tracking.doDBMstandalone use_broad_cluster_sct = flags.InDet.Tracking.useBroadSCTClusterErrors and not flags.InDet.Tracking.doDBMstandalone if 'ToolPixelCluster' not in kwargs : if use_broad_cluster_pix : - ToolPixelCluster= acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + ToolPixelCluster= acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) else: - ToolPixelCluster= acc.popToolsAndMerge(InDetPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + ToolPixelCluster= acc.popToolsAndMerge(InDetPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault("ToolPixelCluster", ToolPixelCluster) if 'ToolSCT_Cluster' not in kwargs : @@ -299,7 +297,11 @@ def InDetRotCreatorCfg(flags, name='InDetRotCreator', **kwargs): kwargs.setdefault("ToolTRT_DriftCircle", acc.popToolsAndMerge(InDetTRT_DriftCircleOnTrackToolCfg(flags))) kwargs.setdefault('Mode', 'indet') - acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name=the_name, **kwargs)) + + if isAmbi: + name = name + 'Ambi' + flags.InDet.Tracking.ActivePass.extension + + acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name, **kwargs)) return acc def InDetTRT_DriftCircleOnTrackUniversalToolCfg(name='InDetTRT_RefitRotCreator', **kwargs): @@ -529,37 +531,31 @@ def InDetMultipleScatteringUpdatorCfg(name = "InDetMultipleScatteringUpdator", * acc.setPrivateTools(MultipleScatteringUpdator) return acc -def InDetMeasRecalibSTCfg(flags, name='InDetMeasRecalibST', **kwargs) : +def InDetMeasRecalibSTCfg(flags, name='InDetMeasRecalibST', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - if 'BroadPixelClusterOnTrackTool' not in kwargs : - InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('BroadPixelClusterOnTrackTool', InDetBroadPixelClusterOnTrackTool) if 'BroadSCT_ClusterOnTrackTool' not in kwargs : InDetBroadSCT_ClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadSCT_ClusterOnTrackToolCfg(flags)) kwargs.setdefault('BroadSCT_ClusterOnTrackTool', InDetBroadSCT_ClusterOnTrackTool) if 'CommonRotCreator' not in kwargs : - InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags)) kwargs.setdefault('CommonRotCreator', InDetRefitRotCreator) MeasRecalibSteeringTool = CompFactory.Trk.MeasRecalibSteeringTool(name, **kwargs) acc.setPrivateTools(MeasRecalibSteeringTool) return acc -def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase',**kwargs) : +def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - nameSuffix=kwargs.pop('nameSuffix','') - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName']) - if len(pix_cluster_on_track_args)>0 and len(nameSuffix)>0 : - pix_cluster_on_track_args['nameSuffix']=nameSuffix from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg kwargs.setdefault("ExtrapolatorHandle", acc.getPrimaryAndMerge(InDetExtrapolatorCfg(flags))) if 'RIO_OnTrackCreatorHandle' not in kwargs : - InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags)) kwargs.setdefault("RIO_OnTrackCreatorHandle", InDetRefitRotCreator) InDetUpdator = acc.popToolsAndMerge(InDetUpdatorCfg(flags)) @@ -570,10 +566,10 @@ def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase',**kwa kwargs.setdefault('BrempointAnalyserHandle', None) kwargs.setdefault('AlignableSurfaceProviderHandle',None) - if len(pix_cluster_on_track_args)>0 : + if isAmbi: if 'RecalibratorHandle' not in kwargs : - the_tool_name = 'InDetMeasRecalibST' - InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags, name=the_tool_name+nameSuffix, **pix_cluster_on_track_args)) + the_tool_name = 'InDetMeasRecalibSTAmbi'+flags.InDet.Tracking.ActivePass.extension + InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags, name=the_tool_name, isAmbi=isAmbi)) kwargs.setdefault('RecalibratorHandle', InDetMeasRecalibST) else : InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags)) @@ -625,12 +621,11 @@ def KalmanInternalDAFRef(name='KalmanInternalDAFRef',**kwargs) : kwargs.setdefault('BackwardSmoother', InDetBKS()) return KalmanInternalDAF(name=name,**kwargs) -def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', **kwargs) : +def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', isAmbi=False, **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('ToolPixelCluster', InDetBroadPixelClusterOnTrackTool) if 'ToolSCT_Cluster' not in kwargs : @@ -642,11 +637,14 @@ def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', **kwargs) : InDetBroadTRT_DriftCircleOnTrackTool = acc.popToolsAndMerge(InDetBroadTRT_DriftCircleOnTrackToolCfg()) kwargs.setdefault('ToolTRT_DriftCircle', InDetBroadTRT_DriftCircleOnTrackTool) + if isAmbi: + name = name + 'Ambi' + flags.InDet.Tracking.ActivePass.extension + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, name = name, **kwargs)) acc.setPrivateTools(InDetRotCreator) return acc -def KalmanFitterCfg(flags, name='KalmanFitter',**kwargs) : +def KalmanFitterCfg(flags, name='KalmanFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKF()) @@ -660,11 +658,11 @@ def KalmanFitterCfg(flags, name='KalmanFitter',**kwargs) : kwargs.setdefault('InternalDAFHandle', KalmanInternalDAF()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter',**kwargs) : +def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKF()) @@ -672,52 +670,48 @@ def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter',**kwargs) : kwargs.setdefault('BrempointAnalyserHandle', InDetDNASeparator()) kwargs.setdefault('InternalDAFHandle', KalmanInternalDAF()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def ReferenceKalmanFitterCfg(flags, name='ReferenceKalmanFitter',**kwargs) : +def ReferenceKalmanFitterCfg(flags, name='ReferenceKalmanFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKFRef()) kwargs.setdefault('InternalDAFHandle', KalmanInternalDAFRef()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def DistributedKalmanFilterCfg(flags, name="DistributedKalmanFilter", **kwargs) : +def DistributedKalmanFilterCfg(flags, name="DistributedKalmanFilter", isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - if 'ExtrapolatorTool' not in kwargs : from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg kwargs.setdefault('ExtrapolatorTool', acc.getPrimaryAndMerge(InDetExtrapolatorCfg(flags))) if 'ROTcreator' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('ROTcreator', InDetRotCreator) DistributedKalmanFilter = CompFactory.Trk.DistributedKalmanFilter(name = name, **kwargs) acc.setPrivateTools(DistributedKalmanFilter) return acc -def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', **kwargs) : +def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - # PHF cut during fit iterations to save CPU time - kwargs.setdefault('MinPHFCut', flags.InDet.Tracking.ActivePass.minTRTPrecFrac) - if 'RotCreatorTool' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('RotCreatorTool', InDetRotCreator) - if 'BroadRotCreatorTool' not in kwargs: - InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) + # PHF cut during fit iterations to save CPU time + kwargs.setdefault('MinPHFCut', flags.InDet.Tracking.ActivePass.minTRTPrecFrac) + if flags.InDet.Tracking.doDBMstandalone: kwargs.setdefault('StraightLine', True) kwargs.setdefault('OutlierCut', 5) @@ -745,21 +739,11 @@ def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', **kwargs) : acc.setPrivateTools(InDetGlobalChi2FitterBase) return acc -def GaussianSumFitterCfg(flags, name="GaussianSumFitter", **kwargs): +def GaussianSumFitterCfg(flags, name="GaussianSumFitter", isAmbi=False, **kwargs): acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs( - kwargs, - [ - "ClusterSplitProbabilityName", - "nameSuffix", - ], - ) - if "ToolForROTCreation" not in kwargs: - InDetRotCreator = acc.popToolsAndMerge( - InDetRotCreatorCfg(flags, **pix_cluster_on_track_args) - ) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault("ToolForROTCreation", InDetRotCreator) kwargs.setdefault("MakePerigee", True) @@ -775,7 +759,7 @@ def GaussianSumFitterCfg(flags, name="GaussianSumFitter", **kwargs): acc.setPrivateTools(GaussianSumFitter) return acc -def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs) : +def InDetTrackFitterCfg(flags, name='InDetTrackFitter', isAmbi=False, **kwargs) : return { 'KalmanFitter' : KalmanFitterCfg, 'KalmanDNAFitter' : KalmanDNAFitterCfg, @@ -783,7 +767,7 @@ def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs) : 'DistributedKalmanFilter' : DistributedKalmanFilterCfg, 'GlobalChi2Fitter' : InDetGlobalChi2FitterCfg, 'GaussianSumFilter' : GaussianSumFitterCfg - }[flags.InDet.Tracking.trackFitterType](flags, name=name, **kwargs) + }[flags.InDet.Tracking.trackFitterType](flags, name, isAmbi, **kwargs) def InDetGlobalChi2FitterBaseCfg(flags, name='GlobalChi2FitterBase', **kwargs): @@ -842,10 +826,9 @@ def InDetGlobalChi2FitterTRTCfg(flags, name='InDetGlobalChi2FitterTRT', **kwargs ''' Global Chi2 Fitter for TRT segments with different settings ''' - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) if 'RotCreatorTool' not in kwargs : - InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRefitRotCreator = acc.popToolsAndMerge(InDetRefitRotCreatorCfg(flags)) kwargs.setdefault("RotCreatorTool", InDetRefitRotCreator) kwargs.setdefault("MaterialUpdateTool", '') @@ -879,18 +862,15 @@ def InDetTrackFitterTRTCfg(flags, name='InDetTrackFitterTRT', **kwargs) : return acc -def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', **kwargs) : +def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - # @TODO TrackingGeometrySvc was not set but is set now - # RotCreatorTool and BroadRotCreatorTool not set - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) if 'RotCreatorTool' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi)) kwargs.setdefault('RotCreatorTool', InDetRotCreator) if 'BroadRotCreatorTool' not in kwargs: - InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, **pix_cluster_on_track_args)) + InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) kwargs.setdefault('OutlierCut', 5.0) @@ -902,14 +882,14 @@ def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', **kw acc.setPrivateTools(InDetGlobalChi2FitterBase) return acc -def InDetTrackFitterLowPt(flags, name='InDetTrackFitter', **kwargs) : +def InDetTrackFitterLowPt(flags, name='InDetTrackFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() if flags.InDet.Tracking.trackFitterType != 'GlobalChi2Fitter' : InDetTrackFitter = acc.popToolsAndMerge(InDetTrackFitterCfg(flags, name, **kwargs)) acc.setPrivateTools(InDetTrackFitter) else : - InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(InDetGlobalChi2FitterLowPtCfg(flags, name, **kwargs)) + InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(InDetGlobalChi2FitterLowPtCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(InDetGlobalChi2FitterLowPt) return acc @@ -1127,9 +1107,7 @@ def InDetTRT_ExtensionToolCfg(flags, **kwargs): def InDetRotCreatorDigitalCfg(flags, name='InDetRotCreatorDigital', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - - ToolPixelCluster = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, **pix_cluster_on_track_args)) + ToolPixelCluster = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags)) kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) acc.setPrivateTools(acc.popToolsAndMerge(InDetRotCreatorCfg(flags, name=name, **kwargs))) @@ -1320,8 +1298,7 @@ def InDetPixelClusterOnTrackToolDBMCfg(flags, name='InDetPixelClusterOnTrackTool def InDetRotCreatorDBMCfg(flags, name='InDetRotCreatorDBM', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - ToolPixelCluster = InDetPixelClusterOnTrackToolDBMCfg(flags, pix_cluster_on_track_args) + ToolPixelCluster = InDetPixelClusterOnTrackToolDBMCfg(flags) kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) acc.setPrivateTools(acc.popToolsAndMerge(InDetRotCreatorCfg(flags, name=name, **kwargs))) return acc diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py index 1e0ccf5743c..a8b1f097f49 100644 --- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py @@ -421,8 +421,6 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces kwargs.setdefault("ScoringTool", InDetAmbiScoringTool) fitter_args = {} - fitter_args.setdefault("nameSuffix", 'Ambi'+flags.InDet.Tracking.ActivePass.extension) - fitter_args.setdefault("ClusterSplitProbabilityName", 'InDetAmbiguityProcessorSplitProb'+flags.InDet.Tracking.ActivePass.extension) if flags.InDet.Tracking.holeSearchInGX2Fit: fitter_args.setdefault("DoHoleSearch", True) @@ -433,10 +431,16 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces fitter_list=[] if flags.InDet.Tracking.ActivePass.isLowPt: - InDetTrackFitterLowPt = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, name='InDetTrackFitterLowPt'+flags.InDet.Tracking.ActivePass.extension, **fitter_args)) + InDetTrackFitterLowPt = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, + name='InDetTrackFitterLowPt'+flags.InDet.Tracking.ActivePass.extension, + isAmbi=True, + **fitter_args)) fitter_list.append(InDetTrackFitterLowPt) else: - InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, name='InDetTrackFitterAmbi'+flags.InDet.Tracking.ActivePass.extension, **fitter_args)) + InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, + name='InDetTrackFitterAmbi'+flags.InDet.Tracking.ActivePass.extension, + isAmbi=True, + **fitter_args)) fitter_list.append(InDetTrackFitterAmbi) if flags.InDet.Tracking.doRefitInvalidCov: -- GitLab From 3927e9c8a3ae4f1202f5b14573e302be86c38681 Mon Sep 17 00:00:00 2001 From: tstreble Date: Mon, 17 Jan 2022 23:32:34 +0100 Subject: [PATCH 2/6] Updated ClusterSplitProbabilityName arg passing for TrackSummaryHelperTool + general cleaning --- .../InDetConfig/python/InDetRecToolConfig.py | 55 ++---- .../python/TRTSegmentFindingConfig.py | 6 +- .../InDetConfig/python/TRTStandaloneConfig.py | 6 +- .../python/TrackingCommonConfig.py | 168 ++++++------------ .../python/TrackingSiPatternConfig.py | 18 +- 5 files changed, 78 insertions(+), 175 deletions(-) diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py index 2d464847194..845383c14d5 100644 --- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py @@ -13,12 +13,10 @@ def InDetPrdAssociationToolCfg(flags, name='InDetPrdAssociationTool', **kwargs) ''' Provide an instance for all clients in which the tool is only set in c++ ''' - the_name = makeName( name, kwargs) - kwargs.setdefault("PixelClusterAmbiguitiesMapName", 'PixelClusterAmbiguitiesMap') # InDetKeys.GangedPixelMap kwargs.setdefault("addTRToutliers", True) - InDetPRD_AssociationToolGangedPixels = CompFactory.InDet.InDetPRD_AssociationToolGangedPixels(the_name, **kwargs) + InDetPRD_AssociationToolGangedPixels = CompFactory.InDet.InDetPRD_AssociationToolGangedPixels(name, **kwargs) acc.setPrivateTools(InDetPRD_AssociationToolGangedPixels) return acc @@ -29,13 +27,7 @@ def InDetPrdAssociationTool_setupCfg(flags, name='InDetPrdAssociationTool_setup' kwargs.setdefault("SetupCorrect", True) return InDetPrdAssociationToolCfg(flags, name, **kwargs) -def InDetTrigPrdAssociationToolCfg(flags, name='InDetTrigPrdAssociationTool_setup', **kwargs) : - kwargs.setdefault("PixelClusterAmbiguitiesMapName", "TrigPixelClusterAmbiguitiesMap") - kwargs.setdefault("addTRToutliers", False) - - return InDetPrdAssociationToolCfg(flags, name, **kwargs) - -def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', **kwargs): +def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', isAmbi=False, **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg @@ -43,18 +35,10 @@ def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', **kwargs): result = ComponentAccumulator() - the_name = makeName( name, kwargs) - isHLT=kwargs.pop("isHLT",False) - if 'AssoTool' not in kwargs : - if not isHLT: - InDetPrdAssociationTool_setup = result.popToolsAndMerge(InDetPrdAssociationTool_setupCfg(flags)) - result.addPublicTool(InDetPrdAssociationTool_setup) - kwargs.setdefault("AssoTool", InDetPrdAssociationTool_setup) - else: - InDetTrigPrdAssociationTool = result.popToolsAndMerge(InDetTrigPrdAssociationToolCfg(flags)) - result.addPublicTool(InDetTrigPrdAssociationTool) - kwargs.setdefault("AssoTool", InDetTrigPrdAssociationTool) + InDetPrdAssociationTool_setup = result.popToolsAndMerge(InDetPrdAssociationTool_setupCfg(flags)) + result.addPublicTool(InDetPrdAssociationTool_setup) + kwargs.setdefault("AssoTool", InDetPrdAssociationTool_setup) if "HoleSearch" not in kwargs: acc = InDetTrackHoleSearchToolCfg(flags) @@ -65,6 +49,9 @@ def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', **kwargs): if not flags.Detector.EnableTRT: kwargs.setdefault("TRTStrawSummarySvc", "") + if isAmbi: + kwargs.setdefault("ClusterSplitProbabilityName","InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension) + kwargs.setdefault("PixelToTPIDTool", None) kwargs.setdefault("TestBLayerTool", None) kwargs.setdefault("RunningTIDE_Ambi", flags.InDet.Tracking.doTIDE_Ambi) @@ -73,7 +60,7 @@ def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', **kwargs): kwargs.setdefault("useSCT", flags.Detector.EnableSCT) kwargs.setdefault("useTRT", flags.Detector.EnableTRT) - result.setPrivateTools(CompFactory.InDet.InDetTrackSummaryHelperTool(the_name, **kwargs)) + result.setPrivateTools(CompFactory.InDet.InDetTrackSummaryHelperTool(name, **kwargs)) return result def InDetBoundaryCheckToolCfg(flags, name='InDetBoundarySearchTool', **kwargs): @@ -127,7 +114,6 @@ def InDetTrackHoleSearchToolCfg(flags, name = 'InDetHoleSearchTool', **kwargs): def InDetTestPixelLayerToolCfg(flags, name = "InDetTestPixelLayerTool", **kwargs): - the_name = makeName( name, kwargs) result = ComponentAccumulator() if 'PixelSummaryTool' not in kwargs : from PixelConditionsTools.PixelConditionsSummaryConfig import PixelConditionsSummaryCfg @@ -143,27 +129,6 @@ def InDetTestPixelLayerToolCfg(flags, name = "InDetTestPixelLayerTool", **kwargs kwargs.setdefault("CheckDeadRegions", flags.InDet.checkDeadElementsOnTrack) kwargs.setdefault("CheckDisabledFEs", flags.InDet.checkDeadElementsOnTrack) - tool = CompFactory.InDet.InDetTestPixelLayerTool( name = the_name, **kwargs) + tool = CompFactory.InDet.InDetTestPixelLayerTool(name, **kwargs) result.setPrivateTools( tool ) return result - -def splitDefaultPrefix(name) : - default_prefix='' - for prefix in ['InDet','InDetTrig'] : - if name[0:len(prefix)] == prefix : - name=name[len(prefix):] - default_prefix=prefix - break - return default_prefix,name - -def makeName( name, kwargs) : - default_prefix,name=splitDefaultPrefix(name) - namePrefix=kwargs.pop('namePrefix',default_prefix) - nameSuffix=kwargs.pop('nameSuffix','') - return namePrefix + name + nameSuffix - -def makeNameGetPreAndSuffix( name, kwargs) : - default_prefix,name=splitDefaultPrefix(name) - namePrefix=kwargs.pop('namePrefix',default_prefix) - nameSuffix=kwargs.pop('nameSuffix','') - return namePrefix + name + nameSuffix,namePrefix,nameSuffix diff --git a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py index e283dc0b5f4..882af8d93c6 100644 --- a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py +++ b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py @@ -175,9 +175,9 @@ def TRTSegmentFindingCfg(flags, extension = "", InputCollections = None, BarrelS prefix = 'InDetSegment' suffix = extension if usePrdAssociationTool: - acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, namePrefix = prefix, - nameSuffix = suffix, - TracksName = list(InputCollections))) + acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, + name = prefix + 'TrackPRD_Association' + suffix, + TracksName = list(InputCollections))) # # --- TRT track reconstruction # diff --git a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py index e4fef02838c..a4e91300a6c 100644 --- a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py +++ b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py @@ -163,9 +163,9 @@ def TRTStandaloneCfg( flags, extension = '', InputCollections = None, BarrelSegm if usePrdAssociationTool and extension != "_TRT" : prefix='InDetTRTonly_' prd_to_track_map = prefix+'PRDtoTrackMap'+extension - acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, namePrefix = prefix, - nameSuffix = extension, - TracksName = list(InputCollections))) + acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, + name = prefix + 'TrackPRD_Association' + extension, + TracksName = list(InputCollections))) if not flags.Beam.Type == "cosmics": # diff --git a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py index 3811d397905..ad0ecc1e439 100644 --- a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py @@ -2,23 +2,9 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline -from InDetConfig.InDetRecToolConfig import makeName import AthenaCommon.SystemOfUnits as Units ####################################################################### -def copyArgs(kwargs, copy_list): - dict_copy={} - for elm in copy_list : - if elm in kwargs : - dict_copy[elm]=kwargs[elm] - return dict_copy - -def stripArgs(kwargs, copy_list) : - dict_copy = copyArgs(kwargs,copy_list) - for an_arg in copy_list : - kwargs.pop(an_arg,None) - return dict_copy - def NeuralNetworkToHistoToolCfg(**kwargs): acc = ComponentAccumulator() name = kwargs.pop('name',"NeuralNetworkToHistoTool") @@ -82,7 +68,6 @@ def LWTNNCondAlgCfg(flags, **kwargs): def NnClusterizationFactoryCfg(flags, name="NnClusterizationFactory", **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) if "PixelLorentzAngleTool" not in kwargs: from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleTool @@ -106,13 +91,12 @@ def NnClusterizationFactoryCfg(flags, name="NnClusterizationFactory", **kwargs): kwargs.setdefault("NnCollectionWithTrackReadKey", "PixelClusterNNWithTrack" if flags.GeoModel.Run=="RUN1" else "") kwargs.setdefault("NnCollectionJSONReadKey", "" if flags.GeoModel.Run=="RUN1" else "PixelClusterNNJSON") - acc.setPrivateTools(CompFactory.InDet.NnClusterizationFactory(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.NnClusterizationFactory(name, **kwargs)) return acc def InDetPixelClusterOnTrackToolBaseCfg(flags, name="PixelClusterOnTrackTool", **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) from PixelConditionsAlgorithms.PixelConditionsConfig import PixelDistortionAlgCfg, PixelOfflineCalibCondAlgCfg acc.merge(PixelOfflineCalibCondAlgCfg(flags)) @@ -130,7 +114,7 @@ def InDetPixelClusterOnTrackToolBaseCfg(flags, name="PixelClusterOnTrackTool", * kwargs.setdefault("SplitClusterAmbiguityMap", f"SplitClusterAmbiguityMap{split_cluster_map_extension}") kwargs.setdefault("RunningTIDE_Ambi", flags.InDet.Tracking.doTIDE_Ambi) - acc.setPrivateTools(CompFactory.InDet.PixelClusterOnTrackTool(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.PixelClusterOnTrackTool(name, **kwargs)) return acc @@ -189,7 +173,6 @@ def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", def InDetSCT_ClusterOnTrackToolCfg(flags, name='InDetSCT_ClusterOnTrackTool', **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) if 'LorentzAngleTool' not in kwargs : from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleCfg @@ -199,7 +182,7 @@ def InDetSCT_ClusterOnTrackToolCfg(flags, name='InDetSCT_ClusterOnTrackTool', ** kwargs.setdefault("CorrectionStrategy", 0 ) # do correct position bias kwargs.setdefault("ErrorStrategy", 2 ) # do use phi dependent errors - acc.setPrivateTools(CompFactory.InDet.SCT_ClusterOnTrackTool(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.SCT_ClusterOnTrackTool(name, **kwargs)) return acc def InDetBroadSCT_ClusterOnTrackToolCfg(flags, name='InDetBroadSCT_ClusterOnTrackTool', **kwargs): @@ -210,9 +193,8 @@ def InDetBroadPixelClusterOnTrackToolCfg(flags, name='InDetBroadPixelClusterOnTr kwargs.setdefault("ErrorStrategy", 0) return InDetPixelClusterOnTrackToolCfg(flags, name, isAmbi, **kwargs) -def RIO_OnTrackErrorScalingCondAlgCfg(flags, **kwargs): +def RIO_OnTrackErrorScalingCondAlgCfg(flags, name='RIO_OnTrackErrorScalingCondAlg', **kwargs): acc = ComponentAccumulator() - the_name=kwargs.pop("name", None) if flags.GeoModel.Run == "RUN1": error_scaling_type = ["PixelRIO_OnTrackErrorScalingRun1"] @@ -234,9 +216,7 @@ def RIO_OnTrackErrorScalingCondAlgCfg(flags, **kwargs): kwargs.setdefault("ErrorScalingType", error_scaling_type) kwargs.setdefault("OutKeys", error_scaling_outkey) - if the_name is not None: - kwargs.setdefault("name", the_name) - acc.addCondAlgo(CompFactory.RIO_OnTrackErrorScalingCondAlg(**kwargs)) + acc.addCondAlgo(CompFactory.RIO_OnTrackErrorScalingCondAlg(name, **kwargs)) return acc def LumiCondDataKeyForTRTMuScalingCfg(flags, **kwargs) : @@ -252,20 +232,17 @@ def LumiCondDataKeyForTRTMuScalingCfg(flags, **kwargs) : def InDetTRT_DriftCircleOnTrackToolCfg(flags, name='TRT_DriftCircleOnTrackTool', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - kwargs.pop('isHLT',None) - acc.merge(RIO_OnTrackErrorScalingCondAlgCfg(flags, name = 'RIO_OnTrackErrorScalingCondAlg')) + acc.merge(RIO_OnTrackErrorScalingCondAlgCfg(flags)) kwargs.setdefault("TRTErrorScalingKey", '/Indet/TrkErrorScalingTRT') tmpAcc, LuminosityOutputKey = LumiCondDataKeyForTRTMuScalingCfg(flags) acc.merge(tmpAcc) kwargs.setdefault("LumiDataKey", LuminosityOutputKey) - acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackTool(name = the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackTool(name, **kwargs)) return acc def InDetBroadTRT_DriftCircleOnTrackToolCfg(name='InDetBroadTRT_DriftCircleOnTrackTool', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackNoDriftTimeTool(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackNoDriftTimeTool(name, **kwargs)) return acc def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): @@ -306,7 +283,6 @@ def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): def InDetTRT_DriftCircleOnTrackUniversalToolCfg(name='InDetTRT_RefitRotCreator', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) default_ScaleHitUncertainty = 2.5 if 'RIOonTrackToolDrift' not in kwargs : @@ -316,7 +292,7 @@ def InDetTRT_DriftCircleOnTrackUniversalToolCfg(name='InDetTRT_RefitRotCreator', RIOonTrackToolTube = acc.popToolsAndMerge(InDetBroadTRT_DriftCircleOnTrackToolCfg()) kwargs.setdefault("RIOonTrackToolTube", RIOonTrackToolTube) kwargs.setdefault("ScaleHitUncertainty", default_ScaleHitUncertainty) - acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackUniversalTool(name = the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackUniversalTool(name, **kwargs)) return acc def InDetRefitRotCreatorCfg(flags, name='InDetRefitRotCreator', **kwargs): @@ -333,34 +309,32 @@ def InDetRefitRotCreatorCfg(flags, name='InDetRefitRotCreator', **kwargs): def InDetPRDtoTrackMapToolGangedPixelsCfg(flags, name='PRDtoTrackMapToolGangedPixels', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - kwargs.setdefault("PixelClusterAmbiguitiesMapName", 'PixelClusterAmbiguitiesMap') # InDetKeys.GangedPixelMap() + kwargs.setdefault("PixelClusterAmbiguitiesMapName", 'PixelClusterAmbiguitiesMap') kwargs.setdefault("addTRToutliers", True) - acc.setPrivateTools(CompFactory.InDet.InDetPRDtoTrackMapToolGangedPixels( name=the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.InDetPRDtoTrackMapToolGangedPixels(name, **kwargs)) return acc def InDetTrackPRD_AssociationCfg(flags, name='InDetTrackPRD_Association', **kwargs): acc = ComponentAccumulator() - from InDetConfig.InDetRecToolConfig import makeNameGetPreAndSuffix - the_name,prefix,suffix=makeNameGetPreAndSuffix(name,kwargs) if kwargs.get('TracksName', None) is None : raise Exception('Not TracksName argument provided') - AssociationTool = acc.popToolsAndMerge(InDetPRDtoTrackMapToolGangedPixelsCfg(flags)) - kwargs.setdefault("AssociationTool", AssociationTool \ - if 'AssociationTool' not in kwargs else None ) - kwargs.setdefault("AssociationMapName", prefix+'PRDtoTrackMap'+suffix ) - acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name = the_name, **kwargs)) + if 'AssociationTool' not in kwargs: + kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(InDetPRDtoTrackMapToolGangedPixelsCfg(flags))) + + prefix = name[0:name.find("TrackPRD_Association")] + suffix = flags.InDet.Tracking.ActivePass.extension + kwargs.setdefault("AssociationMapName", prefix + "PRDtoTrackMap" + suffix) + acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name, **kwargs)) return acc def InDetTRTDriftCircleCutForPatternRecoCfg(flags, name='InDetTRTDriftCircleCutForPatternReco', **kwargs): - the_name = makeName( name, kwargs) result = ComponentAccumulator() kwargs.setdefault("MinOffsetDCs", 5) kwargs.setdefault("UseNewParameterization", flags.InDet.Tracking.ActivePass.useNewParameterizationTRT) kwargs.setdefault("UseActiveFractionSvc", flags.Detector.EnableTRT) - result.setPrivateTools(CompFactory.InDet.InDetTrtDriftCircleCutTool(the_name, **kwargs)) + result.setPrivateTools(CompFactory.InDet.InDetTrtDriftCircleCutTool(name, **kwargs)) return result def InDetSummaryHelperNoHoleSearchCfg(flags, name='InDetSummaryHelperNoHoleSearch', **kwargs): @@ -369,29 +343,22 @@ def InDetSummaryHelperNoHoleSearchCfg(flags, name='InDetSummaryHelperNoHoleSearc from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg return InDetTrackSummaryHelperToolCfg(flags, name = name, **kwargs) -def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', **kwargs): +def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', isAmbi=False, **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkTrackingCommonConfig import ITkTrackSummaryToolCfg return ITkTrackSummaryToolCfg(flags, name, **kwargs) acc = ComponentAccumulator() - # makeName will remove the namePrefix in suffix from kwargs, so copyArgs has to be first - hlt_args = copyArgs(kwargs,['isHLT','namePrefix']) - id_helper_args = copyArgs(kwargs,['ClusterSplitProbabilityName','namePrefix','nameSuffix']) if 'ClusterSplitProbabilityName' in kwargs else {} - kwargs.pop('ClusterSplitProbabilityName',None) - kwargs.pop('isHLT',None) - the_name = makeName( name, kwargs) - do_holes=kwargs.get("doHolesInDet",True) - if do_holes : - id_helper_args.update(hlt_args) + do_holes = kwargs.get("doHolesInDet",True) if 'InDetSummaryHelperTool' not in kwargs : if do_holes: - from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg - InDetSummaryHelperTool = acc.popToolsAndMerge(InDetTrackSummaryHelperToolCfg(flags, **id_helper_args)) + from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg + tool_name = "InDetAmbiguityProcessorSplitProbSummaryHelper" + flags.InDet.Tracking.ActivePass.extension if isAmbi else "InDetSummaryHelper" + InDetSummaryHelperTool = acc.popToolsAndMerge(InDetTrackSummaryHelperToolCfg(flags, name=tool_name, isAmbi=isAmbi)) else: - InDetSummaryHelperTool = acc.popToolsAndMerge(InDetSummaryHelperNoHoleSearchCfg(flags, **id_helper_args)) + InDetSummaryHelperTool = acc.popToolsAndMerge(InDetSummaryHelperNoHoleSearchCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", InDetSummaryHelperTool) # @@ -401,7 +368,8 @@ def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', **kwargs): kwargs.setdefault("doHolesInDet", do_holes) kwargs.setdefault("TRT_ElectronPidTool", None) # we don't want to use those tools during pattern kwargs.setdefault("PixelToTPIDTool", None) # we don't want to use those tools during pattern - acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name = the_name, **kwargs), primary=True) + + acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name, **kwargs), primary=True) return acc def PixeldEdxAlg(flags, name = "PixeldEdxAlg", **kwargs): @@ -412,18 +380,13 @@ def PixeldEdxAlg(flags, name = "PixeldEdxAlg", **kwargs): return acc def InDetPixelToTPIDToolCfg(flags, name = "InDetPixelToTPIDTool", **kwargs): - acc = ComponentAccumulator() - - acc.merge(PixeldEdxAlg(flags)) - - the_name = makeName( name, kwargs) - InDetPixelToTPIDTool = CompFactory.InDet.PixelToTPIDTool(name = the_name, **kwargs) + acc = PixeldEdxAlg(flags) + InDetPixelToTPIDTool = CompFactory.InDet.PixelToTPIDTool(name, **kwargs) acc.setPrivateTools(InDetPixelToTPIDTool) return acc def InDetRecTestBLayerToolCfg(flags, name='InDetRecTestBLayerTool', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) if not flags.Detector.EnablePixel: return None @@ -437,7 +400,7 @@ def InDetRecTestBLayerToolCfg(flags, name='InDetRecTestBLayerTool', **kwargs): PixelConditionsSummaryTool = acc.popToolsAndMerge(PixelConditionsSummaryCfg(flags)) kwargs.setdefault( "PixelSummaryTool", PixelConditionsSummaryTool) - InDetTestBLayerTool = CompFactory.InDet.InDetTestBLayerTool(name=the_name, **kwargs) + InDetTestBLayerTool = CompFactory.InDet.InDetTestBLayerTool(name, **kwargs) acc.setPrivateTools(InDetTestBLayerTool) return acc @@ -470,14 +433,7 @@ def InDetSummaryHelperSharedHitsCfg(flags, name='InDetSummaryHelperSharedHits', def InDetTrackSummaryToolSharedHitsCfg(flags, name='InDetTrackSummaryToolSharedHits',**kwargs): acc = ComponentAccumulator() if 'InDetSummaryHelperTool' not in kwargs : - copy_args=['ClusterSplitProbabilityName','namePrefix','nameSuffix'] - do_holes=kwargs.get("doHolesInDet",True) - if do_holes : - copy_args += ['isHLT'] - id_helper_args = copyArgs(kwargs,copy_args) if 'ClusterSplitProbabilityName' in kwargs else {} - kwargs.pop('ClusterSplitProbabilityName',None) - - InDetSummaryHelperSharedHits = acc.popToolsAndMerge(InDetSummaryHelperSharedHitsCfg(flags, **id_helper_args)) + InDetSummaryHelperSharedHits = acc.popToolsAndMerge(InDetSummaryHelperSharedHitsCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", InDetSummaryHelperSharedHits) if 'TRT_ElectronPidTool' not in kwargs: @@ -503,30 +459,28 @@ def InDetUpdatorCfg(flags, name = 'InDetUpdator', **kwargs): from InDetConfig.ITkRecToolConfig import ITkUpdatorCfg return ITkUpdatorCfg(flags, name, **kwargs) - the_name = makeName( name, kwargs ) acc = ComponentAccumulator() tool = None if flags.InDet.Tracking.kalmanUpdator == "fast" : - tool = CompFactory.Trk.KalmanUpdator_xk(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator_xk(name, **kwargs) elif flags.InDet.Tracking.kalmanUpdator == "weight" : - tool = CompFactory.Trk.KalmanWeightUpdator(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanWeightUpdator(name, **kwargs) elif flags.InDet.Tracking.kalmanUpdator == "smatrix" : - tool = CompFactory.Trk.KalmanUpdatorSMatrix(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdatorSMatrix(name, **kwargs) elif flags.InDet.Tracking.kalmanUpdator == "amg" : - tool = CompFactory.Trk.KalmanUpdatorAmg(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdatorAmg(name, **kwargs) else : - tool = CompFactory.Trk.KalmanUpdator(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator(name, **kwargs) acc.setPrivateTools(tool) return acc def InDetMultipleScatteringUpdatorCfg(name = "InDetMultipleScatteringUpdator", **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) kwargs.setdefault( "UseTrkUtils", False) - MultipleScatteringUpdator = CompFactory.Trk.MultipleScatteringUpdator(name = the_name, **kwargs) + MultipleScatteringUpdator = CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs) acc.setPrivateTools(MultipleScatteringUpdator) return acc @@ -568,8 +522,8 @@ def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase', isAm if isAmbi: if 'RecalibratorHandle' not in kwargs : - the_tool_name = 'InDetMeasRecalibSTAmbi'+flags.InDet.Tracking.ActivePass.extension - InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags, name=the_tool_name, isAmbi=isAmbi)) + tool_name = 'InDetMeasRecalibSTAmbi'+flags.InDet.Tracking.ActivePass.extension + InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags, name=tool_name, isAmbi=isAmbi)) kwargs.setdefault('RecalibratorHandle', InDetMeasRecalibST) else : InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags)) @@ -866,11 +820,11 @@ def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', isAm acc = ComponentAccumulator() if 'RotCreatorTool' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('RotCreatorTool', InDetRotCreator) if 'BroadRotCreatorTool' not in kwargs: - InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi)) + InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) kwargs.setdefault('OutlierCut', 5.0) @@ -941,9 +895,8 @@ def InDetKOL(name = 'InDetKOL', **kwargs): #TRTSegmentFinder ############################################################################################# def InDetPatternPropagatorCfg(name='InDetPatternPropagator', **kwargs): - the_name = makeName( name, kwargs) result = ComponentAccumulator() - tool = CompFactory.Trk.RungeKuttaPropagator(name = the_name, **kwargs) + tool = CompFactory.Trk.RungeKuttaPropagator(name, **kwargs) result.addPublicTool( tool, primary=True ) return result @@ -953,7 +906,6 @@ def InDetTRT_DriftCircleOnTrackUniversalToolCosmicsCfg(name='TRT_DriftCircleOnTr def InDetTRT_ExtensionToolCosmicsCfg(flags, name='InDetTRT_ExtensionToolCosmics', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) if 'Propagator' not in kwargs : from TrkConfig.AtlasExtrapolatorToolsConfig import InDetPropagatorCfg @@ -975,13 +927,12 @@ def InDetTRT_ExtensionToolCosmicsCfg(flags, name='InDetTRT_ExtensionToolCosmics' kwargs.setdefault("TRT_ClustersContainer", 'TRT_DriftCircles') # InDetKeys.TRT_DriftCircles() kwargs.setdefault("SearchNeighbour", False) # needs debugging!!! kwargs.setdefault("RoadWidth", 10.0) - acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionToolCosmics(name = the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionToolCosmics(name, **kwargs)) return acc def InDetPatternUpdatorCfg(name='InDetPatternUpdator', **kwargs): - the_name = makeName(name, kwargs) result = ComponentAccumulator() - tool = CompFactory.Trk.KalmanUpdator_xk(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator_xk(name, **kwargs) result.addPublicTool( tool, primary=True ) return result @@ -989,8 +940,6 @@ def InDetTRT_TrackExtensionTool_xkCfg(flags, name='InDetTRT_ExtensionTool', **kw from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg acc = MagneticFieldSvcCfg(flags) - the_name = makeName( name, kwargs) - if 'PropagatorTool' not in kwargs : InDetPatternPropagator = acc.getPrimaryAndMerge(InDetPatternPropagatorCfg()) kwargs.setdefault("PropagatorTool", InDetPatternPropagator) @@ -1025,18 +974,16 @@ def InDetTRT_TrackExtensionTool_xkCfg(flags, name='InDetTRT_ExtensionTool', **kw acc.merge(TRT_DetElementsRoadCondAlgCfg(flags)) from TRT_ConditionsAlgs.TRT_ConditionsAlgsConfig import TRTActiveCondAlgCfg acc.merge(TRTActiveCondAlgCfg(flags)) - acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionTool_xk(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionTool_xk(name, **kwargs)) return acc def InDetWeightCalculatorCfg(name='InDetWeightCalculator', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - acc.setPrivateTools(CompFactory.Trk.DAF_SimpleWeightCalculator(name = the_name, **kwargs)) + acc.setPrivateTools(CompFactory.Trk.DAF_SimpleWeightCalculator(name, **kwargs)) return acc def InDetCompetingTRT_DC_ToolCfg(flags, name='InDetCompetingTRT_DC_Tool', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) if 'Extrapolator' not in kwargs : from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg @@ -1049,24 +996,21 @@ def InDetCompetingTRT_DC_ToolCfg(flags, name='InDetCompetingTRT_DC_Tool', **kwar if 'ToolForTRT_DriftCircleOnTrackCreation' not in kwargs : kwargs.setdefault("ToolForTRT_DriftCircleOnTrackCreation", acc.popToolsAndMerge(InDetTRT_DriftCircleOnTrackToolCfg(flags))) - acc.setPrivateTools(CompFactory.InDet.CompetingTRT_DriftCirclesOnTrackTool( the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.CompetingTRT_DriftCirclesOnTrackTool(name, **kwargs)) return acc def InDetTRT_RoadMakerCfg(flags, name='InDetTRT_RoadMaker', **kwargs): from MagFieldServices.MagFieldServicesConfig import MagneticFieldSvcCfg acc = MagneticFieldSvcCfg(flags) - - the_name = makeName( name, kwargs) InDetPatternPropagator = acc.getPrimaryAndMerge(InDetPatternPropagatorCfg()) kwargs.setdefault("RoadWidth", 20.) kwargs.setdefault("PropagatorTool", InDetPatternPropagator) - acc.setPrivateTools(CompFactory.InDet.TRT_DetElementsRoadMaker_xk(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_DetElementsRoadMaker_xk(name, **kwargs)) return acc def InDetTRT_TrackExtensionTool_DAFCfg(flags, name='TRT_TrackExtensionTool_DAF',**kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) if 'CompetingDriftCircleTool' not in kwargs : InDetCompetingTRT_DC_Tool = acc.popToolsAndMerge(InDetCompetingTRT_DC_ToolCfg(flags)) @@ -1082,13 +1026,12 @@ def InDetTRT_TrackExtensionTool_DAFCfg(flags, name='TRT_TrackExtensionTool_DAF', kwargs.setdefault("TRT_DriftCircleContainer", 'TRT_DriftCircles') # InDetKeys.TRT_DriftCircles() - acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionTool_DAF(the_name,**kwargs)) + acc.setPrivateTools(CompFactory.InDet.TRT_TrackExtensionTool_DAF(name,**kwargs)) return acc -def TRT_DetElementsRoadCondAlgCfg(flags, **kwargs): +def TRT_DetElementsRoadCondAlgCfg(flags, name="InDet__TRT_DetElementsRoadCondAlg_xk", **kwargs): acc = ComponentAccumulator() - the_name=kwargs.pop("name","InDet__TRT_DetElementsRoadCondAlg_xk") - acc.addCondAlgo(CompFactory.InDet.TRT_DetElementsRoadCondAlg_xk(the_name, **kwargs)) + acc.addCondAlgo(CompFactory.InDet.TRT_DetElementsRoadCondAlg_xk(name, **kwargs)) return acc def InDetTRT_ExtensionToolCfg(flags, **kwargs): @@ -1159,7 +1102,6 @@ def InDetAmbiScoringToolBaseCfg(flags, name='InDetAmbiScoringTool', **kwargs) : def InDetCosmicsScoringToolBaseCfg(flags, name='InDetCosmicsScoringTool', **kwargs) : acc = ComponentAccumulator() - the_name=makeName(name, kwargs) InDetTrackSummaryTool = acc.getPrimaryAndMerge(InDetTrackSummaryToolCfg(flags)) @@ -1167,7 +1109,7 @@ def InDetCosmicsScoringToolBaseCfg(flags, name='InDetCosmicsScoringTool', **kwar kwargs.setdefault("minTRTHits", 0 ) kwargs.setdefault("SummaryTool", InDetTrackSummaryTool ) - acc.setPrivateTools(CompFactory.InDet.InDetCosmicScoringTool(name = the_name, **kwargs )) + acc.setPrivateTools(CompFactory.InDet.InDetCosmicScoringTool(name, **kwargs )) return acc def InDetTRT_ExtensionToolPhaseCfg(flags, name='InDetTRT_ExtensionToolPhase', **kwargs) : @@ -1305,13 +1247,11 @@ def InDetRotCreatorDBMCfg(flags, name='InDetRotCreatorDBM', **kwargs) : def PRDtoTrackMapToolCfg(name='PRDtoTrackMapTool',**kwargs) : acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - acc.setPrivateTools(CompFactory.Trk.PRDtoTrackMapTool( name=the_name, **kwargs)) + acc.setPrivateTools(CompFactory.Trk.PRDtoTrackMapTool( name, **kwargs)) return acc def InDetNNScoringToolBaseCfg(flags, name='InDetNNScoringTool', **kwargs) : acc = ComponentAccumulator() - the_name=makeName(name,kwargs) have_calo_rois = flags.InDet.Tracking.doBremRecovery and flags.InDet.Tracking.doCaloSeededBrem and flags.Detector.EnableCalo if have_calo_rois : @@ -1338,7 +1278,7 @@ def InDetNNScoringToolBaseCfg(flags, name='InDetNNScoringTool', **kwargs) : kwargs.setdefault("useSCT", flags.InDet.Tracking.ActivePass.useSCT ) kwargs.setdefault("doEmCaloSeed", have_calo_rois ) - acc.setPrivateTools(CompFactory.InDet.InDetNNScoringTool(name = the_name, **kwargs )) + acc.setPrivateTools(CompFactory.InDet.InDetNNScoringTool(name, **kwargs )) return acc def InDetNNScoringToolCfg(flags, name='InDetNNScoringTool', **kwargs) : diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py index a8b1f097f49..2194ce12010 100644 --- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py @@ -459,10 +459,9 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)) - ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg( flags, - namePrefix = 'InDetAmbiguityProcessorSplitProb', - nameSuffix = flags.InDet.Tracking.ActivePass.extension, - ClusterSplitProbabilityName = 'InDetAmbiguityProcessorSplitProb'+flags.InDet.Tracking.ActivePass.extension)) + ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg(flags, + name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension, + isAmbi = True)) InDetAmbiTrackSelectionTool = acc.popToolsAndMerge(InDetAmbiTrackSelectionToolCfg(flags)) @@ -505,10 +504,9 @@ def SimpleAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProcessor", Clu InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)) - ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg( flags, - namePrefix = 'InDetAmbiguityProcessorSplitProb', - nameSuffix = flags.InDet.Tracking.ActivePass.extension, - ClusterSplitProbabilityName = 'InDetAmbiguityProcessorSplitProb'+flags.InDet.Tracking.ActivePass.extension)) + ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg(flags, + name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension, + isAmbi = True)) InDetAmbiTrackSelectionTool = acc.popToolsAndMerge(InDetAmbiTrackSelectionToolCfg(flags)) @@ -587,8 +585,8 @@ def TrackingSiPatternCfg(flags, InputCollections = None, ResolvedTrackCollection # --- get list of already associated hits (always do this, even if no other tracking ran before) # if (len(InputCollections) > 0) and flags.InDet.Tracking.ActivePass.usePrdAssociationTool: - acc.merge(TC.InDetTrackPRD_AssociationCfg(flags,namePrefix = 'InDet', - nameSuffix = flags.InDet.Tracking.ActivePass.extension, + acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, + name = 'InDetTrackPRD_Association' + flags.InDet.Tracking.ActivePass.extension, TracksName = list(InputCollections))) # ------------------------------------------------------------ -- GitLab From 917b066517c153944de332348e0c032f74907851 Mon Sep 17 00:00:00 2001 From: tstreble Date: Mon, 17 Jan 2022 23:43:49 +0100 Subject: [PATCH 3/6] Updated ClusterSplitProbContainer for DenseEnvironment ambi solving --- .../InDetConfig/python/TrackingSiPatternConfig.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py index 2194ce12010..c96b56d0ca1 100644 --- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py @@ -407,7 +407,7 @@ def DenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, name="InDetAmbiguityS return acc -def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProcessor", ClusterSplitProbContainer="", **kwargs): +def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProcessor", **kwargs): acc = ComponentAccumulator() # --- set up different Scoring Tool for collisions and cosmics @@ -531,7 +531,7 @@ def SimpleAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProcessor", Clu acc.setPrivateTools(InDetAmbiguityProcessor) return acc -def TrkAmbiguityScoreCfg(flags, name="InDetAmbiguityScore", SiSPSeededTrackCollectionKey = None, **kwargs) : +def TrkAmbiguityScoreCfg(flags, name="InDetAmbiguityScore", SiSPSeededTrackCollectionKey = None, ClusterSplitProbContainer='', **kwargs) : acc = ComponentAccumulator() # # --- set input and output collection @@ -539,7 +539,7 @@ def TrkAmbiguityScoreCfg(flags, name="InDetAmbiguityScore", SiSPSeededTrackColle InputTrackCollection = SiSPSeededTrackCollectionKey if flags.InDet.Tracking.ActivePass.useTIDE_Ambi: - InDetAmbiguityScoreProcessor = acc.popToolsAndMerge(DenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags)) + InDetAmbiguityScoreProcessor = acc.popToolsAndMerge(DenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, ClusterSplitProbContainer=ClusterSplitProbContainer)) else: InDetAmbiguityScoreProcessor = None @@ -559,7 +559,7 @@ def TrkAmbiguitySolverCfg(flags, name="InDetAmbiguitySolver", ResolvedTrackColle SiTrackCollection = ResolvedTrackCollectionKey if flags.InDet.Tracking.ActivePass.useTIDE_Ambi: - InDetAmbiguityProcessor = acc.popToolsAndMerge(DenseEnvironmentsAmbiguityProcessorToolCfg(flags, ClusterSplitProbContainer=ClusterSplitProbContainer)) + InDetAmbiguityProcessor = acc.popToolsAndMerge(DenseEnvironmentsAmbiguityProcessorToolCfg(flags)) else: InDetAmbiguityProcessor = acc.popToolsAndMerge(SimpleAmbiguityProcessorToolCfg(flags, ClusterSplitProbContainer=ClusterSplitProbContainer)) @@ -606,7 +606,8 @@ def TrackingSiPatternCfg(flags, InputCollections = None, ResolvedTrackCollection # ------------------------------------------------------------ acc.merge(TrkAmbiguityScoreCfg( flags, - SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey)) + SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey, + ClusterSplitProbContainer = ClusterSplitProbContainer)) acc.merge(TrkAmbiguitySolverCfg(flags, ResolvedTrackCollectionKey = ResolvedTrackCollectionKey, -- GitLab From 83832f2c2c5f8f7b681461b9689e01a5075df72c Mon Sep 17 00:00:00 2001 From: tstreble Date: Tue, 18 Jan 2022 16:16:45 +0100 Subject: [PATCH 4/6] Updated handling of arguments for ambi step in ITk tracking configs --- .../InDetConfig/python/ITkRecToolConfig.py | 70 ++---- .../python/ITkTrackingCommonConfig.py | 204 ++++++------------ .../python/ITkTrackingSiPatternConfig.py | 34 ++- 3 files changed, 104 insertions(+), 204 deletions(-) diff --git a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py index d698f1cead1..a71b79f2ba0 100644 --- a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py @@ -9,13 +9,11 @@ def ITkPrdAssociationToolCfg(flags, name='ITkPrdAssociationTool',**kwargs) : ''' Provide an instance for all clients in which the tool is only set in c++ ''' - the_name = makeName( name, kwargs) - kwargs.setdefault("PixelClusterAmbiguitiesMapName", 'ITkPixelClusterAmbiguitiesMap') kwargs.setdefault("addTRToutliers", False) - ITkPRD_AssociationToolGangedPixels = CompFactory.InDet.InDetPRD_AssociationToolGangedPixels(the_name, **kwargs) - acc.addPublicTool(ITkPRD_AssociationToolGangedPixels, primary=True) + ITkPRD_AssociationToolGangedPixels = CompFactory.InDet.InDetPRD_AssociationToolGangedPixels(name, **kwargs) + acc.setPrivateTools(ITkPRD_AssociationToolGangedPixels) return acc def ITkPrdAssociationTool_setupCfg(flags, name='ITkPrdAssociationTool_setup',**kwargs) : @@ -25,23 +23,12 @@ def ITkPrdAssociationTool_setupCfg(flags, name='ITkPrdAssociationTool_setup',**k kwargs.setdefault("SetupCorrect", True) return ITkPrdAssociationToolCfg(flags, name, **kwargs) -def ITkTrigPrdAssociationToolCfg(flags, name='ITkTrigPrdAssociationTool_setup',**kwargs) : - kwargs.setdefault("PixelClusterAmbiguitiesMapName", "ITkTrigPixelClusterAmbiguitiesMap") - kwargs.setdefault("addTRToutliers", False) - return ITkPrdAssociationToolCfg(flags, name, **kwargs) - -def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', **kwargs): +def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', isAmbi=False, **kwargs): result = ComponentAccumulator() - the_name = makeName( name, kwargs) - isHLT=kwargs.pop("isHLT",False) - if 'AssoTool' not in kwargs : - assoTool = None - if not isHLT: - assoTool = result.getPrimaryAndMerge(ITkPrdAssociationTool_setupCfg(flags)) - else: - assoTool = result.getPrimaryAndMerge(ITkTrigPrdAssociationToolCfg(flags)) + assoTool = result.popToolsAndMerge(ITkPrdAssociationTool_setupCfg(flags)) + result.addPublicTool(assoTool) kwargs.setdefault("AssoTool", assoTool) if "HoleSearch" not in kwargs: @@ -49,6 +36,9 @@ def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', **kwargs): # FIXME: assuming we don't use DetailedPixelHoleSearch (since it seems to be off in standard workflows) kwargs.setdefault("HoleSearch", ITkTrackHoleSearchTool) + if isAmbi: + kwargs.setdefault("ClusterSplitProbabilityName","ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension) + kwargs.setdefault("TRTStrawSummarySvc", "") kwargs.setdefault("PixelToTPIDTool", None) kwargs.setdefault("TestBLayerTool", None) @@ -58,7 +48,7 @@ def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', **kwargs): kwargs.setdefault("useSCT", flags.Detector.EnableITkStrip) kwargs.setdefault("useTRT", False) - result.setPrivateTools(CompFactory.InDet.InDetTrackSummaryHelperTool(the_name, **kwargs)) + result.setPrivateTools(CompFactory.InDet.InDetTrackSummaryHelperTool(name, **kwargs)) return result def ITkBoundaryCheckToolCfg(flags, name='ITkBoundaryCheckTool', **kwargs): @@ -105,7 +95,6 @@ def ITkTrackHoleSearchToolCfg(flags, name='ITkHoleSearchTool', **kwargs): return result def ITkTestPixelLayerToolCfg(flags, name = "ITkTestPixelLayerTool", **kwargs): - the_name = makeName( name, kwargs) result = ComponentAccumulator() if 'PixelSummaryTool' not in kwargs : from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg @@ -121,61 +110,36 @@ def ITkTestPixelLayerToolCfg(flags, name = "ITkTestPixelLayerTool", **kwargs): kwargs.setdefault("CheckDeadRegions", flags.ITk.checkDeadPixelsOnTrack) kwargs.setdefault("CheckDisabledFEs", flags.ITk.checkDeadPixelsOnTrack) - tool = CompFactory.InDet.InDetTestPixelLayerTool( name = the_name, **kwargs) + tool = CompFactory.InDet.InDetTestPixelLayerTool( name, **kwargs) result.setPrivateTools( tool ) return result def ITkPatternPropagatorCfg(flags, name='ITkPatternPropagator', **kwargs): - the_name = makeName( name, kwargs) result = ComponentAccumulator() - tool = CompFactory.Trk.RungeKuttaPropagator(name = the_name, **kwargs) + tool = CompFactory.Trk.RungeKuttaPropagator(name, **kwargs) result.addPublicTool( tool, primary=True ) return result def ITkPatternUpdatorCfg(flags, name='ITkPatternUpdator', **kwargs): - the_name = makeName(name, kwargs) result = ComponentAccumulator() - tool = CompFactory.Trk.KalmanUpdator_xk(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator_xk(name, **kwargs) result.setPrivateTools( tool ) return result def ITkUpdatorCfg(flags, name = 'ITkUpdator', **kwargs): - the_name = makeName( name, kwargs ) result = ComponentAccumulator() tool = None if flags.ITk.Tracking.kalmanUpdator == "fast" : - tool = CompFactory.Trk.KalmanUpdator_xk(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator_xk(name, **kwargs) elif flags.ITk.Tracking.kalmanUpdator == "weight" : - tool = CompFactory.Trk.KalmanWeightUpdator(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanWeightUpdator(name, **kwargs) elif flags.ITk.Tracking.kalmanUpdator == "smatrix" : - tool = CompFactory.Trk.KalmanUpdatorSMatrix(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdatorSMatrix(name, **kwargs) elif flags.ITk.Tracking.kalmanUpdator == "amg" : - tool = CompFactory.Trk.KalmanUpdatorAmg(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdatorAmg(name, **kwargs) else : - tool = CompFactory.Trk.KalmanUpdator(name = the_name, **kwargs) + tool = CompFactory.Trk.KalmanUpdator(name, **kwargs) result.setPrivateTools( tool ) return result - -def splitDefaultPrefix(name) : - default_prefix='' - for prefix in ['ITk'] : - if name[0:len(prefix)] == prefix : - name=name[len(prefix):] - default_prefix=prefix - break - return default_prefix,name - -def makeName( name, kwargs) : - default_prefix,name=splitDefaultPrefix(name) - namePrefix=kwargs.pop('namePrefix',default_prefix) - nameSuffix=kwargs.pop('nameSuffix','') - return namePrefix + name + nameSuffix - -def makeNameGetPreAndSuffix( name, kwargs) : - default_prefix,name=splitDefaultPrefix(name) - namePrefix=kwargs.pop('namePrefix',default_prefix) - nameSuffix=kwargs.pop('nameSuffix','') - return namePrefix + name + nameSuffix,namePrefix,nameSuffix - diff --git a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py index 54a65714ce3..45a1407f401 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py @@ -2,28 +2,12 @@ from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory from IOVDbSvc.IOVDbSvcConfig import addFoldersSplitOnline -from InDetConfig.ITkRecToolConfig import makeName import AthenaCommon.SystemOfUnits as Units ####################################################################### -def copyArgs(kwargs, copy_list): - dict_copy={} - for elm in copy_list : - if elm in kwargs : - dict_copy[elm]=kwargs[elm] - return dict_copy - -def stripArgs(kwargs, copy_list) : - dict_copy = copyArgs(kwargs,copy_list) - for an_arg in copy_list : - kwargs.pop(an_arg,None) - return dict_copy - - def ITkEtaDependentCutsSvcCfg(flags, name = 'ITkEtaDependentCutsSvc', **kwargs): acc = ComponentAccumulator() - the_name = name + flags.ITk.Tracking.ActivePass.extension cuts = flags.ITk.Tracking.ActivePass @@ -49,22 +33,20 @@ def ITkEtaDependentCutsSvcCfg(flags, name = 'ITkEtaDependentCutsSvc', **kwargs): kwargs.setdefault("Xi2max", cuts.Xi2max) kwargs.setdefault("Xi2maxNoAdd", cuts.Xi2maxNoAdd) - ITkEtaDependentCutsSvc = CompFactory.InDet.InDetEtaDependentCutsSvc( name = the_name, **kwargs ) + ITkEtaDependentCutsSvc = CompFactory.InDet.InDetEtaDependentCutsSvc( name = name + flags.ITk.Tracking.ActivePass.extension, **kwargs ) acc.addService(ITkEtaDependentCutsSvc) return acc def ITkTruthClusterizationFactoryCfg(flags, name = 'ITkTruthClusterizationFactory', **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) kwargs.setdefault("InputSDOMap", 'ITkPixelSDO_Map') - ITkTruthClusterizationFactory = CompFactory.InDet.TruthClusterizationFactory( name = the_name, **kwargs ) + ITkTruthClusterizationFactory = CompFactory.InDet.TruthClusterizationFactory( name, **kwargs ) acc.setPrivateTools(ITkTruthClusterizationFactory) return acc def ITkPixelClusterOnTrackToolBaseCfg(flags, name="ITkPixelClusterOnTrackTool", **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelOfflineCalibCondAlgCfg acc.merge(ITkPixelOfflineCalibCondAlgCfg(flags)) @@ -80,7 +62,7 @@ def ITkPixelClusterOnTrackToolBaseCfg(flags, name="ITkPixelClusterOnTrackTool", kwargs.setdefault("PixelErrorScalingKey", "") - acc.setPrivateTools(CompFactory.ITk.PixelClusterOnTrackTool(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.ITk.PixelClusterOnTrackTool(name, **kwargs)) return acc def ITkPixelClusterOnTrackToolDigitalCfg(flags, name='ITkPixelClusterOnTrackToolDigital', **kwargs): @@ -115,7 +97,7 @@ def ITkPixelClusterOnTrackToolNNSplittingCfg(flags, name='ITkPixelClusterOnTrack acc.setPrivateTools(ITkPixelClusterOnTrackTool) return acc -def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', **kwargs): +def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', isAmbi=False, **kwargs): acc = ComponentAccumulator() if 'LorentzAngleTool' not in kwargs : @@ -123,18 +105,21 @@ def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', **kw ITkPixelLorentzAngleTool = acc.popToolsAndMerge(ITkPixelLorentzAngleCfg(flags)) kwargs.setdefault("LorentzAngleTool", ITkPixelLorentzAngleTool ) + if isAmbi: + name = name + "Ambi" + flags.ITk.Tracking.ActivePass.extension + kwargs.setdefault("ClusterSplitProbabilityName","ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension) + ITkPixelClusterOnTrackTool = None if flags.ITk.Tracking.doDigitalROTCreation: - ITkPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolDigitalCfg(flags, name=name, **kwargs)) + ITkPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs)) else: - ITkPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolNNSplittingCfg(flags, name=name, **kwargs)) + ITkPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolNNSplittingCfg(flags, name, **kwargs)) acc.setPrivateTools(ITkPixelClusterOnTrackTool) return acc def ITkStripClusterOnTrackToolCfg(flags, name='ITkStrip_ClusterOnTrackTool', **kwargs): acc = ComponentAccumulator() - the_name = makeName(name, kwargs) if 'LorentzAngleTool' not in kwargs : from SiLorentzAngleTool.ITkStripLorentzAngleConfig import ITkStripLorentzAngleCfg @@ -146,27 +131,23 @@ def ITkStripClusterOnTrackToolCfg(flags, name='ITkStrip_ClusterOnTrackTool', **k kwargs.setdefault("ErrorScalingKey", "") - acc.setPrivateTools(CompFactory.ITk.StripClusterOnTrackTool(the_name, **kwargs)) + acc.setPrivateTools(CompFactory.ITk.StripClusterOnTrackTool(name, **kwargs)) return acc def ITkBroadStripClusterOnTrackToolCfg(flags, name='ITkBroadStripClusterOnTrackTool', **kwargs): kwargs.setdefault("ErrorStrategy", 0) return ITkStripClusterOnTrackToolCfg(flags, name=name, **kwargs) -def ITkBroadPixelClusterOnTrackToolCfg(flags, name='ITkBroadPixelClusterOnTrackTool', **kwargs): +def ITkBroadPixelClusterOnTrackToolCfg(flags, name='ITkBroadPixelClusterOnTrackTool', isAmbi=False, **kwargs): kwargs.setdefault("ErrorStrategy", 0) - return ITkPixelClusterOnTrackToolCfg(flags, name=name, **kwargs) + return ITkPixelClusterOnTrackToolCfg(flags, name, isAmbi, **kwargs) -def ITk_RIO_OnTrackErrorScalingCondAlgCfg(flags, **kwargs): +def ITk_RIO_OnTrackErrorScalingCondAlgCfg(flags, name='ITk_RIO_OnTrackErrorScalingCondAlg', **kwargs): acc = ComponentAccumulator() - the_name=kwargs.pop("name", None) - if flags.GeoModel.Run == "RUN1": - error_scaling_type = ["PixelRIO_OnTrackErrorScalingRun1"] - error_scaling_outkey = ["/Indet/TrkErrorScalingPixel"] - else: # Run 2 and 3 - error_scaling_type = ["PixelRIO_OnTrackErrorScaling"] - error_scaling_outkey = ["/Indet/TrkErrorScalingPixel"] + # From Run 2 and 3 + error_scaling_type = ["PixelRIO_OnTrackErrorScaling"] + error_scaling_outkey = ["/Indet/TrkErrorScalingPixel"] # TODO: cover Run 4 and beyond error_scaling_type += ["SCTRIO_OnTrackErrorScaling"] @@ -178,22 +159,14 @@ def ITk_RIO_OnTrackErrorScalingCondAlgCfg(flags, **kwargs): kwargs.setdefault("ErrorScalingType", error_scaling_type) kwargs.setdefault("OutKeys", error_scaling_outkey) - if the_name is not None: - kwargs.setdefault("name", the_name) - acc.addCondAlgo(CompFactory.RIO_OnTrackErrorScalingCondAlg(**kwargs)) + acc.addCondAlgo(CompFactory.RIO_OnTrackErrorScalingCondAlg(name, **kwargs)) return acc -def ITkRotCreatorCfg(flags, name='ITkRotCreator', **kwargs): +def ITkRotCreatorCfg(flags, name='ITkRotCreator', isAmbi=False, **kwargs): acc = ComponentAccumulator() - strip_args=['ClusterSplitProbabilityName','nameSuffix'] - pix_cluster_on_track_args = copyArgs(kwargs,strip_args) - the_name = makeName(name, kwargs) - - for an_arg in strip_args: - kwargs.pop(an_arg, None) if 'ToolPixelCluster' not in kwargs : - ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault("ToolPixelCluster", ToolPixelCluster) if 'ToolSCT_Cluster' not in kwargs : @@ -202,30 +175,34 @@ def ITkRotCreatorCfg(flags, name='ITkRotCreator', **kwargs): kwargs.setdefault("ToolTRT_DriftCircle", None) kwargs.setdefault('Mode', 'indet') - acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name=the_name, **kwargs)) + + if isAmbi: + name = name + 'Ambi' + flags.ITk.Tracking.ActivePass.extension + + acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name, **kwargs)) return acc def ITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedPixels', **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) kwargs.setdefault("PixelClusterAmbiguitiesMapName", 'ITkPixelClusterAmbiguitiesMap') kwargs.setdefault("addTRToutliers", False) - acc.setPrivateTools(CompFactory.InDet.InDetPRDtoTrackMapToolGangedPixels( name=the_name, **kwargs)) + acc.setPrivateTools(CompFactory.InDet.InDetPRDtoTrackMapToolGangedPixels( name, **kwargs)) return acc def ITkTrackPRD_AssociationCfg(flags, name='ITkTrackPRD_Association', **kwargs): acc = ComponentAccumulator() - from InDetConfig.ITkRecToolConfig import makeNameGetPreAndSuffix - the_name,prefix,suffix=makeNameGetPreAndSuffix(name,kwargs) if kwargs.get('TracksName', None) is None : raise Exception('Not TracksName argument provided') - AssociationTool = acc.popToolsAndMerge(ITkPRDtoTrackMapToolGangedPixelsCfg(flags)) - kwargs.setdefault("AssociationTool", AssociationTool \ - if 'AssociationTool' not in kwargs else None ) + if 'AssociationTool' not in kwargs: + kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(ITkPRDtoTrackMapToolGangedPixelsCfg(flags))) + + prefix = name[0:name.find("TrackPRD_Association")] + suffix = flags.InDet.Tracking.ActivePass.extension kwargs.setdefault("AssociationMapName", prefix+'PRDtoTrackMap'+suffix ) - acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name = the_name, **kwargs)) + + acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name, **kwargs)) return acc def ITkSummaryHelperNoHoleSearchCfg(flags, name='ITkSummaryHelperNoHoleSearch', **kwargs): @@ -234,24 +211,17 @@ def ITkSummaryHelperNoHoleSearchCfg(flags, name='ITkSummaryHelperNoHoleSearch', from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg return ITkTrackSummaryHelperToolCfg(flags, name = name, **kwargs) -def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', **kwargs): +def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', isAmbi=False, **kwargs): acc = ComponentAccumulator() - # makeName will remove the namePrefix in suffix from kwargs, so copyArgs has to be first - hlt_args = copyArgs(kwargs,['isHLT','namePrefix']) - id_helper_args = copyArgs(kwargs,['ClusterSplitProbabilityName','namePrefix','nameSuffix']) if 'ClusterSplitProbabilityName' in kwargs else {} - kwargs.pop('ClusterSplitProbabilityName',None) - kwargs.pop('isHLT',None) - the_name = makeName( name, kwargs) do_holes=kwargs.get("doHolesInDet",True) - if do_holes : - id_helper_args.update(hlt_args) if 'InDetSummaryHelperTool' not in kwargs : if do_holes: from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg - ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags, **id_helper_args)) + tool_name = "ITkAmbiguityProcessorSplitProbSummaryHelper" + flags.InDet.Tracking.ActivePass.extension if isAmbi else "ITkSummaryHelper" + ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags, name=tool_name, isAmbi=isAmbi)) else: - ITkSummaryHelperTool = acc.popToolsAndMerge(ITkSummaryHelperNoHoleSearchCfg(flags, **id_helper_args)) + ITkSummaryHelperTool = acc.popToolsAndMerge(ITkSummaryHelperNoHoleSearchCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", ITkSummaryHelperTool) # @@ -261,7 +231,7 @@ def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', **kwargs): kwargs.setdefault("doHolesInDet", do_holes) kwargs.setdefault("TRT_ElectronPidTool", None) # we don't want to use those tools during pattern kwargs.setdefault("PixelToTPIDTool", None) # we don't want to use those tools during pattern - acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name = the_name, **kwargs), primary=True) + acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name, **kwargs), primary=True) return acc def ITkSummaryHelperSharedHitsCfg(flags, name='ITkSummaryHelperSharedHits', **kwargs): @@ -275,14 +245,7 @@ def ITkSummaryHelperSharedHitsCfg(flags, name='ITkSummaryHelperSharedHits', **kw def ITkTrackSummaryToolSharedHitsCfg(flags, name='ITkTrackSummaryToolSharedHits',**kwargs): acc = ComponentAccumulator() if 'InDetSummaryHelperTool' not in kwargs : - copy_args=['ClusterSplitProbabilityName','namePrefix','nameSuffix'] - do_holes=kwargs.get("doHolesInDet",True) - if do_holes : - copy_args += ['isHLT'] - id_helper_args = copyArgs(kwargs,copy_args) if 'ClusterSplitProbabilityName' in kwargs else {} - kwargs.pop('ClusterSplitProbabilityName',None) - - ITkSummaryHelperSharedHits = acc.popToolsAndMerge(ITkSummaryHelperSharedHitsCfg(flags, **id_helper_args)) + ITkSummaryHelperSharedHits = acc.popToolsAndMerge(ITkSummaryHelperSharedHitsCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", ITkSummaryHelperSharedHits) kwargs.setdefault( "PixelToTPIDTool", None) @@ -294,40 +257,32 @@ def ITkTrackSummaryToolSharedHitsCfg(flags, name='ITkTrackSummaryToolSharedHits' def ITkMultipleScatteringUpdatorCfg(flags, name = "ITkMultipleScatteringUpdator", **kwargs): acc = ComponentAccumulator() - the_name = makeName( name, kwargs) kwargs.setdefault( "UseTrkUtils", False) - MultipleScatteringUpdator = CompFactory.Trk.MultipleScatteringUpdator(name = the_name, **kwargs) + MultipleScatteringUpdator = CompFactory.Trk.MultipleScatteringUpdator(name, **kwargs) acc.setPrivateTools(MultipleScatteringUpdator) return acc -def ITkMeasRecalibSTCfg(flags, name='ITkMeasRecalibST', **kwargs) : +def ITkMeasRecalibSTCfg(flags, name='ITkMeasRecalibST', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - if 'BroadPixelClusterOnTrackTool' not in kwargs : - ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('BroadPixelClusterOnTrackTool', ITkBroadPixelClusterOnTrackTool) if 'BroadSCT_ClusterOnTrackTool' not in kwargs : ITkBroadStripClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadStripClusterOnTrackToolCfg(flags)) kwargs.setdefault('BroadSCT_ClusterOnTrackTool', ITkBroadStripClusterOnTrackTool) if 'CommonRotCreator' not in kwargs : ITkRefitRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, - name = 'ITkRefitRotCreator', - **pix_cluster_on_track_args)) + name = 'ITkRefitRotCreator')) kwargs.setdefault('CommonRotCreator', ITkRefitRotCreator) MeasRecalibSteeringTool = CompFactory.Trk.MeasRecalibSteeringTool(name, **kwargs) acc.setPrivateTools(MeasRecalibSteeringTool) return acc -def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase',**kwargs) : +def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - nameSuffix=kwargs.pop('nameSuffix','') - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName']) - if len(pix_cluster_on_track_args)>0 and len(nameSuffix)>0 : - pix_cluster_on_track_args['nameSuffix']=nameSuffix from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)) @@ -336,8 +291,7 @@ def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase',**kwargs) if 'RIO_OnTrackCreatorHandle' not in kwargs : ITkRefitRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, - name = 'ITkRefitRotCreator', - **pix_cluster_on_track_args)) + name = 'ITkRefitRotCreator')) kwargs.setdefault("RIO_OnTrackCreatorHandle", ITkRefitRotCreator) from InDetConfig.ITkRecToolConfig import ITkUpdatorCfg @@ -352,10 +306,10 @@ def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase',**kwargs) kwargs.setdefault('BrempointAnalyserHandle', None) kwargs.setdefault('AlignableSurfaceProviderHandle',None) - if len(pix_cluster_on_track_args)>0 : + if isAmbi: if 'RecalibratorHandle' not in kwargs : - the_tool_name = 'ITkMeasRecalibST' - ITkMeasRecalibST = acc.popToolsAndMerge(ITkMeasRecalibSTCfg(flags, name=the_tool_name+nameSuffix, **pix_cluster_on_track_args)) + tool_name = 'ITkMeasRecalibSTAmbi' + flags.ITk.Tracking.ActivePass.extension + ITkMeasRecalibST = acc.popToolsAndMerge(ITkMeasRecalibSTCfg(flags, name=tool_name, isAmbi=isAmbi)) kwargs.setdefault('RecalibratorHandle', ITkMeasRecalibST) else : ITkMeasRecalibST = acc.popToolsAndMerge(ITkMeasRecalibSTCfg(flags)) @@ -453,23 +407,25 @@ def ITkKalmanInternalDAFRefCfg(flags, name='ITkKalmanInternalDAFRef',**kwargs) : acc.setPrivateTools(ITkKalmanInternalDAF) return acc -def ITkBroadRotCreatorCfg(flags, name='ITkBroadRotCreator', **kwargs) : +def ITkBroadRotCreatorCfg(flags, name='ITkBroadRotCreator', isAmbi=False, **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, **pix_cluster_on_track_args)) + ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('ToolPixelCluster', ITkBroadPixelClusterOnTrackTool) if 'ToolSCT_Cluster' not in kwargs : ITkBroadStripClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadStripClusterOnTrackToolCfg(flags)) kwargs.setdefault('ToolSCT_Cluster', ITkBroadStripClusterOnTrackTool) + if isAmbi: + name = name + 'Ambi' + flags.ITk.Tracking.ActivePass.extension + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, name = name, **kwargs)) acc.setPrivateTools(ITkRotCreator) return acc -def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter',**kwargs) : +def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() ITkFKF = acc.popToolsAndMerge(ITkFKFCfg(flags)) @@ -490,11 +446,11 @@ def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter',**kwargs) : ITkKalmanInternalDAF = acc.popToolsAndMerge(ITkKalmanInternalDAFCfg(flags)) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAF) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter',**kwargs) : +def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() ITkFKF = acc.popToolsAndMerge(ITkFKFCfg(flags)) @@ -507,11 +463,11 @@ def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter',**kwargs) : kwargs.setdefault('BrempointAnalyserHandle', ITkDNASeparator) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAF) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter',**kwargs) : +def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() ITkFKFRef = acc.popToolsAndMerge(ITkFKFRefCfg(flags)) @@ -520,38 +476,34 @@ def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter',**kwargs) kwargs.setdefault('ForwardKalmanFitterHandle', ITkFKFRef) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAFRef) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name=name, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkDistributedKalmanFilterCfg(flags, name="ITkDistributedKalmanFilter", **kwargs) : +def ITkDistributedKalmanFilterCfg(flags, name="ITkDistributedKalmanFilter", isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - if 'ExtrapolatorTool' not in kwargs: from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg kwargs.setdefault('ExtrapolatorTool', acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))) if 'ROTcreator' not in kwargs: - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, **pix_cluster_on_track_args)) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('ROTcreator', ITkRotCreator) DistributedKalmanFilter = CompFactory.Trk.DistributedKalmanFilter(name = name, **kwargs) acc.setPrivateTools(DistributedKalmanFilter) return acc -def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', **kwargs) : +def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', isAmbi=False, **kwargs) : acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - if 'RotCreatorTool' not in kwargs : - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, **pix_cluster_on_track_args)) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('RotCreatorTool', ITkRotCreator) if 'BroadRotCreatorTool' not in kwargs: - ITkBroadRotCreator = acc.popToolsAndMerge(ITkBroadRotCreatorCfg(flags, **pix_cluster_on_track_args)) + ITkBroadRotCreator = acc.popToolsAndMerge(ITkBroadRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault('BroadRotCreatorTool', ITkBroadRotCreator) if flags.Beam.Type == 'cosmics': @@ -565,21 +517,11 @@ def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', **kwargs) : acc.setPrivateTools(ITkGlobalChi2Fitter) return acc -def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", **kwargs): +def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", isAmbi=False, **kwargs): acc = ComponentAccumulator() - pix_cluster_on_track_args = stripArgs( - kwargs, - [ - "ClusterSplitProbabilityName", - "nameSuffix", - ], - ) - if "ToolForROTCreation" not in kwargs: - ITkRotCreator = acc.popToolsAndMerge( - ITkRotCreatorCfg(flags, **pix_cluster_on_track_args) - ) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) kwargs.setdefault("ToolForROTCreation", ITkRotCreator ) kwargs.setdefault("MakePerigee", True) @@ -595,7 +537,7 @@ def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", **kwargs): acc.setPrivateTools(GaussianSumFitter) return acc -def ITkTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs) : +def ITkTrackFitterCfg(flags, name='ITkTrackFitter', isAmbi=False, **kwargs) : return { 'KalmanFitter' : ITkKalmanFitterCfg, 'KalmanDNAFitter' : ITkKalmanDNAFitterCfg, @@ -603,7 +545,7 @@ def ITkTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs) : 'DistributedKalmanFilter' : ITkDistributedKalmanFilterCfg, 'GlobalChi2Fitter' : ITkGlobalChi2FitterCfg, 'GaussianSumFilter' : ITkGaussianSumFitterCfg - }[flags.ITk.Tracking.trackFitterType](flags, name=name, **kwargs) + }[flags.ITk.Tracking.trackFitterType](flags, name, isAmbi, **kwargs) def ITkGlobalChi2FitterBaseCfg(flags, name='ITkGlobalChi2FitterBase', **kwargs) : acc = ComponentAccumulator() @@ -677,9 +619,7 @@ def ITkKOLCfg(flags, name = 'ITkKOL', **kwargs): def ITkRotCreatorDigitalCfg(flags, name='ITkRotCreatorDigital', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - pix_cluster_on_track_args = copyArgs(kwargs,['ClusterSplitProbabilityName','nameSuffix']) - - ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolDigitalCfg(flags, **pix_cluster_on_track_args)) + ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolDigitalCfg(flags)) kwargs.setdefault('ToolPixelCluster', ToolPixelCluster) ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, name=name, **kwargs)) @@ -734,7 +674,6 @@ def ITkAmbiScoringToolBaseCfg(flags, name='ITkAmbiScoringTool', **kwargs) : def ITkCosmicsScoringToolBaseCfg(flags, name='ITkCosmicsScoringTool', **kwargs) : acc = ComponentAccumulator() - the_name=makeName(name, kwargs) ITkTrackSummaryTool = acc.getPrimaryAndMerge(ITkTrackSummaryToolCfg(flags)) @@ -742,7 +681,7 @@ def ITkCosmicsScoringToolBaseCfg(flags, name='ITkCosmicsScoringTool', **kwargs) kwargs.setdefault("minTRTHits", 0 ) kwargs.setdefault("SummaryTool", ITkTrackSummaryTool ) - acc.setPrivateTools( CompFactory.InDet.InDetCosmicScoringTool(name = the_name, **kwargs ) ) + acc.setPrivateTools( CompFactory.InDet.InDetCosmicScoringTool(name, **kwargs ) ) return acc def ITkCosmicExtenScoringToolCfg(flags, name='ITkCosmicExtenScoringTool',**kwargs) : @@ -760,8 +699,7 @@ def ITkAmbiScoringToolCfg(flags, name='ITkAmbiScoringTool', **kwargs) : def ITkPRDtoTrackMapToolCfg(flags, name='ITkPRDtoTrackMapTool',**kwargs) : acc = ComponentAccumulator() - the_name = makeName( name, kwargs) - acc.setPrivateTools(CompFactory.Trk.PRDtoTrackMapTool( name=the_name, **kwargs)) + acc.setPrivateTools(CompFactory.Trk.PRDtoTrackMapTool(name, **kwargs)) return acc def ITkCosmicsScoringToolCfg(flags, name='ITkCosmicsScoringTool', **kwargs) : diff --git a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py index 4ac9bc42e83..1080b0da969 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py @@ -351,7 +351,7 @@ def ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, name = "ITkAmbigui acc.setPrivateTools(ITkAmbiguityScoreProcessor) return acc -def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityProcessor", ClusterSplitProbContainer='', **kwargs) : +def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityProcessor", **kwargs) : acc = ComponentAccumulator() # @@ -363,24 +363,23 @@ def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityPro ITkAmbiScoringTool = acc.popToolsAndMerge(TC.ITkAmbiScoringToolCfg(flags)) fitter_args = {} - fitter_args.setdefault("nameSuffix", 'Ambi'+flags.ITk.Tracking.ActivePass.extension) - fitter_args.setdefault("ClusterSplitProbabilityName", 'ITkAmbiguityProcessorSplitProb'+flags.ITk.Tracking.ActivePass.extension) - fitter_args.setdefault("DoHoleSearch", True) ITkBoundaryCheckTool = acc.popToolsAndMerge(ITkBoundaryCheckToolCfg(flags)) fitter_args.setdefault("BoundaryCheckTool", ITkBoundaryCheckTool) fitter_list=[] - ITkTrackFitterAmbi = acc.getPrimaryAndMerge(TC.ITkTrackFitterCfg(flags, name='ITkTrackFitter'+'Ambi'+flags.ITk.Tracking.ActivePass.extension, **fitter_args)) + ITkTrackFitterAmbi = acc.popToolsAndMerge(TC.ITkTrackFitterCfg(flags, + name='ITkTrackFitterAmbi'+flags.ITk.Tracking.ActivePass.extension, + isAmbi=True, + **fitter_args)) fitter_list.append(ITkTrackFitterAmbi) ITkPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.ITkPRDtoTrackMapToolGangedPixelsCfg(flags)) ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.ITkTrackSummaryToolCfg( flags, - namePrefix = 'ITkAmbiguityProcessorSplitProb', - nameSuffix = flags.ITk.Tracking.ActivePass.extension, - ClusterSplitProbabilityName = 'ITkAmbiguityProcessorSplitProb'+flags.ITk.Tracking.ActivePass.extension)) + name = "ITkAmbiguityProcessorSplitProbTrackSummaryTool" + flags.ITk.Tracking.ActivePass.extension, + isAmbi = True)) ITkAmbiTrackSelectionTool = acc.popToolsAndMerge(ITkAmbiTrackSelectionToolCfg(flags)) @@ -406,14 +405,14 @@ def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityPro acc.setPrivateTools(ITkAmbiguityProcessor) return acc -def ITkTrkAmbiguityScoreCfg(flags, name="ITkAmbiguityScore", SiSPSeededTrackCollectionKey = None, **kwargs) : +def ITkTrkAmbiguityScoreCfg(flags, name="ITkAmbiguityScore", SiSPSeededTrackCollectionKey = None, ClusterSplitProbContainer='', **kwargs) : acc = ComponentAccumulator() # # --- set input and output collection # InputTrackCollection = SiSPSeededTrackCollectionKey - ITkAmbiguityScoreProcessor = acc.popToolsAndMerge(ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags)) + ITkAmbiguityScoreProcessor = acc.popToolsAndMerge(ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg(flags, ClusterSplitProbContainer=ClusterSplitProbContainer)) # # --- configure Ambiguity (score) solver @@ -427,13 +426,12 @@ def ITkTrkAmbiguityScoreCfg(flags, name="ITkAmbiguityScore", SiSPSeededTrackColl return acc -def ITkTrkAmbiguitySolverCfg(flags, name="ITkAmbiguitySolver", ResolvedTrackCollectionKey = None, ClusterSplitProbContainer='', **kwargs): +def ITkTrkAmbiguitySolverCfg(flags, name="ITkAmbiguitySolver", ResolvedTrackCollectionKey = None, **kwargs): acc = ComponentAccumulator() SiTrackCollection = ResolvedTrackCollectionKey # DenseEnvironmentsAmbiguityProcessorTool - ITkAmbiguityProcessor = acc.popToolsAndMerge(ITkDenseEnvironmentsAmbiguityProcessorToolCfg( flags, - ClusterSplitProbContainer=ClusterSplitProbContainer)) + ITkAmbiguityProcessor = acc.popToolsAndMerge(ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags)) # # --- configure Ambiguity solver @@ -457,8 +455,8 @@ def ITkTrackingSiPatternCfg(flags, InputCollections = None, ResolvedTrackCollect # --- get list of already associated hits (always do this, even if no other tracking ran before) # if (len(InputCollections) > 0) and flags.ITk.Tracking.ActivePass.usePrdAssociationTool: - acc.merge(TC.ITkTrackPRD_AssociationCfg(flags,namePrefix = 'ITk', - nameSuffix = flags.ITk.Tracking.ActivePass.extension, + acc.merge(TC.ITkTrackPRD_AssociationCfg(flags, + name = 'ITkTrackPRD_Association' + flags.ITk.Tracking.ActivePass.extension, TracksName = list(InputCollections))) # ------------------------------------------------------------ @@ -486,11 +484,11 @@ def ITkTrackingSiPatternCfg(flags, InputCollections = None, ResolvedTrackCollect else: acc.merge(ITkTrkAmbiguityScoreCfg( flags, - SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey)) + SiSPSeededTrackCollectionKey = SiSPSeededTrackCollectionKey, + ClusterSplitProbContainer = ClusterSplitProbContainer)) acc.merge(ITkTrkAmbiguitySolverCfg(flags, - ResolvedTrackCollectionKey = ResolvedTrackCollectionKey, - ClusterSplitProbContainer = ClusterSplitProbContainer)) + ResolvedTrackCollectionKey = ResolvedTrackCollectionKey)) return acc -- GitLab From 11d4792e6dd1561b5feaa2c60d831fff9e7cc863 Mon Sep 17 00:00:00 2001 From: tstreble Date: Tue, 18 Jan 2022 17:03:01 +0100 Subject: [PATCH 5/6] Updated private/public tool config for TrackSummaryHelper configs --- InnerDetector/InDetConfig/python/ITkRecToolConfig.py | 6 +++--- .../InDetConfig/python/ITkTrackingCommonConfig.py | 4 ++-- .../InDetConfig/python/InDetRecToolConfig.py | 9 ++++----- .../TrkConfig/python/AtlasTrackSummaryToolConfig.py | 12 +++++++----- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py index a71b79f2ba0..3c69f91f152 100644 --- a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py @@ -32,8 +32,8 @@ def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', isAmbi=False, * kwargs.setdefault("AssoTool", assoTool) if "HoleSearch" not in kwargs: - ITkTrackHoleSearchTool = result.getPrimaryAndMerge(ITkTrackHoleSearchToolCfg(flags)) - # FIXME: assuming we don't use DetailedPixelHoleSearch (since it seems to be off in standard workflows) + ITkTrackHoleSearchTool = result.popToolsAndMerge(ITkTrackHoleSearchToolCfg(flags)) + result.addPublicTool(ITkTrackHoleSearchTool) kwargs.setdefault("HoleSearch", ITkTrackHoleSearchTool) if isAmbi: @@ -91,7 +91,7 @@ def ITkTrackHoleSearchToolCfg(flags, name='ITkHoleSearchTool', **kwargs): kwargs.setdefault("CountDeadModulesAfterLastHit", True) - result.addPublicTool(CompFactory.InDet.InDetTrackHoleSearchTool(name, **kwargs), primary=True) + result.setPrivateTools(CompFactory.InDet.InDetTrackHoleSearchTool(name, **kwargs)) return result def ITkTestPixelLayerToolCfg(flags, name = "ITkTestPixelLayerTool", **kwargs): diff --git a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py index 45a1407f401..0bb84108b7f 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py @@ -199,7 +199,7 @@ def ITkTrackPRD_AssociationCfg(flags, name='ITkTrackPRD_Association', **kwargs): kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(ITkPRDtoTrackMapToolGangedPixelsCfg(flags))) prefix = name[0:name.find("TrackPRD_Association")] - suffix = flags.InDet.Tracking.ActivePass.extension + suffix = flags.ITk.Tracking.ActivePass.extension kwargs.setdefault("AssociationMapName", prefix+'PRDtoTrackMap'+suffix ) acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name, **kwargs)) @@ -218,7 +218,7 @@ def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', isAmbi=False, **kw if 'InDetSummaryHelperTool' not in kwargs : if do_holes: from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg - tool_name = "ITkAmbiguityProcessorSplitProbSummaryHelper" + flags.InDet.Tracking.ActivePass.extension if isAmbi else "ITkSummaryHelper" + tool_name = "ITkAmbiguityProcessorSplitProbSummaryHelper" + flags.ITk.Tracking.ActivePass.extension if isAmbi else "ITkSummaryHelper" ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags, name=tool_name, isAmbi=isAmbi)) else: ITkSummaryHelperTool = acc.popToolsAndMerge(ITkSummaryHelperNoHoleSearchCfg(flags)) diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py index 845383c14d5..22fc81e00ed 100644 --- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py @@ -41,10 +41,9 @@ def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', isAmbi=Fals kwargs.setdefault("AssoTool", InDetPrdAssociationTool_setup) if "HoleSearch" not in kwargs: - acc = InDetTrackHoleSearchToolCfg(flags) - # FIXME: assuming we don't use DetailedPixelHoleSearch (since it seems to be off in standard workflows) - kwargs.setdefault("HoleSearch", acc.getPrimary()) - result.merge(acc) + InDetTrackHoleSearchTool = result.popToolsAndMerge(InDetTrackHoleSearchToolCfg(flags)) + result.addPublicTool(InDetTrackHoleSearchTool) + kwargs.setdefault("HoleSearch", InDetTrackHoleSearchTool) if not flags.Detector.EnableTRT: kwargs.setdefault("TRTStrawSummarySvc", "") @@ -107,7 +106,7 @@ def InDetTrackHoleSearchToolCfg(flags, name = 'InDetHoleSearchTool', **kwargs): kwargs.setdefault( "CountDeadModulesAfterLastHit" , True) indet_hole_search_tool = CompFactory.InDet.InDetTrackHoleSearchTool(name, **kwargs) - result.addPublicTool(indet_hole_search_tool, primary=True) + result.setPrivateTools(indet_hole_search_tool) return result diff --git a/Tracking/TrkConfig/python/AtlasTrackSummaryToolConfig.py b/Tracking/TrkConfig/python/AtlasTrackSummaryToolConfig.py index 95c49137a80..2b67cb9c1cd 100644 --- a/Tracking/TrkConfig/python/AtlasTrackSummaryToolConfig.py +++ b/Tracking/TrkConfig/python/AtlasTrackSummaryToolConfig.py @@ -17,15 +17,17 @@ def AtlasTrackSummaryToolCfg(flags, name="AtlasTrackSummaryTool", **kwargs): # Setup Association Tool from InDetConfig.InDetRecToolConfig import InDetPrdAssociationToolCfg - atlasPrdAssociationTool = result.getPrimaryAndMerge(InDetPrdAssociationToolCfg(flags, - name='AtlasPrdAssociationTool')) + atlasPrdAssociationTool = result.popToolsAndMerge(InDetPrdAssociationToolCfg(flags, + name='AtlasPrdAssociationTool')) atlasPrdAssociationTool.addTRToutliers = False + result.addPublicTool(atlasPrdAssociationTool) # Loading Configurable HoleSearchTool from InDetConfig.InDetRecToolConfig import InDetTrackHoleSearchToolCfg - atlasHoleSearchTool = result.getPrimaryAndMerge(InDetTrackHoleSearchToolCfg(flags, - name="AtlasHoleSearchTool", - Extrapolator=extrapolator)) + atlasHoleSearchTool = result.popToolsAndMerge(InDetTrackHoleSearchToolCfg(flags, + name="AtlasHoleSearchTool", + Extrapolator=extrapolator)) + result.addPublicTool(atlasHoleSearchTool) # FIXME - need InDet to provide configuration for PixelConditionsSummaryTool # Also assuming we don't use DetailedPixelHoleSearch (since it seems to be off in standard workflows) -- GitLab From a8c7b804ba58cbf35970b482c052d2c7d39e0019 Mon Sep 17 00:00:00 2001 From: tstreble Date: Tue, 18 Jan 2022 20:41:03 +0100 Subject: [PATCH 6/6] Removed isAmbi argument from configs --- .../InDetConfig/python/ITkRecToolConfig.py | 7 +- .../python/ITkTrackingCommonConfig.py | 109 +++++++------ .../python/ITkTrackingSiPatternConfig.py | 6 +- .../InDetConfig/python/InDetRecToolConfig.py | 5 +- .../InDetConfig/python/TRTExtensionConfig.py | 2 +- .../python/TRTSegmentFindingConfig.py | 1 + .../InDetConfig/python/TRTStandaloneConfig.py | 1 + .../python/TrackingCommonConfig.py | 143 +++++++++++------- .../python/TrackingSiPatternConfig.py | 20 +-- 9 files changed, 165 insertions(+), 129 deletions(-) diff --git a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py index 3c69f91f152..823ebbd8085 100644 --- a/InnerDetector/InDetConfig/python/ITkRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/ITkRecToolConfig.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from AthenaConfiguration.ComponentFactory import CompFactory @@ -23,7 +23,7 @@ def ITkPrdAssociationTool_setupCfg(flags, name='ITkPrdAssociationTool_setup',**k kwargs.setdefault("SetupCorrect", True) return ITkPrdAssociationToolCfg(flags, name, **kwargs) -def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', isAmbi=False, **kwargs): +def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', **kwargs): result = ComponentAccumulator() if 'AssoTool' not in kwargs : @@ -36,9 +36,6 @@ def ITkTrackSummaryHelperToolCfg(flags, name='ITkSummaryHelper', isAmbi=False, * result.addPublicTool(ITkTrackHoleSearchTool) kwargs.setdefault("HoleSearch", ITkTrackHoleSearchTool) - if isAmbi: - kwargs.setdefault("ClusterSplitProbabilityName","ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension) - kwargs.setdefault("TRTStrawSummarySvc", "") kwargs.setdefault("PixelToTPIDTool", None) kwargs.setdefault("TestBLayerTool", None) diff --git a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py index 0bb84108b7f..4f16104c125 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingCommonConfig.py @@ -97,7 +97,7 @@ def ITkPixelClusterOnTrackToolNNSplittingCfg(flags, name='ITkPixelClusterOnTrack acc.setPrivateTools(ITkPixelClusterOnTrackTool) return acc -def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', isAmbi=False, **kwargs): +def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', **kwargs): acc = ComponentAccumulator() if 'LorentzAngleTool' not in kwargs : @@ -105,10 +105,6 @@ def ITkPixelClusterOnTrackToolCfg(flags, name='ITkPixelClusterOnTrackTool', isAm ITkPixelLorentzAngleTool = acc.popToolsAndMerge(ITkPixelLorentzAngleCfg(flags)) kwargs.setdefault("LorentzAngleTool", ITkPixelLorentzAngleTool ) - if isAmbi: - name = name + "Ambi" + flags.ITk.Tracking.ActivePass.extension - kwargs.setdefault("ClusterSplitProbabilityName","ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension) - ITkPixelClusterOnTrackTool = None if flags.ITk.Tracking.doDigitalROTCreation: ITkPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs)) @@ -138,9 +134,9 @@ def ITkBroadStripClusterOnTrackToolCfg(flags, name='ITkBroadStripClusterOnTrackT kwargs.setdefault("ErrorStrategy", 0) return ITkStripClusterOnTrackToolCfg(flags, name=name, **kwargs) -def ITkBroadPixelClusterOnTrackToolCfg(flags, name='ITkBroadPixelClusterOnTrackTool', isAmbi=False, **kwargs): +def ITkBroadPixelClusterOnTrackToolCfg(flags, name='ITkBroadPixelClusterOnTrackTool', **kwargs): kwargs.setdefault("ErrorStrategy", 0) - return ITkPixelClusterOnTrackToolCfg(flags, name, isAmbi, **kwargs) + return ITkPixelClusterOnTrackToolCfg(flags, name, **kwargs) def ITk_RIO_OnTrackErrorScalingCondAlgCfg(flags, name='ITk_RIO_OnTrackErrorScalingCondAlg', **kwargs): acc = ComponentAccumulator() @@ -162,11 +158,11 @@ def ITk_RIO_OnTrackErrorScalingCondAlgCfg(flags, name='ITk_RIO_OnTrackErrorScali acc.addCondAlgo(CompFactory.RIO_OnTrackErrorScalingCondAlg(name, **kwargs)) return acc -def ITkRotCreatorCfg(flags, name='ITkRotCreator', isAmbi=False, **kwargs): +def ITkRotCreatorCfg(flags, name='ITkRotCreator', **kwargs): acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + ToolPixelCluster = acc.popToolsAndMerge(ITkPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault("ToolPixelCluster", ToolPixelCluster) if 'ToolSCT_Cluster' not in kwargs : @@ -176,9 +172,6 @@ def ITkRotCreatorCfg(flags, name='ITkRotCreator', isAmbi=False, **kwargs): kwargs.setdefault("ToolTRT_DriftCircle", None) kwargs.setdefault('Mode', 'indet') - if isAmbi: - name = name + 'Ambi' + flags.ITk.Tracking.ActivePass.extension - acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name, **kwargs)) return acc @@ -198,10 +191,7 @@ def ITkTrackPRD_AssociationCfg(flags, name='ITkTrackPRD_Association', **kwargs): if 'AssociationTool' not in kwargs: kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(ITkPRDtoTrackMapToolGangedPixelsCfg(flags))) - prefix = name[0:name.find("TrackPRD_Association")] - suffix = flags.ITk.Tracking.ActivePass.extension - kwargs.setdefault("AssociationMapName", prefix+'PRDtoTrackMap'+suffix ) - + kwargs.setdefault("AssociationMapName", 'ITkPRDtoTrackMap' + flags.ITk.Tracking.ActivePass.extension) acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name, **kwargs)) return acc @@ -211,15 +201,14 @@ def ITkSummaryHelperNoHoleSearchCfg(flags, name='ITkSummaryHelperNoHoleSearch', from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg return ITkTrackSummaryHelperToolCfg(flags, name = name, **kwargs) -def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', isAmbi=False, **kwargs): +def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', **kwargs): acc = ComponentAccumulator() do_holes=kwargs.get("doHolesInDet",True) if 'InDetSummaryHelperTool' not in kwargs : if do_holes: from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg - tool_name = "ITkAmbiguityProcessorSplitProbSummaryHelper" + flags.ITk.Tracking.ActivePass.extension if isAmbi else "ITkSummaryHelper" - ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags, name=tool_name, isAmbi=isAmbi)) + ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags)) else: ITkSummaryHelperTool = acc.popToolsAndMerge(ITkSummaryHelperNoHoleSearchCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", ITkSummaryHelperTool) @@ -234,6 +223,19 @@ def ITkTrackSummaryToolCfg(flags, name='ITkTrackSummaryTool', isAmbi=False, **kw acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name, **kwargs), primary=True) return acc +def ITkTrackSummaryToolAmbiCfg(flags, name='ITkTrackSummaryToolAmbi', **kwargs): + acc = ComponentAccumulator() + + if 'InDetSummaryHelperTool' not in kwargs : + from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg + ITkSummaryHelperTool = acc.popToolsAndMerge(ITkTrackSummaryHelperToolCfg(flags, + ClusterSplitProbabilityName = "ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension)) + kwargs.setdefault("InDetSummaryHelperTool", ITkSummaryHelperTool) + + ITkTrackSummaryTool = acc.getPrimaryAndMerge(ITkTrackSummaryToolCfg(flags, name, **kwargs)) + acc.addPublicTool(ITkTrackSummaryTool, primary=True) + return acc + def ITkSummaryHelperSharedHitsCfg(flags, name='ITkSummaryHelperSharedHits', **kwargs): kwargs.setdefault("PixelToTPIDTool", None) kwargs.setdefault("TestBLayerTool", None) @@ -263,11 +265,11 @@ def ITkMultipleScatteringUpdatorCfg(flags, name = "ITkMultipleScatteringUpdator" acc.setPrivateTools(MultipleScatteringUpdator) return acc -def ITkMeasRecalibSTCfg(flags, name='ITkMeasRecalibST', isAmbi=False, **kwargs) : +def ITkMeasRecalibSTCfg(flags, name='ITkMeasRecalibST', **kwargs) : acc = ComponentAccumulator() if 'BroadPixelClusterOnTrackTool' not in kwargs : - ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault('BroadPixelClusterOnTrackTool', ITkBroadPixelClusterOnTrackTool) if 'BroadSCT_ClusterOnTrackTool' not in kwargs : ITkBroadStripClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadStripClusterOnTrackToolCfg(flags)) @@ -281,7 +283,7 @@ def ITkMeasRecalibSTCfg(flags, name='ITkMeasRecalibST', isAmbi=False, **kwargs) acc.setPrivateTools(MeasRecalibSteeringTool) return acc -def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase', isAmbi=False, **kwargs) : +def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase', **kwargs) : acc = ComponentAccumulator() from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg @@ -306,12 +308,7 @@ def ITkKalmanTrackFitterBaseCfg(flags, name='ITkKalmanTrackFitterBase', isAmbi=F kwargs.setdefault('BrempointAnalyserHandle', None) kwargs.setdefault('AlignableSurfaceProviderHandle',None) - if isAmbi: - if 'RecalibratorHandle' not in kwargs : - tool_name = 'ITkMeasRecalibSTAmbi' + flags.ITk.Tracking.ActivePass.extension - ITkMeasRecalibST = acc.popToolsAndMerge(ITkMeasRecalibSTCfg(flags, name=tool_name, isAmbi=isAmbi)) - kwargs.setdefault('RecalibratorHandle', ITkMeasRecalibST) - else : + if 'RecalibratorHandle' not in kwargs : ITkMeasRecalibST = acc.popToolsAndMerge(ITkMeasRecalibSTCfg(flags)) kwargs.setdefault('RecalibratorHandle', ITkMeasRecalibST) @@ -407,25 +404,22 @@ def ITkKalmanInternalDAFRefCfg(flags, name='ITkKalmanInternalDAFRef',**kwargs) : acc.setPrivateTools(ITkKalmanInternalDAF) return acc -def ITkBroadRotCreatorCfg(flags, name='ITkBroadRotCreator', isAmbi=False, **kwargs) : +def ITkBroadRotCreatorCfg(flags, name='ITkBroadRotCreator', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + ITkBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault('ToolPixelCluster', ITkBroadPixelClusterOnTrackTool) if 'ToolSCT_Cluster' not in kwargs : ITkBroadStripClusterOnTrackTool = acc.popToolsAndMerge(ITkBroadStripClusterOnTrackToolCfg(flags)) kwargs.setdefault('ToolSCT_Cluster', ITkBroadStripClusterOnTrackTool) - if isAmbi: - name = name + 'Ambi' + flags.ITk.Tracking.ActivePass.extension - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, name = name, **kwargs)) acc.setPrivateTools(ITkRotCreator) return acc -def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter', isAmbi=False, **kwargs) : +def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter', **kwargs) : acc = ComponentAccumulator() ITkFKF = acc.popToolsAndMerge(ITkFKFCfg(flags)) @@ -446,11 +440,11 @@ def ITkKalmanFitterCfg(flags, name='ITkKalmanFitter', isAmbi=False, **kwargs) : ITkKalmanInternalDAF = acc.popToolsAndMerge(ITkKalmanInternalDAFCfg(flags)) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAF) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter', isAmbi=False, **kwargs) : +def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter', **kwargs) : acc = ComponentAccumulator() ITkFKF = acc.popToolsAndMerge(ITkFKFCfg(flags)) @@ -463,11 +457,11 @@ def ITkKalmanDNAFitterCfg(flags, name='ITkKalmanDNAFitter', isAmbi=False, **kwar kwargs.setdefault('BrempointAnalyserHandle', ITkDNASeparator) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAF) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter', isAmbi=False, **kwargs) : +def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter', **kwargs) : acc = ComponentAccumulator() ITkFKFRef = acc.popToolsAndMerge(ITkFKFRefCfg(flags)) @@ -476,11 +470,11 @@ def ITkReferenceKalmanFitterCfg(flags, name='ITkReferenceKalmanFitter', isAmbi=F kwargs.setdefault('ForwardKalmanFitterHandle', ITkFKFRef) kwargs.setdefault('InternalDAFHandle', ITkKalmanInternalDAFRef) - ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + ITkKalmanTrackFitter = acc.popToolsAndMerge(ITkKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(ITkKalmanTrackFitter) return acc -def ITkDistributedKalmanFilterCfg(flags, name="ITkDistributedKalmanFilter", isAmbi=False, **kwargs) : +def ITkDistributedKalmanFilterCfg(flags, name="ITkDistributedKalmanFilter", **kwargs) : acc = ComponentAccumulator() if 'ExtrapolatorTool' not in kwargs: @@ -488,22 +482,22 @@ def ITkDistributedKalmanFilterCfg(flags, name="ITkDistributedKalmanFilter", isAm kwargs.setdefault('ExtrapolatorTool', acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags))) if 'ROTcreator' not in kwargs: - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags)) kwargs.setdefault('ROTcreator', ITkRotCreator) DistributedKalmanFilter = CompFactory.Trk.DistributedKalmanFilter(name = name, **kwargs) acc.setPrivateTools(DistributedKalmanFilter) return acc -def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', isAmbi=False, **kwargs) : +def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', **kwargs) : acc = ComponentAccumulator() if 'RotCreatorTool' not in kwargs : - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags)) kwargs.setdefault('RotCreatorTool', ITkRotCreator) if 'BroadRotCreatorTool' not in kwargs: - ITkBroadRotCreator = acc.popToolsAndMerge(ITkBroadRotCreatorCfg(flags, isAmbi=isAmbi)) + ITkBroadRotCreator = acc.popToolsAndMerge(ITkBroadRotCreatorCfg(flags)) kwargs.setdefault('BroadRotCreatorTool', ITkBroadRotCreator) if flags.Beam.Type == 'cosmics': @@ -517,11 +511,11 @@ def ITkGlobalChi2FitterCfg(flags, name='ITkGlobalChi2Fitter', isAmbi=False, **kw acc.setPrivateTools(ITkGlobalChi2Fitter) return acc -def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", isAmbi=False, **kwargs): +def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", **kwargs): acc = ComponentAccumulator() if "ToolForROTCreation" not in kwargs: - ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags, isAmbi=isAmbi)) + ITkRotCreator = acc.popToolsAndMerge(ITkRotCreatorCfg(flags)) kwargs.setdefault("ToolForROTCreation", ITkRotCreator ) kwargs.setdefault("MakePerigee", True) @@ -537,7 +531,7 @@ def ITkGaussianSumFitterCfg(flags, name="ITkGaussianSumFitter", isAmbi=False, ** acc.setPrivateTools(GaussianSumFitter) return acc -def ITkTrackFitterCfg(flags, name='ITkTrackFitter', isAmbi=False, **kwargs) : +def ITkTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs) : return { 'KalmanFitter' : ITkKalmanFitterCfg, 'KalmanDNAFitter' : ITkKalmanDNAFitterCfg, @@ -545,7 +539,26 @@ def ITkTrackFitterCfg(flags, name='ITkTrackFitter', isAmbi=False, **kwargs) : 'DistributedKalmanFilter' : ITkDistributedKalmanFilterCfg, 'GlobalChi2Fitter' : ITkGlobalChi2FitterCfg, 'GaussianSumFilter' : ITkGaussianSumFitterCfg - }[flags.ITk.Tracking.trackFitterType](flags, name, isAmbi, **kwargs) + }[flags.ITk.Tracking.trackFitterType](flags, name, **kwargs) + +def ITkTrackFitterAmbiCfg(flags, name='ITkTrackFitterAmbi', **kwargs) : + acc = ComponentAccumulator() + + ITkTrackFitter = acc.popToolsAndMerge(ITkTrackFitterCfg(flags, name, **kwargs)) + ClusterSplitProbabilityName = "ITkAmbiguityProcessorSplitProb" + flags.ITk.Tracking.ActivePass.extension + + if flags.ITk.Tracking.trackFitterType in ['KalmanFitter', 'KalmanDNAFitter', 'ReferenceKalmanFitter', 'DistributedKalmanFilter']: + ITkTrackFitter.RecalibratorHandle.BroadPixelClusterOnTrackTool.ClusterSplitProbabilityName = ClusterSplitProbabilityName + + elif flags.ITk.Tracking.trackFitterType=='GlobalChi2Fitter': + ITkTrackFitter.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + ITkTrackFitter.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + + elif flags.InDet.Tracking.trackFitterType=='GaussianSumFilter': + ITkTrackFitter.ToolForROTCreation.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + + acc.setPrivateTools(ITkTrackFitter) + return acc def ITkGlobalChi2FitterBaseCfg(flags, name='ITkGlobalChi2FitterBase', **kwargs) : acc = ComponentAccumulator() diff --git a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py index 1080b0da969..1dc0828d904 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackingSiPatternConfig.py @@ -369,17 +369,15 @@ def ITkDenseEnvironmentsAmbiguityProcessorToolCfg(flags, name = "ITkAmbiguityPro fitter_args.setdefault("BoundaryCheckTool", ITkBoundaryCheckTool) fitter_list=[] - ITkTrackFitterAmbi = acc.popToolsAndMerge(TC.ITkTrackFitterCfg(flags, + ITkTrackFitterAmbi = acc.popToolsAndMerge(TC.ITkTrackFitterAmbiCfg(flags, name='ITkTrackFitterAmbi'+flags.ITk.Tracking.ActivePass.extension, - isAmbi=True, **fitter_args)) fitter_list.append(ITkTrackFitterAmbi) ITkPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.ITkPRDtoTrackMapToolGangedPixelsCfg(flags)) ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.ITkTrackSummaryToolCfg( flags, - name = "ITkAmbiguityProcessorSplitProbTrackSummaryTool" + flags.ITk.Tracking.ActivePass.extension, - isAmbi = True)) + name = "ITkAmbiguityProcessorSplitProbTrackSummaryTool" + flags.ITk.Tracking.ActivePass.extension)) ITkAmbiTrackSelectionTool = acc.popToolsAndMerge(ITkAmbiTrackSelectionToolCfg(flags)) diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py index 22fc81e00ed..88a46531cd5 100644 --- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py @@ -27,7 +27,7 @@ def InDetPrdAssociationTool_setupCfg(flags, name='InDetPrdAssociationTool_setup' kwargs.setdefault("SetupCorrect", True) return InDetPrdAssociationToolCfg(flags, name, **kwargs) -def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', isAmbi=False, **kwargs): +def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkRecToolConfig import ITkTrackSummaryHelperToolCfg @@ -48,9 +48,6 @@ def InDetTrackSummaryHelperToolCfg(flags, name='InDetSummaryHelper', isAmbi=Fals if not flags.Detector.EnableTRT: kwargs.setdefault("TRTStrawSummarySvc", "") - if isAmbi: - kwargs.setdefault("ClusterSplitProbabilityName","InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension) - kwargs.setdefault("PixelToTPIDTool", None) kwargs.setdefault("TestBLayerTool", None) kwargs.setdefault("RunningTIDE_Ambi", flags.InDet.Tracking.doTIDE_Ambi) diff --git a/InnerDetector/InDetConfig/python/TRTExtensionConfig.py b/InnerDetector/InDetConfig/python/TRTExtensionConfig.py index 42e1ee20e7b..212ca304add 100644 --- a/InnerDetector/InDetConfig/python/TRTExtensionConfig.py +++ b/InnerDetector/InDetConfig/python/TRTExtensionConfig.py @@ -75,7 +75,7 @@ def InDetExtensionProcessorCfg(flags, SiTrackCollection=None, ExtendedTrackColle InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, 'InDetTrackFitter_TRTExtension'+flags.InDet.Tracking.ActivePass.extension, **fitter_args)) acc.addPublicTool(InDetExtensionFitter) else: - InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, 'InDetTrackFitter_TRTExtension'+flags.InDet.Tracking.ActivePass.extension, **fitter_args)) + InDetExtensionFitter = acc.popToolsAndMerge(TC.InDetTrackFitterLowPtCfg(flags, 'InDetTrackFitter_TRTExtension'+flags.InDet.Tracking.ActivePass.extension, **fitter_args)) acc.addPublicTool(InDetExtensionFitter) # # --- load scoring for extension diff --git a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py index 882af8d93c6..25fddb225c0 100644 --- a/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py +++ b/InnerDetector/InDetConfig/python/TRTSegmentFindingConfig.py @@ -177,6 +177,7 @@ def TRTSegmentFindingCfg(flags, extension = "", InputCollections = None, BarrelS if usePrdAssociationTool: acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, name = prefix + 'TrackPRD_Association' + suffix, + AssociationMapName = prefix + 'PRDtoTrackMap' + suffix, TracksName = list(InputCollections))) # # --- TRT track reconstruction diff --git a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py index a4e91300a6c..9838a923382 100644 --- a/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py +++ b/InnerDetector/InDetConfig/python/TRTStandaloneConfig.py @@ -165,6 +165,7 @@ def TRTStandaloneCfg( flags, extension = '', InputCollections = None, BarrelSegm prd_to_track_map = prefix+'PRDtoTrackMap'+extension acc.merge(TC.InDetTrackPRD_AssociationCfg(flags, name = prefix + 'TrackPRD_Association' + extension, + AssociationMapName = prd_to_track_map, TracksName = list(InputCollections))) if not flags.Beam.Type == "cosmics": diff --git a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py index ad0ecc1e439..9416ce52626 100644 --- a/InnerDetector/InDetConfig/python/TrackingCommonConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingCommonConfig.py @@ -151,17 +151,13 @@ def InDetPixelClusterOnTrackToolNNSplittingCfg(flags, name="InDetPixelClusterOnT return acc -def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", isAmbi=False, **kwargs): +def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", **kwargs): acc = ComponentAccumulator() if "LorentzAngleTool" not in kwargs: from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleCfg kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleCfg(flags))) - if isAmbi: - name = name + "Ambi" + flags.InDet.Tracking.ActivePass.extension - kwargs.setdefault("ClusterSplitProbabilityName","InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension) - if flags.InDet.Tracking.doDigitalROTCreation: PixelClusterOnTrackTool = acc.popToolsAndMerge(InDetPixelClusterOnTrackToolDigitalCfg(flags, name, **kwargs)) else: @@ -170,7 +166,6 @@ def InDetPixelClusterOnTrackToolCfg(flags, name="InDetPixelClusterOnTrackTool", acc.setPrivateTools(PixelClusterOnTrackTool) return acc - def InDetSCT_ClusterOnTrackToolCfg(flags, name='InDetSCT_ClusterOnTrackTool', **kwargs): acc = ComponentAccumulator() @@ -189,9 +184,9 @@ def InDetBroadSCT_ClusterOnTrackToolCfg(flags, name='InDetBroadSCT_ClusterOnTrac kwargs.setdefault("ErrorStrategy", 0) return InDetSCT_ClusterOnTrackToolCfg(flags, name=name, **kwargs) -def InDetBroadPixelClusterOnTrackToolCfg(flags, name='InDetBroadPixelClusterOnTrackTool', isAmbi=False, **kwargs): +def InDetBroadPixelClusterOnTrackToolCfg(flags, name='InDetBroadPixelClusterOnTrackTool', **kwargs): kwargs.setdefault("ErrorStrategy", 0) - return InDetPixelClusterOnTrackToolCfg(flags, name, isAmbi, **kwargs) + return InDetPixelClusterOnTrackToolCfg(flags, name, **kwargs) def RIO_OnTrackErrorScalingCondAlgCfg(flags, name='RIO_OnTrackErrorScalingCondAlg', **kwargs): acc = ComponentAccumulator() @@ -245,7 +240,7 @@ def InDetBroadTRT_DriftCircleOnTrackToolCfg(name='InDetBroadTRT_DriftCircleOnTra acc.setPrivateTools(CompFactory.InDet.TRT_DriftCircleOnTrackNoDriftTimeTool(name, **kwargs)) return acc -def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): +def InDetRotCreatorCfg(flags, name='InDetRotCreator', **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkTrackingCommonConfig import ITkRotCreatorCfg @@ -258,9 +253,9 @@ def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): if 'ToolPixelCluster' not in kwargs : if use_broad_cluster_pix : - ToolPixelCluster= acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + ToolPixelCluster= acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags)) else: - ToolPixelCluster= acc.popToolsAndMerge(InDetPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + ToolPixelCluster= acc.popToolsAndMerge(InDetPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault("ToolPixelCluster", ToolPixelCluster) if 'ToolSCT_Cluster' not in kwargs : @@ -275,9 +270,6 @@ def InDetRotCreatorCfg(flags, name='InDetRotCreator', isAmbi=False, **kwargs): kwargs.setdefault('Mode', 'indet') - if isAmbi: - name = name + 'Ambi' + flags.InDet.Tracking.ActivePass.extension - acc.setPrivateTools(CompFactory.Trk.RIO_OnTrackCreator(name, **kwargs)) return acc @@ -323,9 +315,9 @@ def InDetTrackPRD_AssociationCfg(flags, name='InDetTrackPRD_Association', **kwar if 'AssociationTool' not in kwargs: kwargs.setdefault("AssociationTool", acc.popToolsAndMerge(InDetPRDtoTrackMapToolGangedPixelsCfg(flags))) - prefix = name[0:name.find("TrackPRD_Association")] - suffix = flags.InDet.Tracking.ActivePass.extension - kwargs.setdefault("AssociationMapName", prefix + "PRDtoTrackMap" + suffix) + if "AssociationMapName" not in kwargs: + kwargs.setdefault("AssociationMapName", "InDetPRDtoTrackMap" + flags.InDet.Tracking.ActivePass.extension) + acc.addEventAlgo(CompFactory.InDet.InDetTrackPRD_Association(name, **kwargs)) return acc @@ -343,7 +335,7 @@ def InDetSummaryHelperNoHoleSearchCfg(flags, name='InDetSummaryHelperNoHoleSearc from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg return InDetTrackSummaryHelperToolCfg(flags, name = name, **kwargs) -def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', isAmbi=False, **kwargs): +def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', **kwargs): if flags.Detector.GeometryITk: name = name.replace("InDet", "ITk") from InDetConfig.ITkTrackingCommonConfig import ITkTrackSummaryToolCfg @@ -355,8 +347,7 @@ def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', isAmbi=False, if 'InDetSummaryHelperTool' not in kwargs : if do_holes: from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg - tool_name = "InDetAmbiguityProcessorSplitProbSummaryHelper" + flags.InDet.Tracking.ActivePass.extension if isAmbi else "InDetSummaryHelper" - InDetSummaryHelperTool = acc.popToolsAndMerge(InDetTrackSummaryHelperToolCfg(flags, name=tool_name, isAmbi=isAmbi)) + InDetSummaryHelperTool = acc.popToolsAndMerge(InDetTrackSummaryHelperToolCfg(flags)) else: InDetSummaryHelperTool = acc.popToolsAndMerge(InDetSummaryHelperNoHoleSearchCfg(flags)) kwargs.setdefault("InDetSummaryHelperTool", InDetSummaryHelperTool) @@ -372,6 +363,20 @@ def InDetTrackSummaryToolCfg(flags, name='InDetTrackSummaryTool', isAmbi=False, acc.addPublicTool(CompFactory.Trk.TrackSummaryTool(name, **kwargs), primary=True) return acc +def InDetTrackSummaryToolAmbiCfg(flags, name='InDetTrackSummaryToolAmbi', **kwargs): + acc = ComponentAccumulator() + + if 'InDetSummaryHelperTool' not in kwargs : + from InDetConfig.InDetRecToolConfig import InDetTrackSummaryHelperToolCfg + InDetSummaryHelperTool = acc.popToolsAndMerge(InDetTrackSummaryHelperToolCfg(flags, + name = "InDetAmbiguityProcessorSplitProbSummaryHelper" + flags.InDet.Tracking.ActivePass.extension, + ClusterSplitProbabilityName = "InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension)) + kwargs.setdefault("InDetSummaryHelperTool", InDetSummaryHelperTool) + + InDetTrackSummaryTool = acc.getPrimaryAndMerge(InDetTrackSummaryToolCfg(flags, name, **kwargs)) + acc.addPublicTool(InDetTrackSummaryTool, primary=True) + return acc + def PixeldEdxAlg(flags, name = "PixeldEdxAlg", **kwargs): acc = ComponentAccumulator() acc.merge(addFoldersSplitOnline(flags, "PIXEL", "/PIXEL/PixdEdx", "/PIXEL/PixdEdx", className='AthenaAttributeList')) @@ -485,11 +490,11 @@ def InDetMultipleScatteringUpdatorCfg(name = "InDetMultipleScatteringUpdator", * acc.setPrivateTools(MultipleScatteringUpdator) return acc -def InDetMeasRecalibSTCfg(flags, name='InDetMeasRecalibST', isAmbi=False, **kwargs) : +def InDetMeasRecalibSTCfg(flags, name='InDetMeasRecalibST', **kwargs) : acc = ComponentAccumulator() if 'BroadPixelClusterOnTrackTool' not in kwargs : - InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault('BroadPixelClusterOnTrackTool', InDetBroadPixelClusterOnTrackTool) if 'BroadSCT_ClusterOnTrackTool' not in kwargs : InDetBroadSCT_ClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadSCT_ClusterOnTrackToolCfg(flags)) @@ -502,7 +507,7 @@ def InDetMeasRecalibSTCfg(flags, name='InDetMeasRecalibST', isAmbi=False, **kwar acc.setPrivateTools(MeasRecalibSteeringTool) return acc -def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase', isAmbi=False, **kwargs) : +def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase', **kwargs) : acc = ComponentAccumulator() from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg @@ -520,12 +525,7 @@ def InDetKalmanTrackFitterBaseCfg(flags, name='InDetKalmanTrackFitterBase', isAm kwargs.setdefault('BrempointAnalyserHandle', None) kwargs.setdefault('AlignableSurfaceProviderHandle',None) - if isAmbi: - if 'RecalibratorHandle' not in kwargs : - tool_name = 'InDetMeasRecalibSTAmbi'+flags.InDet.Tracking.ActivePass.extension - InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags, name=tool_name, isAmbi=isAmbi)) - kwargs.setdefault('RecalibratorHandle', InDetMeasRecalibST) - else : + if 'RecalibratorHandle' not in kwargs : InDetMeasRecalibST = acc.popToolsAndMerge(InDetMeasRecalibSTCfg(flags)) kwargs.setdefault('RecalibratorHandle', InDetMeasRecalibST) @@ -575,11 +575,11 @@ def KalmanInternalDAFRef(name='KalmanInternalDAFRef',**kwargs) : kwargs.setdefault('BackwardSmoother', InDetBKS()) return KalmanInternalDAF(name=name,**kwargs) -def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', isAmbi=False, **kwargs) : +def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', **kwargs) : acc = ComponentAccumulator() if 'ToolPixelCluster' not in kwargs : - InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags, isAmbi=isAmbi)) + InDetBroadPixelClusterOnTrackTool = acc.popToolsAndMerge(InDetBroadPixelClusterOnTrackToolCfg(flags)) kwargs.setdefault('ToolPixelCluster', InDetBroadPixelClusterOnTrackTool) if 'ToolSCT_Cluster' not in kwargs : @@ -591,14 +591,11 @@ def InDetBroadRotCreatorCfg(flags, name='InDetBroadInDetRotCreator', isAmbi=Fals InDetBroadTRT_DriftCircleOnTrackTool = acc.popToolsAndMerge(InDetBroadTRT_DriftCircleOnTrackToolCfg()) kwargs.setdefault('ToolTRT_DriftCircle', InDetBroadTRT_DriftCircleOnTrackTool) - if isAmbi: - name = name + 'Ambi' + flags.InDet.Tracking.ActivePass.extension - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, name = name, **kwargs)) acc.setPrivateTools(InDetRotCreator) return acc -def KalmanFitterCfg(flags, name='KalmanFitter', isAmbi=False, **kwargs) : +def KalmanFitterCfg(flags, name='KalmanFitter', **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKF()) @@ -612,11 +609,11 @@ def KalmanFitterCfg(flags, name='KalmanFitter', isAmbi=False, **kwargs) : kwargs.setdefault('InternalDAFHandle', KalmanInternalDAF()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter', isAmbi=False, **kwargs) : +def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter', **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKF()) @@ -624,21 +621,21 @@ def KalmanDNAFitterCfg(flags, name='KalmanDNAFitter', isAmbi=False, **kwargs) : kwargs.setdefault('BrempointAnalyserHandle', InDetDNASeparator()) kwargs.setdefault('InternalDAFHandle', KalmanInternalDAF()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def ReferenceKalmanFitterCfg(flags, name='ReferenceKalmanFitter', isAmbi=False, **kwargs) : +def ReferenceKalmanFitterCfg(flags, name='ReferenceKalmanFitter', **kwargs) : acc = ComponentAccumulator() kwargs.setdefault('ForwardKalmanFitterHandle', InDetFKFRef()) kwargs.setdefault('InternalDAFHandle', KalmanInternalDAFRef()) - InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, isAmbi, **kwargs)) + InDetKalmanTrackFitterBase = acc.popToolsAndMerge(InDetKalmanTrackFitterBaseCfg(flags, name, **kwargs)) acc.setPrivateTools(InDetKalmanTrackFitterBase) return acc -def DistributedKalmanFilterCfg(flags, name="DistributedKalmanFilter", isAmbi=False, **kwargs) : +def DistributedKalmanFilterCfg(flags, name="DistributedKalmanFilter", **kwargs) : acc = ComponentAccumulator() if 'ExtrapolatorTool' not in kwargs : @@ -646,21 +643,21 @@ def DistributedKalmanFilterCfg(flags, name="DistributedKalmanFilter", isAmbi=Fal kwargs.setdefault('ExtrapolatorTool', acc.getPrimaryAndMerge(InDetExtrapolatorCfg(flags))) if 'ROTcreator' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags)) kwargs.setdefault('ROTcreator', InDetRotCreator) DistributedKalmanFilter = CompFactory.Trk.DistributedKalmanFilter(name = name, **kwargs) acc.setPrivateTools(DistributedKalmanFilter) return acc -def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', isAmbi=False, **kwargs) : +def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', **kwargs) : acc = ComponentAccumulator() if 'RotCreatorTool' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags)) kwargs.setdefault('RotCreatorTool', InDetRotCreator) if 'BroadRotCreatorTool' not in kwargs: - InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) # PHF cut during fit iterations to save CPU time @@ -693,11 +690,11 @@ def InDetGlobalChi2FitterCfg(flags, name='InDetGlobalChi2Fitter', isAmbi=False, acc.setPrivateTools(InDetGlobalChi2FitterBase) return acc -def GaussianSumFitterCfg(flags, name="GaussianSumFitter", isAmbi=False, **kwargs): +def GaussianSumFitterCfg(flags, name="GaussianSumFitter", **kwargs): acc = ComponentAccumulator() if "ToolForROTCreation" not in kwargs: - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags)) kwargs.setdefault("ToolForROTCreation", InDetRotCreator) kwargs.setdefault("MakePerigee", True) @@ -713,7 +710,7 @@ def GaussianSumFitterCfg(flags, name="GaussianSumFitter", isAmbi=False, **kwargs acc.setPrivateTools(GaussianSumFitter) return acc -def InDetTrackFitterCfg(flags, name='InDetTrackFitter', isAmbi=False, **kwargs) : +def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs) : return { 'KalmanFitter' : KalmanFitterCfg, 'KalmanDNAFitter' : KalmanDNAFitterCfg, @@ -721,8 +718,31 @@ def InDetTrackFitterCfg(flags, name='InDetTrackFitter', isAmbi=False, **kwargs) 'DistributedKalmanFilter' : DistributedKalmanFilterCfg, 'GlobalChi2Fitter' : InDetGlobalChi2FitterCfg, 'GaussianSumFilter' : GaussianSumFitterCfg - }[flags.InDet.Tracking.trackFitterType](flags, name, isAmbi, **kwargs) + }[flags.InDet.Tracking.trackFitterType](flags, name, **kwargs) +def InDetTrackFitterAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs) : + acc = ComponentAccumulator() + + InDetTrackFitter = acc.popToolsAndMerge(InDetTrackFitterCfg(flags, name, **kwargs)) + ClusterSplitProbabilityName = "InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension + + if flags.InDet.Tracking.trackFitterType in ['KalmanFitter', 'KalmanDNAFitter', 'ReferenceKalmanFitter', 'DistributedKalmanFilter']: + InDetTrackFitter.RecalibratorHandle.BroadPixelClusterOnTrackTool.ClusterSplitProbabilityName = ClusterSplitProbabilityName + + elif flags.InDet.Tracking.trackFitterType=='GlobalChi2Fitter': + InDetTrackFitter.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + InDetTrackFitter.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + # Name change for tools can be cleaned ultimately when config is validated + InDetTrackFitter.RotCreatorTool.name = "InDetRotCreatorAmbi" + flags.InDet.Tracking.ActivePass.extension + InDetTrackFitter.BroadRotCreatorTool.name = "InDetBroadInDetRotCreatorAmbi" + flags.InDet.Tracking.ActivePass.extension + InDetTrackFitter.RotCreatorTool.ToolPixelCluster.name = "InDetPixelClusterOnTrackToolAmbi" + flags.InDet.Tracking.ActivePass.extension + InDetTrackFitter.BroadRotCreatorTool.ToolPixelCluster.name = "InDetBroadPixelClusterOnTrackToolAmbi" + flags.InDet.Tracking.ActivePass.extension + + elif flags.InDet.Tracking.trackFitterType=='GaussianSumFilter': + InDetTrackFitter.ToolForROTCreation.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + + acc.setPrivateTools(InDetTrackFitter) + return acc def InDetGlobalChi2FitterBaseCfg(flags, name='GlobalChi2FitterBase', **kwargs): acc = ComponentAccumulator() @@ -816,15 +836,14 @@ def InDetTrackFitterTRTCfg(flags, name='InDetTrackFitterTRT', **kwargs) : return acc -def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', isAmbi=False, **kwargs) : +def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', **kwargs) : acc = ComponentAccumulator() if 'RotCreatorTool' not in kwargs : - InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetRotCreator = acc.popToolsAndMerge(InDetRotCreatorCfg(flags)) kwargs.setdefault('RotCreatorTool', InDetRotCreator) - if 'BroadRotCreatorTool' not in kwargs: - InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags, isAmbi=isAmbi)) + InDetBroadRotCreator = acc.popToolsAndMerge(InDetBroadRotCreatorCfg(flags)) kwargs.setdefault('BroadRotCreatorTool', InDetBroadRotCreator) kwargs.setdefault('OutlierCut', 5.0) @@ -836,14 +855,28 @@ def InDetGlobalChi2FitterLowPtCfg(flags, name='InDetGlobalChi2FitterLowPt', isAm acc.setPrivateTools(InDetGlobalChi2FitterBase) return acc -def InDetTrackFitterLowPt(flags, name='InDetTrackFitter', isAmbi=False, **kwargs) : +def InDetTrackFitterLowPtCfg(flags, name='InDetTrackFitter', **kwargs) : acc = ComponentAccumulator() if flags.InDet.Tracking.trackFitterType != 'GlobalChi2Fitter' : InDetTrackFitter = acc.popToolsAndMerge(InDetTrackFitterCfg(flags, name, **kwargs)) acc.setPrivateTools(InDetTrackFitter) else : - InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(InDetGlobalChi2FitterLowPtCfg(flags, name, isAmbi, **kwargs)) + InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(InDetGlobalChi2FitterLowPtCfg(flags, name, **kwargs)) + acc.setPrivateTools(InDetGlobalChi2FitterLowPt) + return acc + +def InDetTrackFitterLowPtAmbiCfg(flags, name='InDetTrackFitterAmbi', **kwargs) : + acc = ComponentAccumulator() + + if flags.InDet.Tracking.trackFitterType != 'GlobalChi2Fitter' : + InDetTrackFitter = acc.popToolsAndMerge(InDetTrackFitterAmbiCfg(flags, name, **kwargs)) + acc.setPrivateTools(InDetTrackFitter) + else : + InDetGlobalChi2FitterLowPt = acc.popToolsAndMerge(InDetGlobalChi2FitterLowPtCfg(flags, name, **kwargs)) + ClusterSplitProbabilityName = "InDetAmbiguityProcessorSplitProb" + flags.InDet.Tracking.ActivePass.extension + InDetGlobalChi2FitterLowPt.RotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName + InDetGlobalChi2FitterLowPt.BroadRotCreatorTool.ToolPixelCluster.ClusterSplitProbabilityName = ClusterSplitProbabilityName acc.setPrivateTools(InDetGlobalChi2FitterLowPt) return acc diff --git a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py index c96b56d0ca1..ecf06e2a4aa 100644 --- a/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py +++ b/InnerDetector/InDetConfig/python/TrackingSiPatternConfig.py @@ -431,15 +431,13 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces fitter_list=[] if flags.InDet.Tracking.ActivePass.isLowPt: - InDetTrackFitterLowPt = acc.popToolsAndMerge(TC.InDetTrackFitterLowPt(flags, - name='InDetTrackFitterLowPt'+flags.InDet.Tracking.ActivePass.extension, - isAmbi=True, - **fitter_args)) + InDetTrackFitterLowPt = acc.popToolsAndMerge(TC.InDetTrackFitterLowPtAmbiCfg(flags, + name='InDetTrackFitterLowPt'+flags.InDet.Tracking.ActivePass.extension, + **fitter_args)) fitter_list.append(InDetTrackFitterLowPt) else: - InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterCfg(flags, + InDetTrackFitterAmbi = acc.popToolsAndMerge(TC.InDetTrackFitterAmbiCfg(flags, name='InDetTrackFitterAmbi'+flags.InDet.Tracking.ActivePass.extension, - isAmbi=True, **fitter_args)) fitter_list.append(InDetTrackFitterAmbi) @@ -459,9 +457,8 @@ def DenseEnvironmentsAmbiguityProcessorToolCfg(flags, name="InDetAmbiguityProces InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)) - ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg(flags, - name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension, - isAmbi = True)) + ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolAmbiCfg(flags, + name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension)) InDetAmbiTrackSelectionTool = acc.popToolsAndMerge(InDetAmbiTrackSelectionToolCfg(flags)) @@ -504,9 +501,8 @@ def SimpleAmbiguityProcessorToolCfg(flags, name = "InDetAmbiguityProcessor", Clu InDetPRDtoTrackMapToolGangedPixels = acc.popToolsAndMerge(TC.InDetPRDtoTrackMapToolGangedPixelsCfg(flags)) - ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolCfg(flags, - name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension, - isAmbi = True)) + ambi_track_summary_tool = acc.getPrimaryAndMerge(TC.InDetTrackSummaryToolAmbiCfg(flags, + name = "InDetAmbiguityProcessorSplitProbTrackSummaryTool" + flags.InDet.Tracking.ActivePass.extension)) InDetAmbiTrackSelectionTool = acc.popToolsAndMerge(InDetAmbiTrackSelectionToolCfg(flags)) -- GitLab