diff --git a/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py b/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py index 3415222c521fc817de73e9eab04ca12086af1bc9..9deb9c89c1079bda6650ae3bae1341d7922f83b3 100644 --- a/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py +++ b/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py @@ -36,6 +36,12 @@ def CombinedTrackingPassFlagSets(flags): flags_set += [flags.cloneAndReplace( "Tracking.ActiveConfig", "Tracking.ITkActsPass")] + + # Acts Heavy Ion Pass + if TrackingComponent.ActsHeavyIon in flags.Tracking.recoChain: + flags_set += [flags.cloneAndReplace( + "Tracking.ActiveConfig", + "Tracking.ITkActsHeavyIonPass")] # GNN pass if TrackingComponent.GNNChain in flags.Tracking.recoChain: diff --git a/Tracking/Acts/ActsConfig/python/ActsCIFlags.py b/Tracking/Acts/ActsConfig/python/ActsCIFlags.py index 7d0790c9eda915d2b7c3e9a1620ceb5e9b5925ae..6682916d1188dc210b2f7a7eea686db1e99db3f6 100644 --- a/Tracking/Acts/ActsConfig/python/ActsCIFlags.py +++ b/Tracking/Acts/ActsConfig/python/ActsCIFlags.py @@ -10,7 +10,12 @@ def actsAloneWorkflowFlags(flags) -> None: from TrkConfig.TrkConfigFlags import TrackingComponent flags.Tracking.recoChain = [TrackingComponent.ActsChain] - +def actsHeavyIonFlags(flags) -> None: + flags.Tracking.recoChain = [TrackingComponent.ActsHeavyIon] + flags.Tracking.doTruth = False + flags.Reco.EnableHGTDExtension = False + flags.Acts.doAmbiguityResolution = False + def actsWorkflowFlags(flags) -> None: """flags for Reco_tf with CA used in CI tests: add Acts workflow to reco sequence""" flags.DQ.useTrigger = False diff --git a/Tracking/Acts/ActsConfig/python/ActsTrackingPassFlags.py b/Tracking/Acts/ActsConfig/python/ActsTrackingPassFlags.py index 3f68bccce950602098e913cb46c7b0ae436856c2..3cf34ad5f35275cbf2d4babed3f92509f518ffe8 100644 --- a/Tracking/Acts/ActsConfig/python/ActsTrackingPassFlags.py +++ b/Tracking/Acts/ActsConfig/python/ActsTrackingPassFlags.py @@ -1,6 +1,6 @@ # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration -from TrkConfig.TrackingPassFlags import createITkTrackingPassFlags, createITkConversionTrackingPassFlags +from TrkConfig.TrackingPassFlags import createITkTrackingPassFlags, createITkConversionTrackingPassFlags, createITkHeavyIonTrackingPassFlags def deactivateAthenaComponents(icf): icf.doAthenaCluster = False @@ -24,6 +24,29 @@ def createActsTrackingPassFlags(): return icf +def createActsHeavyIonTrackingPassFlags(): + icf = createITkHeavyIonTrackingPassFlags() + icf.extension = "ActsHeavyIon" + deactivateAthenaComponents(icf) + icf.doAthenaCluster = True + icf.doAthenaToActsCluster = True + icf.doActsSpacePoint = True + icf.doActsSeed = True + icf.doActsTrack = True + # If we do not want acts ambi resolution, first do the track convertion + # and then the Athena ambi + icf.doActsToAthenaTrack = lambda pcf : not pcf.Acts.doAmbiguityResolution + icf.doAthenaAmbiguityResolution = lambda pcf : not pcf.Acts.doAmbiguityResolution + # If we want acts ambi, first do the ambi and then convert the tracks + # without Athena ambi + icf.doActsAmbiguityResolution = lambda pcf : pcf.Acts.doAmbiguityResolution + icf.doActsToAthenaResolvedTrack = lambda pcf : pcf.Acts.doAmbiguityResolution + + # Deactivate CTIDE processor fit + icf.doAmbiguityProcessorTrackFit = False + + return icf + def createActsConversionTrackingPassFlags(): icf = createITkConversionTrackingPassFlags() icf.extension = "ActsConversion" diff --git a/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref b/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref index d738d3cede3e010033ecc01c8e5503eb76f3553f..4b641b76787857862d3694eede1e46014e5a078b 100644 --- a/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref +++ b/Tracking/Acts/ActsConfig/share/ActsTrackingComponents.ref @@ -58,6 +58,35 @@ Tracking.ActiveConfig points to Tracking.ITkActsPass Tracking.ITkActsPass points to nothing ************************************************************************ +************************************************************************ +******************** Tracking reconstruction Config ******************** + Active Config is ActsHeavyIon +Tracking.ActiveConfig.doAthenaAmbiguityResolution : True [function] +Tracking.ActiveConfig.doAthenaCluster : True +Tracking.ActiveConfig.doAthenaSeed : False +Tracking.ActiveConfig.doAthenaSpacePoint : False +Tracking.ActiveConfig.doAthenaToActsCluster : True +Tracking.ActiveConfig.doAthenaToActsSpacePoint : False +Tracking.ActiveConfig.doAthenaToActsTrack : False +Tracking.ActiveConfig.doAthenaTrack : False +Flag categories that are redirected by the cloneAndReplace +Tracking.ActiveConfig points to Tracking.ITkActsHeavyIonPass +Tracking.ITkActsHeavyIonPass points to nothing +Tracking.ActiveConfig.doActsAmbiguityResolution : False [function] +Tracking.ActiveConfig.doActsCluster : False +Tracking.ActiveConfig.doActsSeed : True +Tracking.ActiveConfig.doActsSpacePoint : True +Tracking.ActiveConfig.doActsToAthenaCluster : False +Tracking.ActiveConfig.doActsToAthenaResolvedTrack : False [function] +Tracking.ActiveConfig.doActsToAthenaSeed : False +Tracking.ActiveConfig.doActsToAthenaSpacePoint : False +Tracking.ActiveConfig.doActsToAthenaTrack : True [function] +Tracking.ActiveConfig.doActsTrack : True +Flag categories that are redirected by the cloneAndReplace +Tracking.ActiveConfig points to Tracking.ITkActsHeavyIonPass +Tracking.ITkActsHeavyIonPass points to nothing +************************************************************************ + ************************************************************************ ******************** Tracking reconstruction Config ******************** Active Config is ActsValidateClusters diff --git a/Tracking/Acts/ActsConfig/test/ActsTrackingComponents.py b/Tracking/Acts/ActsConfig/test/ActsTrackingComponents.py index 5837e3bc8b86975d1c3ceb13440ea3438a5fd7c2..a0d68a05fc661e149a2e97bb02ac6cb1c295857b 100755 --- a/Tracking/Acts/ActsConfig/test/ActsTrackingComponents.py +++ b/Tracking/Acts/ActsConfig/test/ActsTrackingComponents.py @@ -22,6 +22,7 @@ if __name__ == "__main__": from TrkConfig.TrkConfigFlags import TrackingComponent configurations = ["Main", "Acts", + "ActsHeavyIon", "ActsValidateClusters", "ActsValidateSpacePoints", "ActsValidateSeeds", diff --git a/Tracking/TrkConfig/python/TrkConfigFlags.py b/Tracking/TrkConfig/python/TrkConfigFlags.py index 66e1448360ded4417c432b0dd0e56e4843168dd9..8ccf5d7620adb642e746adb80ff5ab2279871d94 100644 --- a/Tracking/TrkConfig/python/TrkConfigFlags.py +++ b/Tracking/TrkConfig/python/TrkConfigFlags.py @@ -44,6 +44,7 @@ class PixelClusterSplittingType(FlagEnum): class TrackingComponent(FlagEnum): AthenaChain = "AthenaChain" # full Athena Chain (default) ActsChain = "ActsChain" # full Acts Chain + ActsHeavyIon = "ActsHeavyIon" # Validation options ActsValidateClusters = "ActsValidateClusters" ActsValidateSpacePoints = "ActsValidateSpacePoints" @@ -515,7 +516,8 @@ def createTrackingConfigFlags(): createActsValidateSeedsTrackingPassFlags, createActsValidateTracksTrackingPassFlags, createActsValidateAmbiguityResolutionTrackingPassFlags, - createActsBenchmarkSpotTrackingPassFlags + createActsBenchmarkSpotTrackingPassFlags, + createActsHeavyIonTrackingPassFlags ) icf.addFlagsCategory ("Tracking.ITkActsPass", @@ -534,6 +536,8 @@ def createTrackingConfigFlags(): createActsValidateAmbiguityResolutionTrackingPassFlags, prefix=True) icf.addFlagsCategory ("Tracking.ITkActsBenchmarkSpotPass", createActsBenchmarkSpotTrackingPassFlags, prefix=True) + icf.addFlagsCategory ("Tracking.ITkActsHeavyIonPass", + createActsHeavyIonTrackingPassFlags, prefix=True) # GNN from InDetGNNTracking.InDetGNNTrackingFlags import createGNNTrackingPassFlags