]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONLogger.h
In MUONRecoCheck:
[u/mrichter/AliRoot.git] / MUON / AliMUONLogger.h
1 #ifndef ALIMUONLOGGER_H
2 #define ALIMUONLOGGER_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 core
10 /// \class AliMUONLogger
11 /// \brief A logger that keeps track of the number of times a message appeared
12 /// 
13 //  Author Laurent Aphecetche
14
15 #include <Riostream.h>
16
17 #ifndef ROOT_TObject
18 #  include "TObject.h"
19 #endif
20
21 #ifndef ROOT_TString
22 #  include "TString.h"
23 #endif
24
25 class AliMUONStringIntMap;
26
27 class AliMUONLogger : public TObject
28 {
29 public:
30   AliMUONLogger(Int_t maxNumberOfEntries=-1);
31   virtual ~AliMUONLogger();
32   
33   Int_t  Log(const char* message);
34   
35   void   Print(Option_t* opt="") const;
36   
37   void   Print(TString& key, ofstream& out) const;
38   
39   void   Clear(Option_t* /*option*/ ="");
40   
41   Bool_t Next(TString& msg, Int_t& occurance);
42   
43   void   ResetItr();
44   
45   Int_t NumberOfEntries() const;
46   
47 private:
48   /// Not implemented
49   AliMUONLogger(const AliMUONLogger& rhs); // not implemented
50   /// Not implemented
51   AliMUONLogger& operator=(const AliMUONLogger& rhs); // not implemented
52   
53 private:
54   
55   Int_t fMaxNumberOfEntries; //!< after this number, print and reset
56   AliMUONStringIntMap* fLog; //!< map from message to number of times the message was issued
57   
58   ClassDef(AliMUONLogger,1) // A logger that keeps track of the number of times a message appeared
59 };
60
61 #endif