diff --git a/InnerDetector/InDetConfig/python/InDetAmbiTrackSelectionToolConfig.py b/InnerDetector/InDetConfig/python/InDetAmbiTrackSelectionToolConfig.py index 494de418d298e7fc437917b4ff92d243b617e553..3ef09ba1317b6096c9f66dd332d903cf4a22553a 100644 --- a/InnerDetector/InDetConfig/python/InDetAmbiTrackSelectionToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetAmbiTrackSelectionToolConfig.py @@ -130,11 +130,23 @@ def InDetTRTAmbiTrackSelectionToolCfg( CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs)) return acc +def TrigAmbiTrackSelectionToolCfg( + flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs): + + if flags.Detector.GeometryITk: + kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters[0]) #TODO eta-dependant cuts + kwargs.setdefault("minNotShared", + flags.Tracking.ActiveConfig.minSiNotShared[0]) + kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared[0]) + tool = ITkTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs) + else: + tool = InDetTrigAmbiTrackSelectionToolCfg(flags, name, **kwargs) + + return tool def InDetTrigAmbiTrackSelectionToolCfg( flags, name='InDetTrigAmbiTrackSelectionTool', **kwargs): acc = ComponentAccumulator() - # TODO add AmbiTrackSelectionTool for cosmics if "DriftCircleCutTool" not in kwargs: from InDetConfig.InDetTrackSelectorToolConfig import ( @@ -234,3 +246,34 @@ def ITkAmbiTrackSelectionToolCfg( acc.setPrivateTools(CompFactory.InDet.InDetDenseEnvAmbiTrackSelectionTool( name=name+flags.Tracking.ActiveConfig.extension, **kwargs)) return acc + +def ITkTrigAmbiTrackSelectionToolCfg( + flags, name="ITkTrigAmbiTrackSelectionTool", **kwargs): + + acc = ComponentAccumulator() + + if "DriftCircleCutTool" not in kwargs: + from InDetConfig.InDetTrackSelectorToolConfig import ( + InDetTrigTRTDriftCircleCutToolCfg) + DriftCircleCutTool = acc.popToolsAndMerge( + InDetTrigTRTDriftCircleCutToolCfg(flags)) + acc.addPublicTool(DriftCircleCutTool) + kwargs.setdefault("DriftCircleCutTool", DriftCircleCutTool) + + if "AssociationTool" not in kwargs: + from InDetConfig.InDetAssociationToolsConfig import ( + TrigITkPRDtoTrackMapToolGangedPixelsCfg) + kwargs.setdefault("AssociationTool", acc.popToolsAndMerge( + TrigITkPRDtoTrackMapToolGangedPixelsCfg(flags))) + + kwargs.setdefault("minHits", flags.Tracking.ActiveConfig.minClusters) + kwargs.setdefault("minNotShared", + flags.Tracking.ActiveConfig.minSiNotShared) + kwargs.setdefault("maxShared", flags.Tracking.ActiveConfig.maxShared) + kwargs.setdefault("minTRTHits", 0) # used for Si only tracking !!! + kwargs.setdefault("Cosmics", False) # there is a different instance + kwargs.setdefault("UseParameterization", False) + + acc.setPrivateTools( + CompFactory.InDet.InDetAmbiTrackSelectionTool(name, **kwargs)) + return acc diff --git a/InnerDetector/InDetConfig/python/InDetAssociationToolsConfig.py b/InnerDetector/InDetConfig/python/InDetAssociationToolsConfig.py index 77612630e27eab3c2d3a869e971be51ebac68b02..8110e0ea61bdbeb1d84750c0207cb788d287d51d 100644 --- a/InnerDetector/InDetConfig/python/InDetAssociationToolsConfig.py +++ b/InnerDetector/InDetConfig/python/InDetAssociationToolsConfig.py @@ -46,3 +46,7 @@ def ITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedP kwargs.setdefault("addTRToutliers", False) acc.setPrivateTools(CompFactory.InDet.InDetPRDtoTrackMapToolGangedPixels(name, **kwargs)) return acc + +def TrigITkPRDtoTrackMapToolGangedPixelsCfg(flags, name='ITkPRDtoTrackMapToolGangedPixels', **kwargs): + kwargs.setdefault("PixelClusterAmbiguitiesMapName", flags.Trigger.ITkTracking.ClusterAmbiguitiesMap) + return ITkPRDtoTrackMapToolGangedPixelsCfg(flags, name, **kwargs) diff --git a/InnerDetector/InDetConfig/python/InDetExtensionProcessorConfig.py b/InnerDetector/InDetConfig/python/InDetExtensionProcessorConfig.py index 6e25a630bbf05bcb4234fcedcd39ae62ce169895..78bc9099082126b88b3491207382a4deb19c0777 100644 --- a/InnerDetector/InDetConfig/python/InDetExtensionProcessorConfig.py +++ b/InnerDetector/InDetConfig/python/InDetExtensionProcessorConfig.py @@ -77,9 +77,9 @@ def TrigInDetExtensionProcessorCfg(flags, name="InDetTrigMTExtensionProcessor", if "ScoringTool" not in kwargs: from InDetConfig.InDetTrackScoringToolsConfig import ( - InDetTrigAmbiScoringToolCfg) + TrigAmbiScoringToolCfg) InDetExtenScoringTool = acc.popToolsAndMerge( - InDetTrigAmbiScoringToolCfg(flags, + TrigAmbiScoringToolCfg(flags, name="TrigAmbiguityScoringTool"+flags.Tracking.ActiveConfig.input_name)) acc.addPublicTool(InDetExtenScoringTool) kwargs.setdefault("ScoringTool", InDetExtenScoringTool) diff --git a/InnerDetector/InDetConfig/python/InDetPrepRawDataFormationConfig.py b/InnerDetector/InDetConfig/python/InDetPrepRawDataFormationConfig.py index b41341a323bf0edffbf32fdfb55be3a40fe8d9a7..f25b90c9c17d0f0e487c627efa9cf9259a39e64b 100644 --- a/InnerDetector/InDetConfig/python/InDetPrepRawDataFormationConfig.py +++ b/InnerDetector/InDetConfig/python/InDetPrepRawDataFormationConfig.py @@ -104,7 +104,7 @@ def TrigPixelClusterizationCfg(flags, RoIs, name="InDetPixelClusterization", **k kwargs.setdefault("gangedAmbiguitiesFinder", acc.popToolsAndMerge( PixelGangedAmbiguitiesFinderCfg(flags))) - kwargs.setdefault("AmbiguitiesMap", "TrigPixelClusterAmbiguitiesMap") + kwargs.setdefault("AmbiguitiesMap", flags.Trigger.InDetTracking.ClusterAmbiguitiesMap) kwargs.setdefault("ClustersName", "PixelTrigClusters") kwargs.setdefault("isRoI_Seeded", True) kwargs.setdefault("RoIs", RoIs) @@ -146,6 +146,7 @@ def ITkTrigPixelClusterizationCfg(flags, name = "ITkTrigPixelClusterization", ro RoIs=roisKey, ClustersName = "ITkTrigPixelClusters", ClusterContainerCacheKey=flags.Trigger.ITkTracking.PixelClusterCacheKey, + AmbiguitiesMap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap, RegSelTool= acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags)))) return acc diff --git a/InnerDetector/InDetConfig/python/InDetTrackScoringToolsConfig.py b/InnerDetector/InDetConfig/python/InDetTrackScoringToolsConfig.py index 0f5e5ea1af50058767e072971302e69cdd8a783e..393d2ae6d878b451931bface1c7b90131854bb97 100644 --- a/InnerDetector/InDetConfig/python/InDetTrackScoringToolsConfig.py +++ b/InnerDetector/InDetConfig/python/InDetTrackScoringToolsConfig.py @@ -96,6 +96,17 @@ def InDetTRT_SeededScoringToolCfg( return InDetAmbiScoringToolBaseCfg(flags, name, **kwargs) +def TrigAmbiScoringToolCfg( + flags, + name='TrigAmbiguityScoringTool', **kwargs): + + if flags.Detector.GeometryITk: + tool = ITkTrigAmbiScoringToolCfg(flags, name, **kwargs) + else: + tool = InDetTrigAmbiScoringToolCfg(flags, name, **kwargs) + + return tool + def InDetTrigAmbiScoringToolCfg( flags, @@ -142,9 +153,7 @@ def InDetTrigAmbiScoringToolCfg( kwargs.setdefault("minTRTPrecisionFraction", 0) - acc.setPrivateTools(ambiScoringFactory( - name=name+flags.Tracking.ActiveConfig.input_name, - **kwargs)) + acc.setPrivateTools(ambiScoringFactory(name=name, **kwargs)) return acc @@ -321,6 +330,9 @@ def ITkAmbiScoringToolCfg(flags, name='ITkAmbiScoringTool', **kwargs): name + flags.Tracking.ActiveConfig.extension, **kwargs)) return acc +def ITkTrigAmbiScoringToolCfg(flags, name='ITkTrigAmbiScoringTool', **kwargs): + kwargs.setdefault("InDetEtaDependentCutsSvc", None) #TODO + return ITkAmbiScoringToolCfg(flags, name, **kwargs) def ITkCosmicsScoringToolCfg(flags, name='ITkCosmicsScoringTool', **kwargs): acc = ComponentAccumulator() diff --git a/InnerDetector/InDetConfig/python/SiClusterOnTrackTool_PixelConfig.py b/InnerDetector/InDetConfig/python/SiClusterOnTrackTool_PixelConfig.py index 88a7ceb0df355a0f875473b06a414e2c54d78e77..3e0a24d99f1f3e2188a3355c9c2995b5e8b0fc60 100644 --- a/InnerDetector/InDetConfig/python/SiClusterOnTrackTool_PixelConfig.py +++ b/InnerDetector/InDetConfig/python/SiClusterOnTrackTool_PixelConfig.py @@ -126,7 +126,7 @@ def TrigPixelClusterOnTrackToolBaseCfg( kwargs.setdefault("ErrorStrategy", 2) kwargs.setdefault("SplitClusterAmbiguityMap", - "TrigPixelClusterAmbiguitiesMap") + flags.Trigger.InDetTracking.ClusterAmbiguitiesMap) acc.setPrivateTools( CompFactory.InDet.PixelClusterOnTrackTool(name, **kwargs)) diff --git a/Tracking/TrkConfig/python/TrackingPassFlags.py b/Tracking/TrkConfig/python/TrackingPassFlags.py index abd093661829f328b1290e0624cfda9dde0a7b80..edd6ab130e3a7f88f1ce5109b2ed582465e27698 100644 --- a/Tracking/TrkConfig/python/TrackingPassFlags.py +++ b/Tracking/TrkConfig/python/TrackingPassFlags.py @@ -136,6 +136,8 @@ def createITkTrackingPassFlags(): icf.addFlag("doZBoundary" , True) icf.addFlag("doAmbiguityProcessorTrackFit", True) + icf.addFlag("useTIDE_Ambi", lambda pcf: pcf.Tracking.doTIDE_Ambi) + # Maximum bin set to 9999 instead of four to prevent out of bounds lookups icf.addFlag("etaBins" , [-1.0, 2.0, 2.6, 9999.0]) icf.addFlag("maxEta" , 4.0) diff --git a/Tracking/TrkConfig/python/TrkAmbiguityProcessorConfig.py b/Tracking/TrkConfig/python/TrkAmbiguityProcessorConfig.py index 0addf3cc574ff970c7c813c1608ccaa7303172ce..1ba1b5f3eb048c63cdbc0a0bc912af5a7f9bfe3f 100644 --- a/Tracking/TrkConfig/python/TrkAmbiguityProcessorConfig.py +++ b/Tracking/TrkConfig/python/TrkAmbiguityProcessorConfig.py @@ -183,9 +183,9 @@ def SimpleAmbiguityProcessorTool_Trig_Cfg( if "ScoringTool" not in kwargs: from InDetConfig.InDetTrackScoringToolsConfig import ( - InDetTrigAmbiScoringToolCfg) + TrigAmbiScoringToolCfg) kwargs.setdefault("ScoringTool", acc.popToolsAndMerge( - InDetTrigAmbiScoringToolCfg(flags))) + TrigAmbiScoringToolCfg(flags, name="TrigAmbiguityScoringTool"+flags.Tracking.ActiveConfig.input_name))) if "TrackSummaryTool" not in kwargs: from TrkConfig.TrkTrackSummaryToolConfig import ( @@ -199,16 +199,77 @@ def SimpleAmbiguityProcessorTool_Trig_Cfg( kwargs.setdefault("AssociationTool", acc.popToolsAndMerge( TrigPRDtoTrackMapToolGangedPixelsCfg(flags))) + + + if "SelectionTool" not in kwargs: + from InDetConfig.InDetAmbiTrackSelectionToolConfig import ( + TrigAmbiTrackSelectionToolCfg,InDetTrigAmbiTrackSelectionToolCosmicsCfg) + + if flags.Tracking.ActiveConfig.input_name == "cosmics": + kwargs.setdefault("SelectionTool", acc.popToolsAndMerge( + InDetTrigAmbiTrackSelectionToolCosmicsCfg(flags))) + else: + kwargs.setdefault("SelectionTool", acc.popToolsAndMerge( + TrigAmbiTrackSelectionToolCfg(flags,DriftCircleCutTool=None))) + + acc.setPrivateTools( + CompFactory.Trk.SimpleAmbiguityProcessorTool(name, **kwargs)) + return acc + + +def SimpleAmbiguityProcessorTool_ITkTrig_Cfg( + flags, + name='ITkTrigAmbiguityProcessor', + **kwargs): + import AthenaCommon.SystemOfUnits as Units + + acc = ComponentAccumulator() + + kwargs.setdefault("SuppressTrackFit", ( + not flags.Tracking.ActiveConfig.doAmbiguityProcessorTrackFit)) + kwargs.setdefault("SuppressHoleSearch", False) + kwargs.setdefault("tryBremFit", + flags.Tracking.ActiveConfig.doBremRecoverySi) + kwargs.setdefault("pTminBrem", 5*Units.GeV) + kwargs.setdefault("MatEffects", 3) + + if "Fitter" not in kwargs: + from TrkConfig.CommonTrackFitterConfig import ( + ITkTrackFitterCfg) + ITkTrackFitter = acc.popToolsAndMerge( + ITkTrackFitterCfg( + flags, + name=('ITkTrackFitterAmbi'))) + kwargs.setdefault("Fitter", ITkTrackFitter) + + + if "ScoringTool" not in kwargs: + from InDetConfig.InDetTrackScoringToolsConfig import ( + TrigAmbiScoringToolCfg) + kwargs.setdefault("ScoringTool", acc.popToolsAndMerge( + TrigAmbiScoringToolCfg(flags, name="TrigAmbiguityScoringTool"+flags.Tracking.ActiveConfig.input_name))) + + if "TrackSummaryTool" not in kwargs: + from TrkConfig.TrkTrackSummaryToolConfig import ITkTrackSummaryToolCfg + kwargs.setdefault("TrackSummaryTool", acc.popToolsAndMerge( + ITkTrackSummaryToolCfg(flags))) + + if "AssociationTool" not in kwargs: + from InDetConfig.InDetAssociationToolsConfig import ( + TrigITkPRDtoTrackMapToolGangedPixelsCfg) + kwargs.setdefault("AssociationTool", acc.popToolsAndMerge( + TrigITkPRDtoTrackMapToolGangedPixelsCfg(flags))) + if "SelectionTool" not in kwargs: from InDetConfig.InDetAmbiTrackSelectionToolConfig import ( - InDetTrigAmbiTrackSelectionToolCfg,InDetTrigAmbiTrackSelectionToolCosmicsCfg) + TrigAmbiTrackSelectionToolCfg,InDetTrigAmbiTrackSelectionToolCosmicsCfg) if flags.Tracking.ActiveConfig.input_name == "cosmics": kwargs.setdefault("SelectionTool", acc.popToolsAndMerge( InDetTrigAmbiTrackSelectionToolCosmicsCfg(flags))) else: kwargs.setdefault("SelectionTool", acc.popToolsAndMerge( - InDetTrigAmbiTrackSelectionToolCfg(flags,DriftCircleCutTool=None))) + TrigAmbiTrackSelectionToolCfg(flags,DriftCircleCutTool=None))) acc.setPrivateTools( CompFactory.Trk.SimpleAmbiguityProcessorTool(name, **kwargs)) diff --git a/Tracking/TrkConfig/python/TrkAmbiguitySolverConfig.py b/Tracking/TrkConfig/python/TrkAmbiguitySolverConfig.py index 02c59ca3bb5a2d894b9206386e0c9778d431fd28..cc4ab14125c72c7ae4ad485fbff3c0a1e5d943c1 100644 --- a/Tracking/TrkConfig/python/TrkAmbiguitySolverConfig.py +++ b/Tracking/TrkConfig/python/TrkAmbiguitySolverConfig.py @@ -79,12 +79,15 @@ def ITkTrkAmbiguityScoreCfg( **kwargs): acc = ComponentAccumulator() - from TrkConfig.TrkAmbiguityProcessorConfig import ( - ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg) - ITkAmbiguityScoreProcessor = acc.popToolsAndMerge( - ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg( - flags, - ClusterSplitProbContainer=ClusterSplitProbContainer)) + if flags.Tracking.ActiveConfig.useTIDE_Ambi: + from TrkConfig.TrkAmbiguityProcessorConfig import ( + ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg) + ITkAmbiguityScoreProcessor = acc.popToolsAndMerge( + ITkDenseEnvironmentsAmbiguityScoreProcessorToolCfg( + flags, + ClusterSplitProbContainer=ClusterSplitProbContainer)) + else: + ITkAmbiguityScoreProcessor = None # # --- configure Ambiguity (score) solver @@ -96,10 +99,23 @@ def ITkTrkAmbiguityScoreCfg( # TODO: check the case when it is None object kwargs.setdefault("AmbiguityScoreProcessor", ITkAmbiguityScoreProcessor) - acc.addEventAlgo(CompFactory.Trk.TrkAmbiguityScore( - name+flags.Tracking.ActiveConfig.extension, **kwargs)) + scorename = name + flags.Tracking.ActiveConfig.extension + kwargs.setdefault("name", scorename) + + acc.addEventAlgo(CompFactory.Trk.TrkAmbiguityScore(**kwargs)) return acc +def TrigITkTrkAmbiguityScoreCfg( + flags, + name='InDetTrig_SeededAmbiguityScore', + **kwargs): + kwargs.setdefault("TrackInput", [flags.Tracking.ActiveConfig.trkTracks_FTF]) + kwargs.setdefault("TrackOutput", + f"ScoreMap{flags.Tracking.ActiveConfig.input_name}") + kwargs.setdefault("AmbiguityScoreProcessor", None) + + return ITkTrkAmbiguityScoreCfg(flags, name, **kwargs) + def TrkAmbiguitySolverCfg( flags, @@ -164,12 +180,20 @@ def TrkAmbiguitySolver_Trig_Cfg( **kwargs): acc = ComponentAccumulator() - from TrkConfig.TrkAmbiguityProcessorConfig import ( - SimpleAmbiguityProcessorTool_Trig_Cfg) - processorTool = acc.popToolsAndMerge( - SimpleAmbiguityProcessorTool_Trig_Cfg( - flags, - name=f"InDetTrigMT_AmbiguityProcessor_{flags.Tracking.ActiveConfig.name}")) + if flags.Detector.GeometryITk: + from TrkConfig.TrkAmbiguityProcessorConfig import ( + SimpleAmbiguityProcessorTool_ITkTrig_Cfg) + processorTool = acc.popToolsAndMerge( + SimpleAmbiguityProcessorTool_ITkTrig_Cfg( + flags, + name=f"TrigAmbiguityProcessor_{flags.Tracking.ActiveConfig.name}")) + else: + from TrkConfig.TrkAmbiguityProcessorConfig import ( + SimpleAmbiguityProcessorTool_Trig_Cfg) + processorTool = acc.popToolsAndMerge( + SimpleAmbiguityProcessorTool_Trig_Cfg( + flags, + name=f"TrigAmbiguityProcessor_{flags.Tracking.ActiveConfig.name}")) kwargs.setdefault( "TrackInput", f"ScoreMap{flags.Tracking.ActiveConfig.input_name}") diff --git a/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py b/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py index 9a042c8bda06d018566530542e58f21f1260324c..ab44ed64bd198d6e347257539d938eb7d5ee4f1f 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/BuildSignatureFlags.py @@ -148,6 +148,7 @@ def defaultITkTrigTrackingFlags() -> AthConfigFlags: flags.doCaloSeededBremSi = False flags.doCaloSeededAmbiSi = False flags.DoubletDR_Max = 150.0 + flags.useTIDE_Ambi = False return flags @@ -846,6 +847,7 @@ def addGlobalFlags(flags: AthConfigFlags, category : str): flags.addFlag(f'{category}.PixBSErrCacheKey', "PixBSErrCache") flags.addFlag(f'{category}.TRTRDOCacheKey', "TrtRDOCache") flags.addFlag(f'{category}.TRT_DriftCircleCacheKey', "TRT_DriftCircleCache") + flags.addFlag(f'{category}.ClusterAmbiguitiesMap', "TrigPixelClusterAmbiguitiesMap") import unittest diff --git a/Trigger/TrigTools/TrigInDetConfig/python/ITkTrigSequence.py b/Trigger/TrigTools/TrigInDetConfig/python/ITkTrigSequence.py index 2e76cadb4e7259c258851c28b141da7fc19b9593..c6e2d576f4b571f7707a2b4c4628bca96b412a37 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/ITkTrigSequence.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/ITkTrigSequence.py @@ -75,7 +75,7 @@ class ITkTrigSequence(InnerTrackerTrigSequence): acc = ComponentAccumulator() dataObjects = [ - ( 'InDet::PixelGangedClusterAmbiguities' , 'ITkPixelClusterAmbiguitiesMap'), + ( 'InDet::PixelGangedClusterAmbiguities' , self.flags.Trigger.ITkTracking.ClusterAmbiguitiesMap), ( 'InDetSimDataCollection' , 'ITkPixelSDO_Map') ] from TrigInDetConfig.TrigInDetConfig import InDetExtraDataObjectsFromDataPrep @@ -124,25 +124,23 @@ class ITkTrigSequence(InnerTrackerTrigSequence): if self.inView: acc.merge(self.viewDataVerifierAfterPattern()) - - from TrkConfig.TrkAmbiguitySolverConfig import ITkTrkAmbiguityScoreCfg + from TrkConfig.TrkAmbiguitySolverConfig import TrigITkTrkAmbiguityScoreCfg acc.merge( - ITkTrkAmbiguityScoreCfg( + TrigITkTrkAmbiguityScoreCfg( self.flags, - name = "TrkAmbiguityScore_", - SiSPSeededTrackCollectionKey=self.lastTrkCollection - ) + name = f"{self.ambiPrefix}Score_{self.flags.Tracking.ActiveConfig.input_name}", + TrackInput = [self.lastTrkCollection], + AmbiguityScoreProcessor = None ) + ) - from TrkConfig.TrkAmbiguitySolverConfig import ITkTrkAmbiguitySolverCfg + from TrkConfig.TrkAmbiguitySolverConfig import TrkAmbiguitySolver_Trig_Cfg acc.merge( - ITkTrkAmbiguitySolverCfg( + TrkAmbiguitySolver_Trig_Cfg( self.flags, - name = "TrkAmbiguitySolver_", - ResolvedTrackCollectionKey=self.flags.Tracking.ActiveConfig.trkTracks_IDTrig+"_Amb" + name = f"{self.ambiPrefix}guitySolver_{self.flags.Tracking.ActiveConfig.input_name}", ) ) - self.lastTrkCollection = self.flags.Tracking.ActiveConfig.trkTracks_IDTrig+"_Amb" return acc diff --git a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCollectionKeys.py b/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCollectionKeys.py deleted file mode 100644 index 2b8cc3c452dc059a86ad18e7adc9ad344447576d..0000000000000000000000000000000000000000 --- a/Trigger/TrigTools/TrigInDetConfig/python/InDetTrigCollectionKeys.py +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -#---------------------------------------------------------------------------------------------------------- -# -# This file contains names of the collections used across the Inner detector Trigger SW -# - - -class IDTrigTRTKeys: - """ Keys for the Transition Radiation Tracker """ - def __init__ (self): - #Created by TRTRawDataProvider - self.RDOs = "TRT_RDOs_TRIG" #Raw data objects - - #Created by RIO_MAKER - self.DriftCircles = "TRT_TrigDriftCircles" - - -class IDTrigPixelKeys: - """ Keys for the Pixel """ - def __init__ (self): - - self.Clusters = "PixelTrigClusters" #FIXME: "TrigPixelClusters" - - #Created by silicon Tracker space point finder alg - self.SpacePoints = "PixelTrigSpacePoints"#FIXME: "TrigPixelSpacePoints" - - #Created by InDetPRD_AssociationTool(GangedPixels) - #self.PRDtoTrackMap = "TrigPixelClusterAmbiguitiesMap" - self.PRDtoTrackMap = "TrigPRDtoTrackMap" - self.PixelClusterAmbiguitiesMap = 'TrigPixelClusterAmbiguitiesMap' - - -class IDTrigSCTKeys: - """ Keys for the Pixel """ - def __init__ (self): - - self.Clusters = "SCT_TrigClusters" #FIXME unify this with the naming of others? (Remove the underscore, Trig as prefix) - - #Created by silicon Tracker space point finder alg - self.SpacePoints = "SCT_TrigSpacePoints" # FIXME: should be unified "TrigSCTSpacePoints" - - - -TrigTRTKeys = IDTrigTRTKeys( ) -TrigPixelKeys = IDTrigPixelKeys( ) -TrigSCTKeys = IDTrigSCTKeys( ) diff --git a/Trigger/TrigTools/TrigInDetConfig/python/utils.py b/Trigger/TrigTools/TrigInDetConfig/python/utils.py index 384460286547bb7ac358e5a17d4c505affee0325..69a679934fbf2ac3433ed95eb72b18ea962e2d2f 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/utils.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/utils.py @@ -58,8 +58,9 @@ def cloneFlagsToActiveConfig( do InDet/ITk specific clone and replace of ActiveConfig without checking flags vs config_name """ + prefix = "Trigger.ITkTracking." if flags.Detector.GeometryITk else "Trigger.InDetTracking." return flags.cloneAndReplace( "Tracking.ActiveConfig", - ("Trigger.ITkTracking." if flags.Detector.GeometryITk else "Trigger.InDetTracking.") + config_name, + prefix + config_name, keepOriginal = True ) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionElectronRecoSequences.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionElectronRecoSequences.py index 943261f1c94344e7fb211169c9f4c86b74191589..e419ae4efb8ace3ad01bae67843afc0140d30326 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionElectronRecoSequences.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionElectronRecoSequences.py @@ -70,8 +70,6 @@ def precisionElectronRecoSequence(flags, RoIs, ion=False, doGSF=True, doLRT=Fals OutputClusterContainerName = TrigEgammaKeys.precisionElectronEMClusterContainer #useBremAssoc = True - from TrigInDetConfig.InDetTrigCollectionKeys import TrigTRTKeys, TrigPixelKeys - cellsName = "CaloCells" if not ion else "CorrectedRoICaloCells" dataObjects = [( 'CaloCellContainer' , 'StoreGateSvc+%s' % cellsName ), ( 'xAOD::CaloClusterContainer' , 'StoreGateSvc+%s' % caloClusters ), @@ -81,15 +79,23 @@ def precisionElectronRecoSequence(flags, RoIs, ion=False, doGSF=True, doLRT=Fals # verifier object needed by GSF ( 'xAOD::TrackParticleContainer','StoreGateSvc+%s' % trackParticles), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ), - ( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+%s' % TrigPixelKeys.PixelClusterAmbiguitiesMap ), - ( 'InDet::TRT_DriftCircleContainer' , 'StoreGateSvc+%s' % TrigTRTKeys.DriftCircles ), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' )] - if flags.Input.isMC: - dataObjects += [( 'TRT_RDO_Container' , 'StoreGateSvc+TRT_RDOs' )] - else: + if flags.Detector.GeometryTRT: + dataObjects += [( 'InDet::TRT_DriftCircleContainer' , 'StoreGateSvc+%s' % "TRT_TrigDriftCircles" )] + if flags.Input.isMC: + dataObjects += [( 'TRT_RDO_Container' , 'StoreGateSvc+TRT_RDOs' )] + else: + dataObjects += [( 'TRT_RDO_Cache' , f'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )] + + ambimap = flags.Trigger.InDetTracking.ClusterAmbiguitiesMap + if flags.Detector.GeometryITk: + ambimap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap + + dataObjects += [('InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+%s' % ambimap )] + + if not flags.Input.isMC: dataObjects += [( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' )] - dataObjects += [( 'TRT_RDO_Cache' , f'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )] precisionElectronVDV = CompFactory.AthViews.ViewDataVerifier("precisionElectron"+tag+"VDV") precisionElectronVDV.DataObjects = dataObjects diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionTracks_GSFRefittedSequence.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionTracks_GSFRefittedSequence.py index 98f1c505b4dc252d6ecac5be24c734e2236f432b..8843036c66586e84e188c558cce4f380df3d1998 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionTracks_GSFRefittedSequence.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLT/Electron/PrecisionTracks_GSFRefittedSequence.py @@ -26,26 +26,30 @@ def precisionTracks_GSFRefitted(flags, RoIs, ion=False, variant=''): # precision Tracking related data dependencies trackParticles = TrigEgammaKeys.precisionTrackingContainer - from TrigInDetConfig.InDetTrigCollectionKeys import TrigTRTKeys, TrigPixelKeys + ambimap = flags.Trigger.InDetTracking.ClusterAmbiguitiesMap + if flags.Detector.GeometryITk: + ambimap = flags.Trigger.ITkTracking.ClusterAmbiguitiesMap dataObjects = [( 'xAOD::TrackParticleContainer','StoreGateSvc+%s' % trackParticles), # verifier object needed by GSF ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.averageInteractionsPerCrossing' ), - ( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+%s' % TrigPixelKeys.PixelClusterAmbiguitiesMap ), - ( 'InDet::TRT_DriftCircleContainer' , 'StoreGateSvc+%s' % TrigTRTKeys.DriftCircles ), + ( 'InDet::PixelGangedClusterAmbiguities' , 'StoreGateSvc+%s' % ambimap ), ( 'SG::AuxElement' , 'StoreGateSvc+EventInfo.AveIntPerXDecor' ), ] + if flags.Detector.GeometryTRT: + dataObjects += [( 'InDet::TRT_DriftCircleContainer' , 'StoreGateSvc+%s' % "TRT_TrigDriftCircles" )] + if flags.Input.isMC: + dataObjects += [( 'TRT_RDO_Container' , 'StoreGateSvc+TRT_RDOs' ), + ( 'InDet::TRT_DriftCircleContainerCache' , + f'StoreGateSvc+{flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey}' )] + else: + dataObjects += [( 'TRT_RDO_Cache' , f'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )] + # These objects must be loaded from SGIL if not from CondInputLoader if not flags.Input.isMC: dataObjects.append(( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' )) - dataObjects.append(( 'TRT_RDO_Cache' , - f'StoreGateSvc+{flags.Trigger.InDetTracking.TRTRDOCacheKey}' )) - else: - dataObjects.append(( 'TRT_RDO_Container' , 'StoreGateSvc+TRT_RDOs' )) - dataObjects.append(( 'InDet::TRT_DriftCircleContainerCache' , - f'StoreGateSvc+{flags.Trigger.InDetTracking.TRT_DriftCircleCacheKey}' )) from TrigInDetConfig.TrigInDetConfig import InDetExtraDataObjectsFromDataPrep InDetExtraDataObjectsFromDataPrep(flags,dataObjects)