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 {