ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigHypothesis
TrigHLTJetHypo
src
JetTrigTimer.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
./JetTrigTimer.h
"
6
#include <cassert>
7
8
#include <sstream>
9
10
11
using namespace
std::chrono;
12
13
JetTrigTimer::JetTrigTimer
(
bool
ns):
m_nanoseconds
(ns) {}
14
15
void
JetTrigTimer::start
(){
16
// reset start time to now
17
18
m_nCalls
+= 1;
19
m_start
= system_clock::now();
20
}
21
22
void
JetTrigTimer::update
(){
23
// reset stop time to now, calculate delta and sum delta.
24
// does not change the start time
25
26
m_stop
= system_clock::now();
27
if
(
m_nanoseconds
){
28
m_elapsedDelta
+= duration_cast<nanoseconds>(
m_stop
-
m_start
).count();
29
}
else
{
30
m_elapsedDelta
+= duration_cast<microseconds>(
m_stop
-
m_start
).count();
31
}
32
}
33
34
35
void
JetTrigTimer::reset
() noexcept {
36
// general reset
37
38
m_nCalls
= 0;
39
m_elapsedDelta
= 0.;
40
m_nCalls
= 0;
41
m_start
= std::chrono::system_clock::now();
42
m_stop
=
m_start
;
43
}
44
45
std::string
JetTrigTimer::read
()
const
{
46
// reuturn curent data as a string
47
48
auto
record =
read_bare
();
49
auto
delta = std::get<0>(record);
50
auto
ncalls = std::get<1>(record);
51
const
auto
&
units
= std::get<2>(record);
52
53
std::stringstream
ss
;
54
double
avTime = ncalls == 0 ? 0. : delta /
m_nCalls
;
55
ss
<<
"time("
<<
units
<<
"): "
<< delta <<
" nCalls: "
<< ncalls <<
" tav: "
56
<< avTime;
57
return
ss
.str();
58
}
59
60
std::tuple<double, int, std::string>
JetTrigTimer::read_bare
()
const
{
61
// reuturn curent data in numeric form
62
63
return
std::make_tuple(
m_elapsedDelta
,
m_nCalls
,
units
());
64
}
65
66
std::string
JetTrigTimer::readAndReset
(){
67
// obtain current data as a string then reset the timer
68
auto
s =
read
();
69
reset
();
70
return
s;
71
}
72
73
74
double
JetTrigTimer::elapsed_to_now
() {
75
update
();
76
m_start
= system_clock::now();
77
return
m_elapsedDelta
;
78
}
79
80
double
JetTrigTimer::elapsed_to_update
() {
81
// update the current data, return the time since start()
82
return
m_elapsedDelta
;
83
}
84
85
86
std::string
JetTrigTimer::units
()
const
{
87
return
m_nanoseconds
?
"ns"
:
"us"
;
88
}
89
JetTrigTimer.h
ss
static Double_t ss
Definition
LArPhysWaveHECTool.cxx:37
JetTrigTimer::readAndReset
std::string readAndReset()
Definition
JetTrigTimer.cxx:66
JetTrigTimer::units
std::string units() const
Definition
JetTrigTimer.cxx:86
JetTrigTimer::m_elapsedDelta
double m_elapsedDelta
Definition
JetTrigTimer.h:32
JetTrigTimer::update
void update()
Definition
JetTrigTimer.cxx:22
JetTrigTimer::read
std::string read() const
Definition
JetTrigTimer.cxx:45
JetTrigTimer::JetTrigTimer
JetTrigTimer(bool nanoseconds=false)
Definition
JetTrigTimer.cxx:13
JetTrigTimer::m_nCalls
std::size_t m_nCalls
Definition
JetTrigTimer.h:28
JetTrigTimer::m_start
std::chrono::system_clock::time_point m_start
Definition
JetTrigTimer.h:29
JetTrigTimer::elapsed_to_update
double elapsed_to_update()
Definition
JetTrigTimer.cxx:80
JetTrigTimer::m_stop
std::chrono::system_clock::time_point m_stop
Definition
JetTrigTimer.h:30
JetTrigTimer::reset
void reset() noexcept
Definition
JetTrigTimer.cxx:35
JetTrigTimer::m_nanoseconds
bool m_nanoseconds
Definition
JetTrigTimer.h:33
JetTrigTimer::elapsed_to_now
double elapsed_to_now()
Definition
JetTrigTimer.cxx:74
JetTrigTimer::read_bare
std::tuple< double, int, std::string > read_bare() const
Definition
JetTrigTimer.cxx:60
JetTrigTimer::start
void start()
Definition
JetTrigTimer.cxx:15
Generated on
for ATLAS Offline Software by
1.17.0