diff --git a/Tr/TrackMonitors/src/BeamSpotMonitor.cpp b/Tr/TrackMonitors/src/BeamSpotMonitor.cpp index 0444745b22ff00a05af4782aec52c8f94e84c625..94fcf97390653a8d76c1ed289dd998c23bacdfca 100644 --- a/Tr/TrackMonitors/src/BeamSpotMonitor.cpp +++ b/Tr/TrackMonitors/src/BeamSpotMonitor.cpp @@ -236,6 +236,9 @@ private: "Name used to publish online conditions" }; Gaudi::Property m_pubSvcName{ this, "PublishSvc", "LHCb::PublishSvc", "Publishing Svc implementing IPublishSvc" }; + Gaudi::Property m_pubErrorTo{ + this, "PublishErrorsTo", "AlignmentMessenger", + "Name used to publish conditions errors and warnings, such as suppression warnings" }; // Accumulation configuration properties //........................................................................... @@ -332,8 +335,9 @@ private: //--------------------------------------------------------------------------- mutable IRConditionsCache m_cache; - // PublishSvc message buffer - mutable std::string m_pub_msg; + // PublishSvc message buffers + mutable std::string m_pub_msg; // Buffer for conditions + mutable std::string m_pub_error; // Buffer for warnings and errors // Histograms //--------------------------------------------------------------------------- @@ -490,6 +494,7 @@ StatusCode BeamSpotMonitor::initialize() { throw GaudiException( "Cannot access incident service of type PublishSvc.", name(), StatusCode::FAILURE ); } m_publishSvc->declarePubItem( m_knownAsName, m_pub_msg ); + m_publishSvc->declarePubItem( m_pubErrorTo, m_pub_error ); } } } ); @@ -811,8 +816,18 @@ bool BeamSpotMonitor::check_conceivable() const { StatusCode::FAILURE ); return false; case IncHandType::WarnSkip: + if ( m_onlineMode ) { + m_pub_error = std::string( "WARNING:InteractionRegion update during run " ) + std::to_string( m_accRunNumber ) + + std::string( " would exceed threshold. Suppressing update" ); + m_publishSvc->updateItem( m_pubErrorTo ); + } return false; case IncHandType::WarnUpdate: + if ( m_onlineMode ) { + m_pub_error = std::string( "WARNING:InteractionRegion update during run " ) + std::to_string( m_accRunNumber ) + + std::string( " exceeded threshold. Please check" ); + m_publishSvc->updateItem( m_pubErrorTo ); + } return true; case IncHandType::Unknown: return true;