ATLAS Offline Software
Loading...
Searching...
No Matches
TrigMonROB.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#ifndef TRIGMON_ROB_H
6#define TRIGMON_ROB_H
7
8/*
9 @author Rustem Ospanov
10 @date July 2009
11
12 @brief Summary of single request for ROB data.
13 This is a reduced copy of ROBDataMonitorStruct.
14*/
15
16// Framework
18
19// C/C++
20#include <stdint.h>
21#include <iostream>
22#include <vector>
23
24// Local
28
30{
31 public:
32
33 TrigMonROB();
34 TrigMonROB(uint32_t requestor_id,
35 long int beg_sec, long int beg_usec,
36 long int end_sec, long int end_usec);
38
39 void addData(const TrigMonROBData &data) { m_data.push_back(data); }
40 void addWord(const uint32_t word) { m_word.push_back(word); }
41
42 std::vector<TrigMonROBData>& getData() { return m_data; }
43 std::vector<uint32_t>& getWord() { return m_word; }
44
45 uint32_t getRequestorId() const { return m_word[0]; }
46 double getTimer() const { return elapsed(); }
47 double elapsed() const { return stop().getElapsed(start()); }
48
49 const TrigMonTimer start() const { return TrigMonTimer(getStart()); }
50 const TrigMonTimer stop() const { return TrigMonTimer(getStop()); }
51
52 const std::vector<TrigMonROBData>& getData() const { return m_data; }
53 const std::vector<TrigMonROBSum> getSum() const;
54
55 uint32_t getStart() const { return m_word[1]; }
56 uint32_t getStop() const { return m_word[2]; }
57
58 const std::vector<uint32_t>& getWord() const { return m_word; }
59
60 void print(std::ostream &os = std::cout) const;
61
62 private:
63
64 std::vector<uint32_t> m_word; // Data payload (see below)
65 std::vector<TrigMonROBData> m_data; // Full data for requested robs
66};
67
68//
69// m_word[0] = Hash id of requesting algorithm name
70// m_word[1] = Encoded TrigMonTimer for start time
71// m_word[2] = Encoded TrigMonTimer for stop time
72// m_word[i] = Encoded words for TrigMonROBSum, i = 3,...
73//
74
75std::string str(const TrigMonROB &);
76
77//
78// Inlined comparison operators
79//
80inline bool operator==(const TrigMonROB &lhs, const TrigMonROB &rhs) {
81 return lhs.getRequestorId() == rhs.getRequestorId();
82}
83inline bool operator <(const TrigMonROB &lhs, const TrigMonROB &rhs) {
84 return lhs.getRequestorId() < rhs.getRequestorId();
85}
86
87inline bool operator==(const TrigMonROB &rob, unsigned int id) {
88 return rob.getRequestorId() == id;
89}
90inline bool operator==(unsigned int id, const TrigMonROB &rob) {
91 return rob.getRequestorId() == id;
92}
93
94CLASS_DEF( TrigMonROB , 157550435 , 1 )
95
96#endif
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
bool operator<(const TrigMonROB &lhs, const TrigMonROB &rhs)
Definition TrigMonROB.h:83
bool operator==(const TrigMonROB &lhs, const TrigMonROB &rhs)
Definition TrigMonROB.h:80
std::vector< uint32_t > m_word
Definition TrigMonROB.h:64
uint32_t getStop() const
Definition TrigMonROB.h:56
void addData(const TrigMonROBData &data)
Definition TrigMonROB.h:39
uint32_t getStart() const
Definition TrigMonROB.h:55
std::vector< uint32_t > & getWord()
Definition TrigMonROB.h:43
void addWord(const uint32_t word)
Definition TrigMonROB.h:40
uint32_t getRequestorId() const
Definition TrigMonROB.h:45
std::vector< TrigMonROBData > m_data
Definition TrigMonROB.h:65
const std::vector< TrigMonROBSum > getSum() const
void print(std::ostream &os=std::cout) const
const std::vector< uint32_t > & getWord() const
Definition TrigMonROB.h:58
std::vector< TrigMonROBData > & getData()
Definition TrigMonROB.h:42
double elapsed() const
Definition TrigMonROB.h:47
const TrigMonTimer stop() const
Definition TrigMonROB.h:50
const TrigMonTimer start() const
Definition TrigMonROB.h:49
double getTimer() const
Definition TrigMonROB.h:46
const std::vector< TrigMonROBData > & getData() const
Definition TrigMonROB.h:52
double getElapsed(const TrigMonTimer &start) const