]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliRawDataErrorLog.h
Changes for report #56707: On the proper usage of syswatch.log (Marian)
[u/mrichter/AliRoot.git] / STEER / AliRawDataErrorLog.h
1 #ifndef ALIRAWDATAERRORLOG_H
2 #define ALIRAWDATAERRORLOG_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /////////////////////////////////////////////////////////////////////
8 //                                                                 //
9 // class AliRawDataErrorLog                                        //
10 // This is a class for logging raw-data related errors.            //
11 // It is used to record and retrieve of the errors                 //
12 // during the reading and reconstruction of raw-data and ESD       //
13 // analysis.                                                       //
14 // Further description of the methods and functionality are given  //
15 // inline.                                                         //
16 //                                                                 //
17 // cvetan.cheshkov@cern.ch                                         //
18 //                                                                 //
19 /////////////////////////////////////////////////////////////////////
20
21 #include <TNamed.h>
22
23 class AliRawDataErrorLog: public TNamed {
24
25  public:
26
27   enum ERawDataErrorLevel {
28     kMinor = 1, 
29     kMajor = 2, 
30     kFatal = 3
31   };
32
33   AliRawDataErrorLog();
34   AliRawDataErrorLog(Int_t eventNumber, Int_t ddlId,
35                      ERawDataErrorLevel errorLevel,
36                      Int_t errorCode,
37                      const char *message = NULL);
38   AliRawDataErrorLog(const AliRawDataErrorLog & source);
39   AliRawDataErrorLog & operator=(const AliRawDataErrorLog & source);
40   virtual ~AliRawDataErrorLog() {};
41   virtual void Copy(TObject &obj) const;
42   
43   Int_t              GetEventNumber() const { return fEventNumber; }
44   Int_t              GetDdlID()       const { return fDdlID; }
45   ERawDataErrorLevel GetErrorLevel()  const { return fErrorLevel; }
46   const char*        GetErrorLevelAsString() const;
47   Int_t              GetErrorCode()   const { return fErrorCode; }
48   const char *       GetMessage()     const { return fName.Data(); }
49   Int_t              GetCount()       const { return fCount; }
50
51   Bool_t            IsSortable() const {return kTRUE;}
52   Int_t             Compare(const TObject* obj) const;
53
54   void               AddCount() { fCount++; }
55
56   void Print(Option_t* opt="") const;
57   
58  private:
59
60   Int_t              fEventNumber; // Event number as it appears in the input raw-data file
61   Int_t              fDdlID;       // ID of the DLL in which the error occured
62   ERawDataErrorLevel fErrorLevel;  // Level of the raw data error
63   Int_t              fErrorCode;   // Code of the raw data error (detector-specific)
64   Int_t              fCount;       // Counter of identical errors (occurances)
65
66   ClassDef(AliRawDataErrorLog, 3)
67 };
68
69 #endif