|
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "../counters/CounterThread.h"
10 m_threadToCounterMap(),
16 if (not
data.isMasterSlot()) {
17 return StatusCode::SUCCESS;
21 bool isMultiSlot =
false;
24 if (slot !=
data.onlineSlot()){
31 ATH_MSG_DEBUG(
"Saving data from multiple slots to master slot was not enabled - ThreadOccupancy Monitoring won't be executed");
32 return StatusCode::SUCCESS;
38 std::stringstream threadIDStr;
39 threadIDStr <<
"Thread_" << std::setfill(
'0') << std::setw(5) << threadID;
48 return StatusCode::SUCCESS;
55 for (
const auto& nameCounterPair :
m_counters) {
57 lowTimestamp =
std::min(lowTimestamp,
ptr->getLowTimestamp());
58 highTimestamp =
std::max(highTimestamp,
ptr->getHighTimestamp());
62 ptr->setAllThreadsTimestamps(lowTimestamp, highTimestamp);
65 return StatusCode::SUCCESS;
70 return std::make_unique<CounterThread>(
name,
this);
MonitorThreadOccupancy()=delete
Forbid default constructor.
char data[hepevt_bytes_allocation_ATLAS]
virtual StatusCode newEvent(const CostData &data, const float weight=1.) override
Concrete dispatch method.
std::unordered_map< std::string, std::unique_ptr< CounterBase > > m_counters
Storage of Monitor's collection of Counters.
Concrete implimentation of Counter to monitor all algorithms executing on a single thread.
std::unordered_map< uint32_t, std::string > m_threadToCounterMap
Map thread's hash ID to a counting numeral embedded in a string.
StatusCode postProcess(float weight)
Get the global start and stop timestamps over all threads and sync these to the individual threads.
CounterBase * getCounter(const std::string &name)
Retrieve counter by name.
::StatusCode StatusCode
StatusCode definition for legacy code.
Class used to describe composite objects in the HLT.
Container which represents a time range and holds a collection of Monitors which monitor this range.
virtual std::unique_ptr< CounterBase > newCounter(const std::string &name) override
Concrete counter instantiation.
Caches and propagates event data to be used by monitoring algorithms.