ATLAS Offline Software
Loading...
Searching...
No Matches
DecisionSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ATHENASERVICES_DECISIONSVC_H
5#define ATHENASERVICES_DECISIONSVC_H
6
7// STL includes
8#include <string>
9#include <vector>
10#include <map>
11
12// FrameWork includes
13#include "GaudiKernel/ISvcLocator.h"
14#include "GaudiKernel/IAlgExecStateSvc.h"
15
16// Athena includes
22
23
30class DecisionSvc : public extends<AthService, IDecisionSvc>
31{
32
33public:
34
36 DecisionSvc(const std::string& name, ISvcLocator* pSvcLocator );
37
39 virtual ~DecisionSvc();
40
42
43 virtual StatusCode initialize() override;
44 virtual StatusCode start ATLAS_NOT_THREAD_SAFE () override;
45 virtual StatusCode finalize() override;
47
48
50 // Non-const methods:
52
53public:
55 virtual StatusCode addStream(const std::string& stream) override;
57 virtual StatusCode addAcceptAlg(const std::string& name,const std::string& stream) override;
59 virtual StatusCode addRequireAlg(const std::string& name,const std::string& stream) override;
61 virtual StatusCode addVetoAlg(const std::string& name,const std::string& stream) override;
62
63
65 virtual const std::vector<std::string> getAcceptAlgs(const std::string& stream) const override;
67 virtual const std::vector<std::string> getRequireAlgs(const std::string& stream) const override;
69 virtual const std::vector<std::string> getVetoAlgs(const std::string& stream) const override;
71 virtual const std::vector<std::string> getStreams() const override;
72
73private:
74 StatusCode interpretAlgMap();
75
76
78 // Const methods:
80
81public:
83 virtual bool isEventAccepted(const std::string& stream ) const override;
84 virtual bool isEventAccepted(const std::string& stream, const EventContext& ) const override;
85
86private:
87
89 std::map<std::string, std::vector<std::string> > m_stream_accept;
90 std::map<std::string, std::vector<std::string> > m_stream_require;
91 std::map<std::string, std::vector<std::string> > m_stream_veto;
92
93 std::vector<std::string> m_streamNames;
94
95 Gaudi::Property<bool> m_calcStats{this, "CalcStats", false};
96 bool m_frozen{false};
100
101 StatusCode DeclareToCutFlowSvc ATLAS_NOT_THREAD_SAFE ();
102 StatusCode fillMap(std::map<std::string, std::vector<std::string> >& streamsModeMap,
103 const std::string& name,
104 const std::string& stream);
105};
106
107#endif //> !ATHENASERVICES_DECISIONSVC_H
Define macros for attributes used to control the static checker.
std::map< std::string, std::vector< std::string > > m_stream_accept
Maps of streams – algorithm names' vectors.
Definition DecisionSvc.h:89
virtual StatusCode finalize() override
virtual StatusCode addRequireAlg(const std::string &name, const std::string &stream) override
Add an algorithm to the list of RequireAlgs of a stream.
virtual const std::vector< std::string > getAcceptAlgs(const std::string &stream) const override
Return list of AcceptAlg names.
virtual ~DecisionSvc()
Destructor.
ServiceHandle< StoreGateSvc > m_evtStore
Definition DecisionSvc.h:97
ServiceHandle< ICutFlowSvc > m_cutflowSvc
Definition DecisionSvc.h:98
StatusCode DeclareToCutFlowSvc ATLAS_NOT_THREAD_SAFE()
std::vector< std::string > m_streamNames
Definition DecisionSvc.h:93
virtual StatusCode addAcceptAlg(const std::string &name, const std::string &stream) override
Add an algorithm to the list of AcceptAlgs of a stream.
DecisionSvc(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Gaudi::Property< bool > m_calcStats
Definition DecisionSvc.h:95
virtual StatusCode addVetoAlg(const std::string &name, const std::string &stream) override
Add an algorithm to the list of VetoAlgs of a stream.
virtual StatusCode initialize() override
Gaudi Service Implementation.
virtual const std::vector< std::string > getVetoAlgs(const std::string &stream) const override
Return list of VetoAlg names.
std::map< std::string, std::vector< std::string > > m_stream_require
Definition DecisionSvc.h:90
std::map< std::string, std::vector< std::string > > m_stream_veto
Definition DecisionSvc.h:91
virtual StatusCode addStream(const std::string &stream) override
Add a stream.
virtual bool isEventAccepted(const std::string &stream) const override
Test whether this event should be output.
virtual const std::vector< std::string > getRequireAlgs(const std::string &stream) const override
Return list of RequireAlg names.
virtual const std::vector< std::string > getStreams() const override
Return list of Streams.
virtual StatusCode start ATLAS_NOT_THREAD_SAFE() override
StatusCode fillMap(std::map< std::string, std::vector< std::string > > &streamsModeMap, const std::string &name, const std::string &stream)
ServiceHandle< IAlgExecStateSvc > m_algstateSvc
Definition DecisionSvc.h:99
StatusCode interpretAlgMap()