ATLAS Offline Software
Loading...
Searching...
No Matches
MonitorGlobal.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "MonitorGlobal.h"
7
8MonitorGlobal::MonitorGlobal(const std::string& name, const MonitoredRange* parent)
9 : MonitorBase(name, parent) {
10}
11
12StatusCode MonitorGlobal::newEvent(const CostData& data, const float weight) {
13
14 std::stringstream ss;
15 ss << "LumiBlock_" << std::setfill('0') << std::setw(5) << data.lb();
16 const size_t incrementWalltime = ( data.liveTimeIsPerEvent() or !counterExists(ss.str()) ) ? 1 : 0;
17
18 ATH_CHECK( getCounter(ss.str())->newEvent(data, incrementWalltime, weight) );
19 ATH_CHECK( getCounter("Total")->newEvent(data, incrementWalltime, weight) );
20
21 return StatusCode::SUCCESS;
22}
23
24
25std::unique_ptr<CounterBase> MonitorGlobal::newCounter(const std::string& name) {
26 return std::make_unique<CounterGlobal>(name, this);
27}
#define ATH_CHECK
Evaluate an expression and check for errors.
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
Caches and propagates event data to be used by monitoring algorithms.
Definition CostData.h:26
virtual StatusCode newEvent(const CostData &data, size_t index, float weight=1.0)=0
Pure virtual interface called by Monitor to instruct this Counter to perform its analysis.
CounterBase * getCounter(const std::string &name)
Retrieve counter by name.
MonitorBase()=delete
Forbid default constructor.
bool counterExists(const std::string &name) const
Check if a counter of a given name exists.
virtual std::unique_ptr< CounterBase > newCounter(const std::string &name) override
Concrete counter instantiation.
MonitorGlobal()=delete
Forbid default constructor.
virtual StatusCode newEvent(const CostData &data, const float weight=1.) override
Concrete dispatch method.
Container which represents a time range and holds a collection of Monitors which monitor this range.