BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Utilities/BesTimerSvc/include/BesTimerSvc/BesTimer.h
Go to the documentation of this file.
1// this is -*- c++ -*-
2// $Id: BesTimer.h,v 1.4 2022/01/12 04:44:15 maqm Exp $
3// $Name: BesTimerSvc-00-01-00 $
4#ifndef BesTIMER_H_
5#define BesTIMER_H_
6#include <complex>
7#include <iostream>
8#include <string>
9#include <sys/time.h>
10
11class BesTimer {
12public:
13 // constructor
14 BesTimer( const std::string name );
15
16public:
17 // retrieve timer name
18 std::string& name() { return m_name; }
19 // retrieve elapsed time
20 float elapsed( void ) const { return ( m_started ? 0.0 : m_elapsed ); }
21 // retrieve mean and rms time
22 double mean( void ) const { return m_mean; }
23 double rms( void ) const {
24 double var = m_ms - m_mean * m_mean;
25 return ( var > 0 ? sqrt( var ) : 0.0 );
26 }
27 // retrieve number of measurements
28 int number_of_measurements( void ) const { return m_numberOfMeasurements; }
29
30 // set and retrieve property name
31 void propName( std::string name ) { m_propName = name; }
32 std::string& propName() { return m_propName; }
33 // set and retrieve property value
34 inline unsigned int propVal() { return m_propVal; }
35 inline void propVal( unsigned int val ) { m_propVal = val; }
36
37 double meanPropVal() { return m_meanVal; }
38 double meanTimePerObject() { return m_meanTimePerObject; }
39
40 // define less than operator based on name
41 bool operator<( BesTimer& it ) { return ( this->name() < it.name() ); }
42
43 // methods to control clock
44 void start( void );
45 void stop( void );
46 void pause( void );
47 void resume( void );
48 void reset();
49
50private:
51 std::string m_name;
52 struct timeval m_startTime;
53 float m_elapsed;
54 double m_mean; // mean time
55 double m_ms; // mean squared time
56 int m_numberOfMeasurements;
57 bool m_started;
58 bool m_paused;
59 std::string m_propName;
60 unsigned int m_propVal;
61 double m_meanVal;
62 double m_meanTimePerObject;
63 int m_NmeanTimePerObject;
64};
65
66#endif // BesTIMER_H
void pause(void)
void reset()
BesTimer(const std::string name)
void resume(void)
void start(void)
void stop(void)