ATLAS Offline Software
ITrigCostSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4  /*
5  */
6 
7 #ifndef TRIGCOSTMONITOR_ITRIGCOSTSVC_H
8 #define TRIGCOSTMONITOR_ITRIGCOSTSVC_H 1
9 
10 #include "GaudiKernel/IService.h"
11 #include "GaudiKernel/EventContext.h"
12 
14 #include "StoreGate/WriteHandle.h"
16 
17 #include <string>
18 
19 
24 class ITrigCostSvc : public virtual IService {
25 public:
30 
31  virtual ~ITrigCostSvc() {}
32 
36  enum AuditType { Before, After };
37 
41  virtual StatusCode startEvent(const EventContext&, const bool enableMonitoring) = 0;
42 
46  virtual StatusCode processAlg(const EventContext&, const std::string&, const AuditType) = 0;
47 
52 
56  virtual bool isMonitoredEvent(const EventContext& context, const bool includeMultiSlot) const = 0;
57 
61  virtual StatusCode monitorROS(const EventContext& context, robmonitor::ROBDataMonitorStruct payload) = 0;
62 
66  virtual StatusCode generateTimeoutReport(const EventContext& context, std::string& report) = 0;
67 
71  virtual StatusCode discardEvent(const EventContext& context) = 0;
72 };
73 
74 #endif // TRIGCOSTMONITOR_ITRIGCOSTSVC_H
robmonitor::ROBDataMonitorStruct
The structure which is used to monitor the ROB data request in L2 It is created for every addROBData ...
Definition: ROBDataMonitor.h:81
ITrigCostSvc
Pure virtual interface to be implimented by Trig Cost service(s)
Definition: ITrigCostSvc.h:24
ITrigCostSvc::monitorROS
virtual StatusCode monitorROS(const EventContext &context, robmonitor::ROBDataMonitorStruct payload)=0
To be used to cache ROBs for ROS.
checkTP.report
report
Definition: checkTP.py:127
ITrigCostSvc::processAlg
virtual StatusCode processAlg(const EventContext &, const std::string &, const AuditType)=0
To be used to signal the Before or After status of a named algorithm in a given context.
ROBDataMonitor.h
ITrigCostSvc::DeclareInterfaceID
DeclareInterfaceID(ITrigCostSvc, 1, 0)
Retrieve interface ID.
WriteHandle.h
Handle class for recording to StoreGate.
ITrigCostSvc::isMonitoredEvent
virtual bool isMonitoredEvent(const EventContext &context, const bool includeMultiSlot) const =0
To be used by external suppliers of data to know if they should spend the CPU to collate their monito...
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ITrigCostSvc::endEvent
virtual StatusCode endEvent(const EventContext &, SG::WriteHandle< xAOD::TrigCompositeContainer > &, SG::WriteHandle< xAOD::TrigCompositeContainer > &)=0
To be used to signal end of an event in a given slot, and to write an output payload to a given handl...
ITrigCostSvc::startEvent
virtual StatusCode startEvent(const EventContext &, const bool enableMonitoring)=0
To be used to signal to the service a new event in a given slot, and to send a monitor/don't monitor ...
ITrigCostSvc::After
@ After
Definition: ITrigCostSvc.h:36
TrigCompositeContainer.h
ITrigCostSvc::~ITrigCostSvc
virtual ~ITrigCostSvc()
Definition: ITrigCostSvc.h:31
PixelModuleFeMask_create_db.payload
string payload
Definition: PixelModuleFeMask_create_db.py:69
ITrigCostSvc::Before
@ Before
Definition: ITrigCostSvc.h:36
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
ITrigCostSvc::AuditType
AuditType
Disambiguation enum for the start or the end of an algorithm's execution.
Definition: ITrigCostSvc.h:36
ITrigCostSvc::generateTimeoutReport
virtual StatusCode generateTimeoutReport(const EventContext &context, std::string &report)=0
To be used to generate timeout report.
ITrigCostSvc::discardEvent
virtual StatusCode discardEvent(const EventContext &context)=0
Discard the monitored event.