ATLAS Offline Software
Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIGCOSTANALYSIS_MONITORBASE_H
6 #define TRIGCOSTANALYSIS_MONITORBASE_H 1
7 
8 #include "GaudiKernel/StatusCode.h"
10 
11 #include "AsgMessaging/MsgStream.h"
13 
15 
16 #include "CostData.h"
17 #include "CounterBase.h"
18 
19 #include <unordered_map>
20 
21 class MonitoredRange;
22 class TH1;
23 
34  public:
38  MonitorBase() = delete;
39 
45  MonitorBase(const std::string& name, const MonitoredRange* parent);
46 
50  virtual ~MonitorBase() = default;
51 
55  MonitorBase& operator=(const MonitorBase&) = delete;
56 
60  MonitorBase(const MonitorBase&) = delete;
61 
66  const std::string& getName() const;
67 
72  const MonitoredRange* getParent() const;
73 
80  TH1* bookGetPointer(TH1* hist, const std::string& tDir = "") const;
81 
87  bool counterExists(const std::string& name) const;
88 
94  CounterBase* getCounter(const std::string& name);
95 
101  virtual StatusCode newEvent(const CostData& data, float weight = 1.) = 0;
102 
106  virtual StatusCode endEvent(float weight = 1.);
107 
112  MsgStream& msg();
113 
119  MsgStream& msg(const MSG::Level lvl);
120 
126  bool msgLvl(const MSG::Level lvl);
127 
128  protected:
129 
136  virtual std::unique_ptr<CounterBase> newCounter(const std::string& name) = 0;
137 
138  std::unordered_map< std::string, std::unique_ptr<CounterBase> > m_counters;
139 
140  MsgStream m_msgStream;
141 
142  private:
143 
144  const std::string m_name;
146 
147 };
148 
149 #endif // TRIGCOSTANALYSIS_MONITORBASE_H
MonitorBase::msgLvl
bool msgLvl(const MSG::Level lvl)
Returns if requested level is same or higher than logging level.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:72
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
MonitorBase::m_counters
std::unordered_map< std::string, std::unique_ptr< CounterBase > > m_counters
Storage of Monitor's collection of Counters.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h:138
CounterBase
Forward declare.
Definition: CounterBase.h:25
MonitorBase::counterExists
bool counterExists(const std::string &name) const
Check if a counter of a given name exists.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:47
MonitorBase::MonitorBase
MonitorBase(const MonitorBase &)=delete
Forbid copy.
AthCheckMacros.h
MonitorBase::bookGetPointer
TH1 * bookGetPointer(TH1 *hist, const std::string &tDir="") const
Appends Monitor name (to histogram path) and forwards histogram book request to parent Range.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:37
AthMsgStreamMacros.h
MonitorBase::m_name
const std::string m_name
Monitor's name.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h:144
plotmaker.hist
hist
Definition: plotmaker.py:148
MonitorBase::newCounter
virtual std::unique_ptr< CounterBase > newCounter(const std::string &name)=0
Pure virtual Counter instantiation specialisation.
MonitorBase::m_msgStream
MsgStream m_msgStream
Logging member.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h:140
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
CounterBase.h
MonitorBase::endEvent
virtual StatusCode endEvent(float weight=1.)
Called by the framework.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:29
MonitorBase::getParent
const MonitoredRange * getParent() const
Return cached non-owning const ptr to this Monitor's parent Range.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:24
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
MonitorBase::m_parent
const MonitoredRange * m_parent
Monitor's parent Range.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h:145
HLTUtils.h
MonitorBase::getCounter
CounterBase * getCounter(const std::string &name)
Retrieve counter by name.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:52
MonitorBase::operator=
MonitorBase & operator=(const MonitorBase &)=delete
Forbid assignment.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MonitorBase::getName
const std::string & getName() const
Getter for Monitor's name.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:19
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MonitorBase::MonitorBase
MonitorBase()=delete
Forbid default constructor.
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CostData.h
MonitorBase
Forward declare.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.h:33
MonitoredRange
Container which represents a time range and holds a collection of Monitors which monitor this range.
Definition: MonitoredRange.h:29
MonitorBase::msg
MsgStream & msg()
Logging.
Definition: Trigger/TrigCost/TrigCostAnalysis/src/MonitorBase.cxx:64
TH1
Definition: rootspy.cxx:268
CostData
Caches and propagates event data to be used by monitoring algorithms.
Definition: CostData.h:26
MonitorBase::~MonitorBase
virtual ~MonitorBase()=default
Default destructor.
MonitorBase::newEvent
virtual StatusCode newEvent(const CostData &data, float weight=1.)=0
Pure virtual interface called by Range to instruct this Monitor to perform its analysis.
MsgStream.h