Skip to content
Snippets Groups Projects
Commit 2df8fb28 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'CacheSetByFlags' into 'main'

Acts Cache mechanism can be set by config flags

See merge request atlas/athena!69501
parents 5b9c3fdb a51fd432
No related branches found
No related tags found
No related merge requests found
......@@ -61,6 +61,7 @@ def ActsPixelClusterizationAlgCfg(flags,
# Regional selection
kwargs.setdefault('RoIs', 'OfflineFullScanRegion')
kwargs.setdefault('EnableCache', flags.Acts.useCache)
kwargs.setdefault('ClusterCacheBackend', 'ActsPixelClusterCache_Back')
kwargs.setdefault('ClusterCache', 'ActsPixelClustersCache')
......@@ -91,6 +92,7 @@ def ActsStripClusterizationAlgCfg(flags,
# Regional selection
kwargs.setdefault('RoIs', 'OfflineFullScanRegion')
kwargs.setdefault('EnableCache', flags.Acts.useCache)
kwargs.setdefault('ClusterCacheBackend', 'ActsStripClusterCache_Back')
kwargs.setdefault('ClusterCache', 'ActsStripClustersCache')
......@@ -121,7 +123,7 @@ def ActsClusterCacheCreatorCfg(flags, name="ActsClusterCacheCreator", **kwargs):
def ActsPixelClustersViewFillerCfg(flags,name="PixelClusterViewFiller", **kwargs):
kwargs.setdefault("InputIDC", "ActsPixelClustersCache")
kwargs.setdefault("Output", "ITKPixelClusters_InView")
kwargs.setdefault("Output", "ITkPixelClusters_InView")
kwargs.setdefault('RoIs', 'OfflineFullScanRegion')
......@@ -137,7 +139,7 @@ def ActsPixelClustersViewFillerCfg(flags,name="PixelClusterViewFiller", **kwargs
def ActsStripClustersViewFillerCfg(flags,name="StripClusterViewFiller", **kwargs):
kwargs.setdefault("InputIDC", "ActsStripClustersCache")
kwargs.setdefault("Output", "ITKStripClusters_InView")
kwargs.setdefault("Output", "ITkStripClusters_InView")
kwargs.setdefault('RoIs', 'OfflineFullScanRegion')
......@@ -154,14 +156,21 @@ def ActsStripClustersViewFillerCfg(flags,name="StripClusterViewFiller", **kwargs
def ActsMainClusterizationCfg(flags) -> ComponentAccumulator:
acc = ComponentAccumulator()
acc.merge(ActsClusterCacheCreatorCfg(flags))
if flags.Acts.useCache:
acc.merge(ActsClusterCacheCreatorCfg(flags))
if flags.Detector.EnableITkPixel:
acc.merge(ActsPixelClusterizationAlgCfg(flags))
acc.merge(ActsPixelClustersViewFillerCfg(flags))
if flags.Detector.EnableITkStrip:
acc.merge(ActsStripClusterizationAlgCfg(flags))
acc.merge(ActsStripClustersViewFillerCfg(flags))
if flags.Acts.useCache:
if flags.Detector.EnableITkPixel:
acc.merge(ActsPixelClustersViewFillerCfg(flags))
if flags.Detector.EnableITkStrip:
acc.merge(ActsStripClustersViewFillerCfg(flags))
# Analysis extensions
if flags.Acts.doAnalysis:
if flags.Detector.EnableITkPixel:
......@@ -180,9 +189,16 @@ def ActsConversionClusterizationCfg(flags) -> ComponentAccumulator:
acc.merge(ActsStripClusterizationAlgCfg(flags,
name="ActsConversionStripClusterizationAlg",
ClustersKey="ITkConversionStripClusters",
ClusterCache="",
EnableCache=False,
RoIs="OfflineCaloBasedRegion"))
if flags.Acts.useCache:
if flags.Detector.EnableITkStrip:
acc.merge(ActsStripClustersViewFillerCfg(flags,
name="ActsConversionStripClustersViewFiller",
Output="ITkConversionStripClusters_InView",
RoIs="OfflineCaloBasedRegion"))
# Analysis extensions
if flags.Acts.doAnalysis:
if flags.Detector.EnableITkStrip:
......
# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
from AthenaConfiguration.AthConfigFlags import AthConfigFlags
from AthenaConfiguration.Enums import FlagEnum
......@@ -23,6 +23,7 @@ def createActsConfigFlags():
actscf.addFlag('Acts.EDM.PersistifyClusters', False)
actscf.addFlag('Acts.EDM.PersistifySpacePoints', False)
actscf.addFlag('Acts.EDM.PersistifyTracks', False)
actscf.addFlag('Acts.useCache', False)
# Scheduling
actscf.addFlag('Acts.doITkConversion', False)
......
......@@ -82,7 +82,8 @@ def ActsMainSpacePointFormationCfg(flags) -> ComponentAccumulator:
acc = ComponentAccumulator()
if flags.Detector.EnableITkPixel:
acc.merge(ActsPixelSpacePointFormationCfg(flags))
acc.merge(ActsPixelSpacePointFormationCfg(flags,
PixelClusters = "ITkPixelClusters_InView" if flags.Acts.useCache else "ITkPixelClusters"))
if flags.Detector.EnableITkStrip and not flags.Tracking.doITkFastTracking:
# Need to schedule this here in case the Athena space point formation is not schedule
# This is because as of now requires at least ITkSiElementPropertiesTableCondAlgCfg
......@@ -97,7 +98,8 @@ def ActsMainSpacePointFormationCfg(flags) -> ComponentAccumulator:
from InDetConfig.SiSpacePointFormationConfig import ITkSiElementPropertiesTableCondAlgCfg
acc.merge(ITkSiElementPropertiesTableCondAlgCfg(flags))
acc.merge(ActsStripSpacePointFormationCfg(flags))
acc.merge(ActsStripSpacePointFormationCfg(flags,
StripClusters = "ITkStripClusters_InView" if flags.Acts.useCache else "ITkStripClusters"))
# Analysis extensions
if flags.Acts.doAnalysis:
......@@ -130,7 +132,7 @@ def ActsConversionSpacePointFormationCfg(flags) -> ComponentAccumulator:
acc.merge(ActsStripSpacePointFormationCfg(flags,
name="ActsConversionStripSpacePointFormation",
StripClusters="ITkConversionStripClusters",
StripClusters="ITkConversionStripClusters_InView" if flags.Acts.useCache else "ITkConversionStripClusters",
StripSpacePoints="ITkConversionStripSpacePoints",
StripOverlapSpacePoints="ITkConversionStripOverlapSpacePoints"))
......
......@@ -132,7 +132,8 @@ def ActsTrackFindingCfg(flags) -> ComponentAccumulator:
# Acts Main pass
if flags.Tracking.ActiveConfig.extension == "Acts":
acc.merge(ActsMainTrackFindingCfg(flags))
acc.merge(ActsMainTrackFindingCfg(flags,
UncalibratedMeasurementContainerKeys = ["ITkPixelClusters_InView", "ITkStripClusters_InView"] if flags.Acts.useCache else ["ITkPixelClusters", "ITkStripClusters"]))
# Acts Conversion pass
elif flags.Tracking.ActiveConfig.extension == "ActsConversion":
prefix="SiSPSeededActsConversionTrack"
......@@ -142,7 +143,7 @@ def ActsTrackFindingCfg(flags) -> ComponentAccumulator:
SeedLabels=["SSS"],
EstimatedTrackParametersKeys=["ITkConversionStripEstimatedTrackParams"],
SeedContainerKeys=["ITkConversionStripSeeds"],
UncalibratedMeasurementContainerKeys=["ITkPixelClusters", "ITkConversionStripClusters"],
UncalibratedMeasurementContainerKeys=["ITkPixelClusters_InView", "ITkConversionStripClusters"] if flags.Acts.useCache else ["ITkPixelClusters", "ITkConversionStripClusters"], # for the time being we do not pass InView collections for strips here due to issue with the CKF stage
TrackBackEndPrefixName=prefix,
MTJBackEndPrefixName=prefix))
# Any other pass -> mainly validation
......
/*
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
*/
#ifndef ACTSTRK_DATAPREPARATION_CLUSTERIZATIONALG_H
......@@ -76,7 +76,7 @@ private:
Cache_WriteHandleKey m_ClusterCache{this,"ClusterCache",""};
Cache_BackendUpdateHandleKey m_ClusterCacheBackend{this,"ClusterCacheBackend",""};
bool m_cache_enabled{false};
Gaudi::Property< bool > m_cache_enabled {this, "EnableCache", false};
// expected number of clusters for RDO
// This values is used for reserving enough memory of the cluster container
......
/*
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
*/
#include "AthenaMonitoringKernel/Monitored.h"
......@@ -30,10 +30,8 @@ StatusCode ClusterizationAlg<IClusteringTool>::initialize()
ATH_CHECK(m_monTool.retrieve(EnableTool{not m_monTool.empty()}));
//caching
ATH_CHECK(m_ClusterCache.initialize(SG::AllowEmpty));
ATH_CHECK(m_ClusterCacheBackend.initialize(SG::AllowEmpty));
m_cache_enabled = !m_ClusterCache.key().empty();
ATH_CHECK(m_ClusterCache.initialize(m_cache_enabled));
ATH_CHECK(m_ClusterCacheBackend.initialize(m_cache_enabled));
return StatusCode::SUCCESS;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment