#ifndef ROOT_TStopwatch #define ROOT_TStopwatch //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TStopwatch // // // // Stopwatch class. This class returns the real and cpu time between // // the start and stop events. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_TObject //*KEEP,TObject. #include "TObject.h" //*KEND. #endif class TStopwatch : public TObject { private: enum EState { kUndefined, kStopped, kRunning }; Double_t fStartRealTime; //wall clock start time Double_t fStopRealTime; //wall clock stop time Double_t fStartCpuTime; //cpu start time Double_t fStopCpuTime; //cpu stop time Double_t fTotalCpuTime; //total cpu time Double_t fTotalRealTime; //total real time EState fState; //stopwatch state public: TStopwatch(); void Start(Bool_t reset = kTRUE); void Stop(); void Continue(); Double_t RealTime(); void Reset() { ResetCpuTime(); ResetRealTime(); } void ResetCpuTime(Double_t time = 0) { Stop(); fTotalCpuTime = time; } void ResetRealTime(Double_t time = 0) { Stop(); fTotalRealTime = time; } Double_t CpuTime(); void Print(Option_t *option=""); static Double_t GetRealTime(); static Double_t GetCPUTime(); ClassDef(TStopwatch,0) //A stopwatch which times real and cpu time }; #endif