BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesTimer Class Reference

#include <BesTimer.h>

Public Member Functions

 BesTimer (const std::string name)
std::string & name ()
float elapsed (void) const
double mean (void) const
double rms (void) const
int number_of_measurements (void) const
void propName (std::string name)
std::string & propName ()
unsigned int propVal ()
void propVal (unsigned int val)
double meanPropVal ()
double meanTimePerObject ()
bool operator< (BesTimer &it)
void start (void)
void stop (void)
void pause (void)
void resume (void)
void reset ()
 BesTimer (const std::string name)
std::string & name ()
float elapsed (void) const
double mean (void) const
double rms (void) const
int number_of_measurements (void) const
void propName (std::string name)
std::string & propName ()
unsigned int propVal ()
void propVal (unsigned int val)
double meanPropVal ()
double meanTimePerObject ()
bool operator< (BesTimer &it)
void start (void)
void stop (void)
void pause (void)
void resume (void)
void reset ()
 BesTimer (const std::string name)
std::string & name ()
float elapsed (void) const
double mean (void) const
double rms (void) const
int number_of_measurements (void) const
void propName (std::string name)
std::string & propName ()
unsigned int propVal ()
void propVal (unsigned int val)
double meanPropVal ()
double meanTimePerObject ()
bool operator< (BesTimer &it)
void start (void)
void stop (void)
void pause (void)
void resume (void)
void reset ()

Detailed Description

Constructor & Destructor Documentation

◆ BesTimer() [1/3]

BesTimer::BesTimer ( const std::string name)

Definition at line 13 of file BesTimer.cxx.

13 : m_name( name ) {
14 m_numberOfMeasurements = 0;
15 m_mean = 0.0;
16 m_ms = 0.0;
17 m_elapsed = 0.0;
18 m_started = false;
19 m_paused = false;
20 m_propVal = 0;
21 m_meanVal = 0;
22 m_meanTimePerObject = 0.0;
23 m_NmeanTimePerObject = 0;
24}

Referenced by operator<().

◆ BesTimer() [2/3]

BesTimer::BesTimer ( const std::string name)

◆ BesTimer() [3/3]

BesTimer::BesTimer ( const std::string name)

Member Function Documentation

◆ elapsed() [1/3]

float BesTimer::elapsed ( void ) const
inline

Definition at line 20 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

20{ return ( m_started ? 0.0 : m_elapsed ); }

◆ elapsed() [2/3]

float BesTimer::elapsed ( void ) const
inline

Definition at line 20 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

20{ return ( m_started ? 0.0 : m_elapsed ); }

◆ elapsed() [3/3]

float BesTimer::elapsed ( void ) const
inline

Definition at line 20 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

20{ return ( m_started ? 0.0 : m_elapsed ); }

◆ mean() [1/3]

double BesTimer::mean ( void ) const
inline

Definition at line 22 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

22{ return m_mean; }

◆ mean() [2/3]

double BesTimer::mean ( void ) const
inline

Definition at line 22 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

22{ return m_mean; }

◆ mean() [3/3]

double BesTimer::mean ( void ) const
inline

Definition at line 22 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

22{ return m_mean; }

◆ meanPropVal() [1/3]

double BesTimer::meanPropVal ( )
inline

Definition at line 37 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

37{ return m_meanVal; }

◆ meanPropVal() [2/3]

double BesTimer::meanPropVal ( )
inline

Definition at line 37 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

37{ return m_meanVal; }

◆ meanPropVal() [3/3]

double BesTimer::meanPropVal ( )
inline

Definition at line 37 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

37{ return m_meanVal; }

◆ meanTimePerObject() [1/3]

double BesTimer::meanTimePerObject ( )
inline

Definition at line 38 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

38{ return m_meanTimePerObject; }

◆ meanTimePerObject() [2/3]

double BesTimer::meanTimePerObject ( )
inline

Definition at line 38 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

38{ return m_meanTimePerObject; }

◆ meanTimePerObject() [3/3]

double BesTimer::meanTimePerObject ( )
inline

Definition at line 38 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

38{ return m_meanTimePerObject; }

◆ name() [1/3]

std::string & BesTimer::name ( )
inline

Definition at line 18 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

18{ return m_name; }

Referenced by BesTimer(), operator<(), and propName().

◆ name() [2/3]

std::string & BesTimer::name ( )
inline

Definition at line 18 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

18{ return m_name; }

◆ name() [3/3]

std::string & BesTimer::name ( )
inline

Definition at line 18 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

18{ return m_name; }

◆ number_of_measurements() [1/3]

int BesTimer::number_of_measurements ( void ) const
inline

Definition at line 28 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

28{ return m_numberOfMeasurements; }

◆ number_of_measurements() [2/3]

int BesTimer::number_of_measurements ( void ) const
inline

Definition at line 28 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

28{ return m_numberOfMeasurements; }

◆ number_of_measurements() [3/3]

int BesTimer::number_of_measurements ( void ) const
inline

Definition at line 28 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

28{ return m_numberOfMeasurements; }

◆ operator<() [1/3]

bool BesTimer::operator< ( BesTimer & it)
inline

Definition at line 41 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

41{ return ( this->name() < it.name() ); }

◆ operator<() [2/3]

bool BesTimer::operator< ( BesTimer & it)
inline

Definition at line 41 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

41{ return ( this->name() < it.name() ); }

◆ operator<() [3/3]

bool BesTimer::operator< ( BesTimer & it)
inline

Definition at line 41 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

41{ return ( this->name() < it.name() ); }

◆ pause() [1/3]

void BesTimer::pause ( void )

Definition at line 77 of file BesTimer.cxx.

77 {
78 struct timeval tv;
79
80 // only pause if started
81 // a pause while paused is ignored
82 if ( m_paused || !m_started ) return;
83 m_paused = true;
84 gettimeofday( &tv, 0 );
85
86 float mtime;
87 int secs, usecs;
88
89 if ( tv.tv_sec >= m_startTime.tv_sec ) { secs = tv.tv_sec - m_startTime.tv_sec; }
90 else { secs = tv.tv_sec - m_startTime.tv_sec + SecsInDay; }
91 usecs = tv.tv_usec - m_startTime.tv_usec;
92 mtime = static_cast<float>( secs ) * 1000. + static_cast<float>( usecs ) / 1000.;
93 m_elapsed += mtime; // time so far
94}
#define SecsInDay
Definition BesTimer.cxx:11

◆ pause() [2/3]

void BesTimer::pause ( void )

◆ pause() [3/3]

void BesTimer::pause ( void )

◆ propName() [1/6]

std::string & BesTimer::propName ( )
inline

Definition at line 32 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

32{ return m_propName; }

◆ propName() [2/6]

std::string & BesTimer::propName ( )
inline

Definition at line 32 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

32{ return m_propName; }

◆ propName() [3/6]

std::string & BesTimer::propName ( )
inline

Definition at line 32 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

32{ return m_propName; }

◆ propName() [4/6]

void BesTimer::propName ( std::string name)
inline

Definition at line 31 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

31{ m_propName = name; }

◆ propName() [5/6]

void BesTimer::propName ( std::string name)
inline

Definition at line 31 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

31{ m_propName = name; }

◆ propName() [6/6]

void BesTimer::propName ( std::string name)
inline

Definition at line 31 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

31{ m_propName = name; }

◆ propVal() [1/6]

unsigned int BesTimer::propVal ( )
inline

Definition at line 34 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

34{ return m_propVal; }

◆ propVal() [2/6]

unsigned int BesTimer::propVal ( )
inline

Definition at line 34 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

34{ return m_propVal; }

◆ propVal() [3/6]

unsigned int BesTimer::propVal ( )
inline

Definition at line 34 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

34{ return m_propVal; }

◆ propVal() [4/6]

void BesTimer::propVal ( unsigned int val)
inline

Definition at line 35 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

35{ m_propVal = val; }

◆ propVal() [5/6]

void BesTimer::propVal ( unsigned int val)
inline

Definition at line 35 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

35{ m_propVal = val; }

◆ propVal() [6/6]

void BesTimer::propVal ( unsigned int val)
inline

Definition at line 35 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

35{ m_propVal = val; }

◆ reset() [1/3]

void BesTimer::reset ( )

Definition at line 111 of file BesTimer.cxx.

111 {
112 if ( !m_started )
113 {
114 m_elapsed = 0.0;
115 m_propVal = 0;
116 }
117}

◆ reset() [2/3]

void BesTimer::reset ( )

◆ reset() [3/3]

void BesTimer::reset ( )

◆ resume() [1/3]

void BesTimer::resume ( void )

Definition at line 96 of file BesTimer.cxx.

96 {
97 struct timeval tv;
98
99 if ( !m_started )
100 {
101 start(); // resume acts as start if not started
102 }
103 else if ( m_paused )
104 {
105 m_paused = false;
106 gettimeofday( &tv, 0 );
107 m_startTime = tv;
108 }
109}
void start(void)
Definition BesTimer.cxx:26

◆ resume() [2/3]

void BesTimer::resume ( void )

◆ resume() [3/3]

void BesTimer::resume ( void )

◆ rms() [1/3]

double BesTimer::rms ( void ) const
inline

Definition at line 23 of file InstallArea/x86_64-el9-gcc13-dbg/include/BesTimerSvc/BesTimer.h.

23 {
24 double var = m_ms - m_mean * m_mean;
25 return ( var > 0 ? sqrt( var ) : 0.0 );
26 }

◆ rms() [2/3]

double BesTimer::rms ( void ) const
inline

Definition at line 23 of file InstallArea/x86_64-el9-gcc13-opt/include/BesTimerSvc/BesTimer.h.

23 {
24 double var = m_ms - m_mean * m_mean;
25 return ( var > 0 ? sqrt( var ) : 0.0 );
26 }

◆ rms() [3/3]

double BesTimer::rms ( void ) const
inline

Definition at line 23 of file Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h.

23 {
24 double var = m_ms - m_mean * m_mean;
25 return ( var > 0 ? sqrt( var ) : 0.0 );
26 }

◆ start() [1/3]

void BesTimer::start ( void )

Definition at line 26 of file BesTimer.cxx.

26 {
27 struct timeval tv;
28
29 m_started = true;
30 m_paused = false;
31 m_elapsed = 0.0;
32 m_propVal = 0;
33 // if already started, the start time will be over-written
34 gettimeofday( &tv, 0 );
35 m_startTime = tv;
36}

Referenced by resume().

◆ start() [2/3]

void BesTimer::start ( void )

◆ start() [3/3]

void BesTimer::start ( void )

◆ stop() [1/3]

void BesTimer::stop ( void )

Definition at line 38 of file BesTimer.cxx.

38 {
39 struct timeval tv;
40
41 if ( !m_started ) return;
42
43 gettimeofday( &tv, 0 );
44 m_started = false;
45
46 if ( !m_paused )
47 {
48 float mtime;
49 int secs, usecs;
50
51 if ( tv.tv_sec >= m_startTime.tv_sec ) { secs = tv.tv_sec - m_startTime.tv_sec; }
52 else { secs = tv.tv_sec - m_startTime.tv_sec + SecsInDay; }
53 usecs = tv.tv_usec - m_startTime.tv_usec;
54 mtime = static_cast<float>( secs ) * 1000. + static_cast<float>( usecs ) / 1000.;
55
56 // elapsed time
57 m_elapsed += mtime;
58 }
59
60 // statistics - mean, rms
61 double denom = static_cast<double>( ++m_numberOfMeasurements );
62 double d = m_elapsed - m_mean;
63 m_mean += d / denom;
64 double dd = m_elapsed * m_elapsed - m_ms;
65 m_ms += dd / denom;
66
67 // mean property
68 m_meanVal += static_cast<double>( m_propVal - m_meanVal ) / denom;
69 if ( m_propVal != 0 )
70 {
71 double timePerObject = m_elapsed / static_cast<double>( m_propVal );
72 m_meanTimePerObject += static_cast<double>( timePerObject - m_meanTimePerObject ) /
73 static_cast<double>( ++m_NmeanTimePerObject );
74 }
75}

◆ stop() [2/3]

void BesTimer::stop ( void )

◆ stop() [3/3]

void BesTimer::stop ( void )

The documentation for this class was generated from the following files: