From c149311245ae289861dcb1975abe28a3c90bf7df Mon Sep 17 00:00:00 2001 From: Luthien Mlynarski <marek.piotr.mlynarski@cern.ch> Date: Tue, 23 Apr 2024 14:07:03 +0200 Subject: [PATCH] Added Acts Heavy Ion functions Added Acts Heavy Ion functions --- .../InDetConfig/python/ITkTrackRecoConfig.py | 6 ++++ .../Acts/ActsConfig/python/ActsCIFlags.py | 7 ++++- .../python/ActsTrackingPassFlags.py | 25 +++++++++++++++- .../share/ActsTrackingComponents.ref | 29 +++++++++++++++++++ .../ActsConfig/test/ActsTrackingComponents.py | 1 + Tracking/TrkConfig/python/TrkConfigFlags.py | 6 +++- 6 files changed, 71 insertions(+), 3 deletions(-) diff --git a/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py b/InnerDetector/InDetConfig/python/ITkTrackRecoConfig.py index 3415222c521f..9deb9c89c107 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 7d0790c9eda9..6682916d1188 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 3f68bccce950..3cf34ad5f352 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 d738d3cede3e..4b641b767878 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 5837e3bc8b86..a0d68a05fc66 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 66e1448360de..8ccf5d7620ad 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 -- GitLab