]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONStopwatchGroup.h
- Reshape the architecture of the Kalman tracking to make it more modular
[u/mrichter/AliRoot.git] / MUON / AliMUONStopwatchGroup.h
1 #ifndef ALIMUONSTOPWATCHGROUP_H
2 #define ALIMUONSTOPWATCHGROUP_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup base
10 /// \class AliMUONStopwatchGroup
11 /// \brief A class to group timers by name
12 /// 
13 // Author Laurent Aphecetche
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18
19 class TStopwatch;
20 class TMap;
21
22 class AliMUONStopwatchGroup : public TObject
23 {
24 public:
25   
26   AliMUONStopwatchGroup();
27   AliMUONStopwatchGroup(const AliMUONStopwatchGroup& rhs);
28   AliMUONStopwatchGroup& operator=(const AliMUONStopwatchGroup& rhs);
29
30   virtual ~AliMUONStopwatchGroup();
31
32   void Continue(const char* detector, const char* method);
33
34   Double_t CpuTime(const char* detector, const char* method) const;
35   
36   void Print(Option_t* opt="") const;
37   
38   Double_t RealTime(const char* detector, const char* method) const;
39   
40   void Reset();
41   
42   void Start(const char* detector, const char* method);
43
44   void Stop(const char* detector, const char* method);
45     
46 public:  
47   
48   TMap* Map(const char* detector) const;
49   
50   TStopwatch* Stopwatch(const char* detector, const char* method) const;
51   
52   void CopyTo(AliMUONStopwatchGroup& timers) const;
53   
54 private:
55     
56   TMap* fTimers; //< internal timers (map from TObjString to TStopwatch*)
57   
58   ClassDef(AliMUONStopwatchGroup,1) // A timer holder
59 };
60
61
62 #endif