This implementes the methods for IDecisionSvc.
More...
#include <DecisionSvc.h>
This implementes the methods for IDecisionSvc.
- Author
- S.Binetbinet.nosp@m.@cer.nosp@m.n.ch
-
B.Radicsradba.nosp@m.l@ce.nosp@m.rn.ch
Definition at line 30 of file DecisionSvc.h.
◆ DecisionSvc()
DecisionSvc::DecisionSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~DecisionSvc()
DecisionSvc::~DecisionSvc |
( |
| ) |
|
|
virtual |
◆ addAcceptAlg()
StatusCode DecisionSvc::addAcceptAlg |
( |
const std::string & |
name, |
|
|
const std::string & |
stream |
|
) |
| |
|
overridevirtual |
Add an algorithm to the list of AcceptAlgs of a stream.
Definition at line 163 of file DecisionSvc.cxx.
◆ addRequireAlg()
StatusCode DecisionSvc::addRequireAlg |
( |
const std::string & |
name, |
|
|
const std::string & |
stream |
|
) |
| |
|
overridevirtual |
Add an algorithm to the list of RequireAlgs of a stream.
Definition at line 173 of file DecisionSvc.cxx.
◆ addStream()
StatusCode DecisionSvc::addStream |
( |
const std::string & |
stream | ) |
|
|
overridevirtual |
Add a stream.
Definition at line 98 of file DecisionSvc.cxx.
107 status = StatusCode::FAILURE;
110 std::vector<std::string> tmpvec;
114 status = StatusCode::SUCCESS;
◆ addVetoAlg()
StatusCode DecisionSvc::addVetoAlg |
( |
const std::string & |
name, |
|
|
const std::string & |
stream |
|
) |
| |
|
overridevirtual |
Add an algorithm to the list of VetoAlgs of a stream.
Definition at line 184 of file DecisionSvc.cxx.
◆ ATLAS_NOT_THREAD_SAFE()
StatusCode DeclareToCutFlowSvc DecisionSvc::ATLAS_NOT_THREAD_SAFE |
( |
| ) |
|
|
private |
◆ fillMap()
StatusCode DecisionSvc::fillMap |
( |
std::map< std::string, std::vector< std::string > > & |
streamsModeMap, |
|
|
const std::string & |
name, |
|
|
const std::string & |
stream |
|
) |
| |
|
private |
Definition at line 121 of file DecisionSvc.cxx.
125 std::map<std::string, std::vector<std::string> >
::iterator it = streamsModeMap.find(
stream);
126 if(
it != streamsModeMap.end()){
130 bool algexist =
false;
132 for(
auto vit = (
it->second).begin();
133 vit != (
it->second).end(); ++vit) {
138 <<
" of stream " <<
stream
139 <<
" has already been registered!");
140 return StatusCode::FAILURE;
147 if(algexist ==
false){
148 std::vector<std::string> &tmpvec =
it->second;
149 tmpvec.push_back(
name);
154 std::vector<std::string> tmpvec;
155 tmpvec.push_back(
name);
156 streamsModeMap[
stream] = std::move(tmpvec);
159 return StatusCode::SUCCESS;
◆ finalize()
StatusCode DecisionSvc::finalize |
( |
| ) |
|
|
overridevirtual |
◆ getAcceptAlgs()
const std::vector< std::string > DecisionSvc::getAcceptAlgs |
( |
const std::string & |
stream | ) |
const |
|
overridevirtual |
Return list of AcceptAlg names.
Definition at line 202 of file DecisionSvc.cxx.
206 return std::vector<std::string>();
◆ getRequireAlgs()
const std::vector< std::string > DecisionSvc::getRequireAlgs |
( |
const std::string & |
stream | ) |
const |
|
overridevirtual |
Return list of RequireAlg names.
Definition at line 211 of file DecisionSvc.cxx.
215 return std::vector<std::string>();
◆ getStreams()
const std::vector< std::string > DecisionSvc::getStreams |
( |
| ) |
const |
|
overridevirtual |
◆ getVetoAlgs()
const std::vector< std::string > DecisionSvc::getVetoAlgs |
( |
const std::string & |
stream | ) |
const |
|
overridevirtual |
Return list of VetoAlg names.
Definition at line 220 of file DecisionSvc.cxx.
224 return std::vector<std::string>();
◆ initialize()
StatusCode DecisionSvc::initialize |
( |
| ) |
|
|
overridevirtual |
◆ interpretAlgMap()
StatusCode DecisionSvc::interpretAlgMap |
( |
| ) |
|
|
private |
Definition at line 64 of file DecisionSvc.cxx.
69 std::set<std::string> uniStreams;
74 uniStreams.insert(iter->first);
79 uniStreams.insert(iter->first);
84 uniStreams.insert(iter->first);
◆ isEventAccepted() [1/2]
bool DecisionSvc::isEventAccepted |
( |
const std::string & |
stream | ) |
const |
|
overridevirtual |
◆ isEventAccepted() [2/2]
bool DecisionSvc::isEventAccepted |
( |
const std::string & |
stream, |
|
|
const EventContext & |
ectx |
|
) |
| const |
|
overridevirtual |
Definition at line 244 of file DecisionSvc.cxx.
253 bool found_accept =
false;
254 bool found_require =
false;
255 bool found_veto =
false;
262 const auto &vecAlgs = itAlgs->second;
267 if ( ! vecAlgs.empty( ) ) {
269 for (
auto it = vecAlgs.begin();
it != vecAlgs.end();
it++) {
271 isE = (
m_algstateSvc->algExecState(*
it,ectx).state() == AlgExecState::State::Done);
284 found_require =
true;
286 const auto &vecAlgs = itAlgs->second;
291 if ( ! vecAlgs.empty( ) ) {
292 for (
auto it = vecAlgs.begin();
it != vecAlgs.end();
it++) {
294 isE = (
m_algstateSvc->algExecState(*
it,ectx).state() == AlgExecState::State::Done);
309 const auto &vecAlgs = itAlgs->second;
314 if ( ! vecAlgs.empty( ) ) {
315 for (
auto it = vecAlgs.begin();
it != vecAlgs.end();
it++) {
317 isE = (
m_algstateSvc->algExecState(*
it,ectx).state() == AlgExecState::State::Done);
327 if(found_accept ==
false && found_require ==
false && found_veto ==
false){
328 ATH_MSG_DEBUG(
"Stream: " <<
stream <<
" not found registered in DecisionSvc -- accepting event by default ");
◆ start()
StatusCode DecisionSvc::start |
( |
| ) |
|
|
overridevirtual |
Definition at line 334 of file DecisionSvc.cxx.
341 auto teststreams = [](
const auto&
m)
343 for (
const auto&
p :
m)
344 if (!
p.second.empty())
return true;
355 return StatusCode::RECOVERABLE;
◆ m_algstateSvc
◆ m_calcStats
Gaudi::Property<bool> DecisionSvc::m_calcStats {this, "CalcStats", false} |
|
private |
◆ m_cutflowSvc
◆ m_evtStore
◆ m_frozen
bool DecisionSvc::m_frozen {false} |
|
private |
◆ m_stream_accept
std::map<std::string, std::vector<std::string> > DecisionSvc::m_stream_accept |
|
private |
Maps of streams – algorithm names' vectors.
Definition at line 89 of file DecisionSvc.h.
◆ m_stream_require
std::map<std::string, std::vector<std::string> > DecisionSvc::m_stream_require |
|
private |
◆ m_stream_veto
std::map<std::string, std::vector<std::string> > DecisionSvc::m_stream_veto |
|
private |
◆ m_streamNames
std::vector<std::string> DecisionSvc::m_streamNames |
|
private |
The documentation for this class was generated from the following files: