]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTComponentBenchmark.h
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTComponentBenchmark.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 // ************************************************************************
4 // This file is property of and copyright by the ALICE HLT Project        *
5 // ALICE Experiment at CERN, All rights reserved.                         *
6 // See cxx source for full Copyright notice                               *
7 //                                                                        *
8 //*************************************************************************
9
10
11 #ifndef ALIHLTCOMPONENTBENCHMARK_H
12 #define ALIHLTCOMPONENTBENCHMARK_H
13
14 #include "TStopwatch.h"
15 #include "TString.h"
16
17 /**
18  * @class AliHLTComponentBenchmark
19  *
20  * AliHLTComponentBenchmark can be used to benchmark HLT compnoents
21  */
22 class AliHLTComponentBenchmark
23 {
24   public:
25
26   AliHLTComponentBenchmark( const char *Name="" );
27   ~AliHLTComponentBenchmark(){}
28
29   void Reset();
30   void SetName( const char *Name );
31   void SetTimer( Int_t i, const char *Name );
32   void StartNewEvent();
33   void Start( Int_t i );
34   void Stop( Int_t i );
35   void AddInput( Double_t x );
36   void AddOutput( Double_t x );
37   const char *GetStatistics();
38
39   private:
40
41   TString fComponentName;// name of the component
42   Int_t fNTimers; // n of timers
43   TStopwatch fTimers[10]; // the timers
44   TString fNames[10]; // timer names
45   ULong_t fNEvents; // N events processed
46   Double_t fTotalRealTime[10]; // total real time
47   Double_t fTotalCPUTime[10]; // total CPU time
48   Double_t fTotalInput; // total input size
49   Double_t fTotalOutput; // total output size
50   TString fStatistics;// string with statistics
51 };
52
53 #endif