ATLAS Offline Software
Loading...
Searching...
No Matches
DecisionSvc.cxx File Reference
#include "DecisionSvc.h"
#include "GaudiKernel/EventContext.h"
#include "PersistentDataModel/AthenaAttributeList.h"
#include <algorithm>
Include dependency graph for DecisionSvc.cxx:

Go to the source code of this file.

Functions

StatusCode DecisionSvc::start ATLAS_NOT_THREAD_SAFE ()
 Install fatal handler with default options.

Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

StatusCode DecisionSvc::start ATLAS_NOT_THREAD_SAFE ( )

Install fatal handler with default options.

This is meant to be easy to call from python via ctypes.

Definition at line 333 of file DecisionSvc.cxx.

334{
335 ATH_MSG_DEBUG("in start");
336 CHECK( this->interpretAlgMap() );
337 m_frozen = true;
338
339 // lambda to return true if second element is non-empty
340 auto teststreams = [](const auto& m)
341 {
342 for (const auto& p : m)
343 if (!p.second.empty()) return true;
344 return false;
345 };
346
347 //Retrieve CutFlowSvc if (and only if) needed
348 if( teststreams(m_stream_accept) || teststreams(m_stream_require) || teststreams(m_stream_veto)) {
349 if (!m_cutflowSvc.empty())
350 {
351 if (m_cutflowSvc.retrieve().isFailure())
352 {
353 ATH_MSG_ERROR("Cannot get ICutFlowSvc interface.");
354 return StatusCode::RECOVERABLE;
355 }
356 }
357 }
358
359 //Now that everything is said and done, match filters with stream and logic in CutFlowSvc
360 return DeclareToCutFlowSvc();
361}
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define CHECK(...)
Evaluate an expression and check for errors.