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 334 of file DecisionSvc.cxx.

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