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