ATLAS Offline Software
Loading...
Searching...
No Matches
CostData.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include "CostData.h"
7
8
10 m_costCollection(nullptr),
12 m_liveTime(1.),
13 m_lb(0),
14 m_slot(0),
16 m_typeMapPtr(nullptr) {
17}
18
21
24 return StatusCode::SUCCESS;
25}
26
27StatusCode CostData::cache() {
28 for (const xAOD::TrigComposite* tc : costCollection()) {
29 if (tc->getDetail<uint32_t>("slot") != onlineSlot()) {
30 continue; // When monitoring the master slot, ignores algs running in different slots
31 }
32 m_algTotalTime += (tc->getDetail<uint64_t>("stop") - tc->getDetail<uint64_t>("start"));
33 }
34 return StatusCode::SUCCESS;
35}
36
37void CostData::setLb(uint32_t lb) {
38 m_lb = lb;
39}
40
41void CostData::setOnlineSlot(uint32_t slot) {
42 m_slot = slot;
43}
44
49
50
54
55
57 if (!m_costCollection) {
58 throw std::runtime_error("nullptr in CostData::costCollection(). Make sure CostData::set() is called.");
59 }
60 return *m_costCollection;
61}
62
63const std::map<size_t, std::vector<size_t>>& CostData::algToRequestMap() const {
64 return m_algToRos;
65}
66
68 return m_algTotalTime * 1e-3; // microseconds to milliseconds
69}
70
71uint32_t CostData::lb() const {
72 return m_lb;
73}
74
75uint32_t CostData::onlineSlot() const {
76 return m_slot;
77}
78
80 return (onlineSlot() == 0);
81}
82
83
84float CostData::liveTime() const {
85 return m_liveTime;
86}
87
88
89const std::string& CostData::algNameToClassType(size_t algNameHash) const {
90 const static std::string unknown = "UNKNOWN_CLASS";
91 if (m_typeMapPtr == nullptr) {
92 return unknown;
93 }
94 const auto it = m_typeMapPtr->find(algNameHash);
95 if (it == m_typeMapPtr->end()) {
96 return unknown;
97 }
98 return it->second;
99}
100
101
102void CostData::setTypeMap( const std::unordered_map<uint32_t, std::string>& typeMap ) {
103 m_typeMapPtr = &typeMap;
104}
105
106void CostData::setChainToAlgMap( const std::map<std::string, std::set<size_t>>& chainToAlgIdx ) {
107 m_chainToAlgIdx = &chainToAlgIdx;
108}
109
110void CostData::setChainToUniqAlgMap( const std::map<std::string, std::set<size_t>>& chainToAlgIdx ) {
111 m_chainToUniqAlgIdx = &chainToAlgIdx;
112}
113
114void CostData::setSequencersMap( const std::map<std::string, std::map<int16_t, std::set<size_t>>>& seqToAlg ) {
115 m_sequencers = &seqToAlg;
116}
117
118
119const std::map<std::string, std::set<size_t>>& CostData::chainToAlgMap() const {
120 return *m_chainToAlgIdx;
121}
122
123const std::map<std::string, std::set<size_t>>& CostData::chainToUniqAlgMap() const {
124 return *m_chainToUniqAlgIdx;
125}
126
127const std::map<std::string, std::map<int16_t, std::set<size_t>>>& CostData::sequencersMap() const {
128 return *m_sequencers;
129}
130
131const std::vector<TrigCompositeUtils::AlgToChainTool::ChainInfo>& CostData::seededChains() const {
132 return *m_seededChains;
133}
134
135void CostData::setSeededChains(const std::vector<TrigCompositeUtils::AlgToChainTool::ChainInfo>& seededChains) {
137}
#define ATH_CHECK
Evaluate an expression and check for errors.
static Double_t tc
const std::map< std::string, std::set< size_t > > & chainToUniqAlgMap() const
Getter of the chain to its unique alg names map.
Definition CostData.cxx:123
const std::map< std::string, std::set< size_t > > * m_chainToUniqAlgIdx
Mapping of chain name to its unique algorithms.
Definition CostData.h:191
const xAOD::TrigCompositeContainer & costCollection() const
Getter of the cached algorithm cost collection pointer.
Definition CostData.cxx:56
bool isMasterSlot() const
Definition CostData.cxx:79
const std::vector< TrigCompositeUtils::AlgToChainTool::ChainInfo > * m_seededChains
Set of seeded chains to monitor.
Definition CostData.h:193
uint32_t m_lb
Current luminosity block number.
Definition CostData.h:185
bool m_liveTimeIsPerEvent
If the livetime represents a single event or all of the current LB.
Definition CostData.h:187
void setLb(uint32_t lb)
Setter of effective P1 walltime represented by the current event.
Definition CostData.cxx:37
void setSequencersMap(const std::map< std::string, std::map< int16_t, std::set< size_t > > > &seqToAlg)
Set the sequence to alg idx map.
Definition CostData.cxx:114
const std::map< std::string, std::set< size_t > > & chainToAlgMap() const
Getter of the alg name to chains map.
Definition CostData.cxx:119
const std::string & algNameToClassType(size_t algNameHash) const
Get the class typename given an algorithm instance name.
Definition CostData.cxx:89
const std::map< size_t, std::vector< size_t > > & algToRequestMap() const
Getter of map between algorithm (index in costCollection) and ROS requests (indicies in rosCollection...
Definition CostData.cxx:63
uint32_t lb() const
Current luminosity block number.
Definition CostData.cxx:71
const std::map< std::string, std::map< int16_t, std::set< size_t > > > & sequencersMap() const
Getter of the sequence to alg idx map.
Definition CostData.cxx:127
uint32_t onlineSlot() const
Definition CostData.cxx:75
CostData()
Construct an empty CostData.
Definition CostData.cxx:9
void setTypeMap(const std::unordered_map< uint32_t, std::string > &typeMap)
Set internal type map pointer.
Definition CostData.cxx:102
void setChainToAlgMap(const std::map< std::string, std::set< size_t > > &algToChains)
Set the alg name to chains map.
Definition CostData.cxx:106
uint64_t m_algTotalTime
Integrated CPU time of all algorithms in the event.
Definition CostData.h:183
const std::unordered_map< uint32_t, std::string > * m_typeMapPtr
Cached non-owning pointer mapping algorithm instance names to types.
Definition CostData.h:188
bool liveTimeIsPerEvent() const
If a call to liveTime() is providing data on a single event or a whole LB.
Definition CostData.cxx:51
uint32_t m_slot
Current online slot number.
Definition CostData.h:186
const std::map< std::string, std::map< int16_t, std::set< size_t > > > * m_sequencers
Mapping of sequence to algorithms.
Definition CostData.h:192
void setSeededChains(const std::vector< TrigCompositeUtils::AlgToChainTool::ChainInfo > &seededChains)
Set the seeded chains set.
Definition CostData.cxx:135
const xAOD::TrigCompositeContainer * m_costCollection
Cached non-owning pointer to main algorithm cost collection.
Definition CostData.h:182
float m_liveTime
Effective walltime of either the event or the LB, in seconds (.
Definition CostData.h:184
StatusCode set(const xAOD::TrigCompositeContainer *costCollection, uint32_t onlineSlot)
Cache the cost and ros collections, after formally requesting it from storegate.
Definition CostData.cxx:19
StatusCode cache()
Compute and cache derived quantities, called automatically after set().
Definition CostData.cxx:27
const std::vector< TrigCompositeUtils::AlgToChainTool::ChainInfo > & seededChains() const
Getter of the seeded chains set.
Definition CostData.cxx:131
std::map< size_t, std::vector< size_t > > m_algToRos
Mapping of indexes from m_costCollection to corresponding ROS requests made by algorithm.
Definition CostData.h:189
float liveTime() const
Getter of effective P1 walltime represented by either the current event, or the current lumi block.
Definition CostData.cxx:84
void setLivetime(float time, bool liveTimeIsPerEvent)
Setter of effective P1 walltime represented by the current event, or the current lumi block.
Definition CostData.cxx:45
void setOnlineSlot(uint32_t slot)
Setter of the online Slot number of the current event.
Definition CostData.cxx:41
void setChainToUniqAlgMap(const std::map< std::string, std::set< size_t > > &algToChains)
Set the chain to its unique alg names map.
Definition CostData.cxx:110
float algTotalTimeMilliSec() const
Getter of the total algorithm CPU time in the event.
Definition CostData.cxx:67
const std::map< std::string, std::set< size_t > > * m_chainToAlgIdx
Mapping of chain to algorithms idx.
Definition CostData.h:190
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.