diff --git a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx index 10e4a622f94ffd9ddd3e876cca77cdd5582b4e34..ca448cdbc6728d11113a38bf448cf8f1fd57c831 100644 --- a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx +++ b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.cxx @@ -10,7 +10,7 @@ TrigSignatureMoniMT::TrigSignatureMoniMT( const std::string& name, ISvcLocator* pSvcLocator ) : - ::AthAlgorithm( name, pSvcLocator ) + ::AthReentrantAlgorithm( name, pSvcLocator ) {} StatusCode TrigSignatureMoniMT::initialize() { @@ -110,7 +110,7 @@ StatusCode TrigSignatureMoniMT::finalize() { return StatusCode::SUCCESS; } -StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) { +StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) const { for ( auto id : dc ) { auto id2bin = m_chainIDToBinMap.find( id ); if ( id2bin == m_chainIDToBinMap.end() ) { @@ -122,7 +122,7 @@ StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::Decisio return StatusCode::SUCCESS; } -StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) { +StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) const { for ( auto id : dc ) { auto id2bin = m_chainIDToBinMap.find( id ); if ( id2bin == m_chainIDToBinMap.end() ) { @@ -133,13 +133,13 @@ StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigComposit return StatusCode::SUCCESS; } -StatusCode TrigSignatureMoniMT::fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) { +StatusCode TrigSignatureMoniMT::fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) const { return fillPassEvents(dc, row, m_rateHistogram); } -StatusCode TrigSignatureMoniMT::execute() { +StatusCode TrigSignatureMoniMT::execute( const EventContext& context ) const { - auto l1Decisions = SG::makeHandle( m_l1DecisionsKey ); + auto l1Decisions = SG::makeHandle( m_l1DecisionsKey, context ); const TrigCompositeUtils::Decision* l1SeededChains = nullptr; // Activated by L1 const TrigCompositeUtils::Decision* unprescaledChains = nullptr; // Activated and passed prescale check @@ -186,7 +186,7 @@ StatusCode TrigSignatureMoniMT::execute() { } const int row = m_passHistogram->GetYaxis()->GetNbins(); - auto finalDecisionsHandle = SG::makeHandle( m_finalDecisionKey ); + auto finalDecisionsHandle = SG::makeHandle( m_finalDecisionKey, context ); ATH_CHECK( finalDecisionsHandle.isValid() ); TrigCompositeUtils::DecisionIDContainer finalIDs; for (const TrigCompositeUtils::Decision* decisionObject : *finalDecisionsHandle) { @@ -206,9 +206,6 @@ StatusCode TrigSignatureMoniMT::execute() { return StatusCode::SUCCESS; } - - - int TrigSignatureMoniMT::nBinsY() const { return m_collectorTools.size()+3; // in, after ps, out } diff --git a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h index 5f0cd4332f01dda7b8b8c3fde6ac271e341bbdda..36cda6f7800bcb6bc922aeaed9d3d974dfd4d8c2 100644 --- a/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h +++ b/Trigger/TrigMonitoring/TrigSteerMonitor/src/TrigSignatureMoniMT.h @@ -9,7 +9,7 @@ #include <memory> #include <TH2.h> -#include "AthenaBaseComps/AthAlgorithm.h" +#include "AthenaBaseComps/AthReentrantAlgorithm.h" #include "GaudiKernel/ITHistSvc.h" #include "GaudiKernel/LockedHandle.h" #include "DecisionHandling/TrigCompositeUtils.h" @@ -22,19 +22,19 @@ **/ -class TrigSignatureMoniMT : public ::AthAlgorithm +class TrigSignatureMoniMT : public ::AthReentrantAlgorithm { public: TrigSignatureMoniMT( const std::string& name, ISvcLocator* pSvcLocator ); - virtual StatusCode initialize() override; - virtual StatusCode execute() override; + virtual StatusCode execute( const EventContext& context ) const override; virtual StatusCode finalize() override; private: TrigSignatureMoniMT(); + SG::ReadHandleKey<TrigCompositeUtils::DecisionContainer> m_l1DecisionsKey{ this, "L1Decisions", "L1DecoderSummary", "Chains activated after the L1" }; @@ -48,18 +48,18 @@ class TrigSignatureMoniMT : public ::AthAlgorithm ServiceHandle<ITHistSvc> m_histSvc{ this, "THistSvc", "THistSvc/THistSvc", "Histogramming svc" }; Gaudi::Property<std::string> m_bookingPath{ this, "HistParh", "/EXPERT/TrigSteer_HLT", "Booking path for the histogram"}; - LockedHandle<TH2> m_passHistogram; - LockedHandle<TH2> m_countHistogram; - LockedHandle<TH2> m_rateHistogram; + mutable LockedHandle<TH2> m_passHistogram; + mutable LockedHandle<TH2> m_countHistogram; + mutable LockedHandle<TH2> m_rateHistogram; ToolHandleArray<DecisionCollectorTool> m_collectorTools{ this, "CollectorTools", {}, "Tools that collect decisions for steps" }; int nBinsX() const; int nBinsY() const; StatusCode initHist(LockedHandle<TH2>&); - StatusCode fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row); - StatusCode fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram); - StatusCode fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row); + StatusCode fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) const; + StatusCode fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) const; + StatusCode fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) const; }; inline int TrigSignatureMoniMT::nBinsX() const {