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

Merge branch 'ActsAmbiMonitoringTime' into 'main'

Add monitoring tool for checking execution time in Ambi Res

See merge request atlas/athena!64364
parents abe2719c 3aa662a7
No related merge requests found
......@@ -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
......@@ -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
......@@ -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());
......
......@@ -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
......
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