Retrieves and monitors all non-success status codes returned by algorithms.
More...
#include <TrigErrorMonTool.h>
|
| TrigErrorMonTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
virtual std::unordered_map< std::string_view, StatusCode > | algExecErrors (const EventContext &eventContext) const override |
| Produce a subset of IAlgExecStateSvc::algExecStates with only non-success StatusCodes and fill relevant histograms. More...
|
|
Retrieves and monitors all non-success status codes returned by algorithms.
Definition at line 19 of file TrigErrorMonTool.h.
◆ TrigErrorMonTool()
TrigErrorMonTool::TrigErrorMonTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ algExecErrors()
std::unordered_map< std::string_view, StatusCode > TrigErrorMonTool::algExecErrors |
( |
const EventContext & |
eventContext | ) |
const |
|
overridevirtual |
Produce a subset of IAlgExecStateSvc::algExecStates with only non-success StatusCodes and fill relevant histograms.
Definition at line 39 of file TrigErrorMonTool.cxx.
40 std::unordered_map<std::string_view, StatusCode> algErrors;
41 bool wasTimeout =
false;
42 SmartIF<IAlgManager> algMgr{serviceLocator()->as<IAlgManager>()};
43 for (
const IAlgorithm*
alg : algMgr->getAlgorithms()) {
44 auto state =
alg->execState(eventContext);
47 ATH_MSG_DEBUG(
"Algorithm " <<
alg->name() <<
" returned StatusCode " << state.execStatus().message()
48 <<
" in event " << eventContext.eventID());
49 algErrors[
alg->name()] = state.execStatus();
55 std::set<std::string> chainNames =
m_algToChainTool->getActiveChainsForAlg(
alg->name(), eventContext);
57 std::vector<std::string> chainNamesVec(chainNames.begin(), chainNames.end());
59 auto monErrorChainNames= Monitored::Collection<std::vector<std::string>>(
"ErrorChainName", chainNamesVec);
71 std::string timeoutReport;
72 if (
m_trigCostSvcHandle->generateTimeoutReport(eventContext, timeoutReport) == StatusCode::FAILURE){
75 else if (timeoutReport.empty()){
76 ATH_MSG_INFO(
"CostMonitoring not active in this event. A list of slow algorithms is not available.");
◆ finalize()
StatusCode TrigErrorMonTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode TrigErrorMonTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ m_algToChainTool
◆ m_monTool
◆ m_trigCostSvcHandle
The documentation for this class was generated from the following files: