diff --git a/Tracking/Acts/ActsConfig/python/ActsTrkFindingConfig.py b/Tracking/Acts/ActsConfig/python/ActsTrkFindingConfig.py index 3d1b5fdecce4a33269553987070097089dbb5c6d..2ad4ce515c622f82f0d86e94de1b858becfcef6e 100644 --- a/Tracking/Acts/ActsConfig/python/ActsTrkFindingConfig.py +++ b/Tracking/Acts/ActsConfig/python/ActsTrkFindingConfig.py @@ -147,5 +147,10 @@ def ActsAmbiguityResolutionCfg(flags, name: str = "ActsAmbiguityResolution", **k kwargs.setdefault('MaximumIterations', 10000) kwargs.setdefault('NMeasurementsMin', 7) + if flags.Acts.doMonitoring: + from ActsConfig.ActsTrkMonitoringConfig import ActsAmbiguityResolutionMonitoringCfg + kwargs.setdefault('MonTool', acc.popToolsAndMerge( + ActsAmbiguityResolutionMonitoringCfg(flags))) + acc.addEventAlgo(CompFactory.ActsTrk.AmbiguityResolutionAlg(name, **kwargs)) return acc diff --git a/Tracking/Acts/ActsConfig/python/ActsTrkMonitoringConfig.py b/Tracking/Acts/ActsConfig/python/ActsTrkMonitoringConfig.py index 8e9f6599f34f68090ab581d6f2f3233d5cbbf811..ca6feafa1d95796b6f4c9703011b327cb73a8cf0 100644 --- a/Tracking/Acts/ActsConfig/python/ActsTrkMonitoringConfig.py +++ b/Tracking/Acts/ActsConfig/python/ActsTrkMonitoringConfig.py @@ -127,3 +127,18 @@ def ActsTrkFindingMonitoringCfg(flags, acc.setPrivateTools(monTool) acc.merge(ActsTrkMonitoringHistSvcCfg(flags)) return acc + +def ActsAmbiguityResolutionMonitoringCfg(flags, + name: str = "ActsAmbiguityResolutionMonitoring", + **kwargs) -> ComponentAccumulator: + acc = ComponentAccumulator() + + from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool + monTool = GenericMonitoringTool(flags, name) + + monTool.defineHistogram('TIME_execute', path='EXPERT', type='TH1F', title='Time for execute', + xbins=100, xmin=0, xmax=10000) + + acc.setPrivateTools(monTool) + acc.merge(ActsTrkMonitoringHistSvcCfg(flags)) + return acc diff --git a/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.cxx b/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.cxx index c1b77739429cf53496c23af95eb9ee994f77e788..94d18ca858fb4cbdb1cd1a4aa1596f0eecf4a57d 100644 --- a/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.cxx +++ b/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.cxx @@ -4,6 +4,9 @@ #include "AmbiguityResolutionAlg.h" +// Athena +#include "AthenaMonitoringKernel/Monitored.h" + // ACTS #include "Acts/Definitions/Units.hpp" @@ -47,6 +50,8 @@ namespace ActsTrk assert( m_ambi ); } + ATH_CHECK(m_monTool.retrieve(EnableTool{not m_monTool.empty()})); + ATH_CHECK(m_tracksKey.initialize()); ATH_CHECK(m_resolvedTracksKey.initialize()); return StatusCode::SUCCESS; @@ -54,6 +59,8 @@ namespace ActsTrk StatusCode AmbiguityResolutionAlg::execute(const EventContext &ctx) const { + auto timer = Monitored::Timer<std::chrono::milliseconds>( "TIME_execute" ); + auto mon = Monitored::Group( m_monTool, timer ); SG::ReadHandle<ActsTrk::ConstTrackContainer> trackHandle = SG::makeHandle(m_tracksKey, ctx); ATH_CHECK(trackHandle.isValid()); diff --git a/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.h b/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.h index 107ccfa8617a38f6b58ebaf4021ee5a51a322e15..53c023f113756a3e71ff0c594a09275711d4dbf4 100644 --- a/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.h +++ b/Tracking/Acts/ActsTrackReconstruction/src/AmbiguityResolutionAlg.h @@ -43,6 +43,8 @@ namespace ActsTrk virtual StatusCode execute(const EventContext &ctx) const override; private: + ToolHandle< GenericMonitoringTool > m_monTool {this, "MonTool", "", "Monitoring tool"}; + SG::ReadHandleKey<ActsTrk::ConstTrackContainer> m_tracksKey {this, "TracksLocation", "ActsTracks", "Input track collection"}; SG::WriteHandleKey<ActsTrk::ConstTrackContainer> m_resolvedTracksKey