ROOT logo
#ifndef ALIRAWDATAERRORLOG_H
#define ALIRAWDATAERRORLOG_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/////////////////////////////////////////////////////////////////////
//                                                                 //
// class AliRawDataErrorLog                                        //
// This is a class for logging raw-data related errors.            //
// It is used to record and retrieve of the errors                 //
// during the reading and reconstruction of raw-data and ESD       //
// analysis.                                                       //
// Further description of the methods and functionality are given  //
// inline.                                                         //
//                                                                 //
// cvetan.cheshkov@cern.ch                                         //
//                                                                 //
/////////////////////////////////////////////////////////////////////

#include <TNamed.h>

class AliRawDataErrorLog: public TNamed {

 public:

  enum ERawDataErrorLevel {
    kMinor = 1, 
    kMajor = 2, 
    kFatal = 3
  };

  AliRawDataErrorLog();
  AliRawDataErrorLog(Int_t eventNumber, Int_t ddlId,
		     ERawDataErrorLevel errorLevel,
		     Int_t errorCode,
		     const char *message = NULL);
  AliRawDataErrorLog(const AliRawDataErrorLog & source);
  AliRawDataErrorLog & operator=(const AliRawDataErrorLog & source);
  virtual ~AliRawDataErrorLog() {};
  virtual void Copy(TObject &obj) const;
  
  Int_t              GetEventNumber() const { return fEventNumber; }
  Int_t              GetDdlID()       const { return fDdlID; }
  ERawDataErrorLevel GetErrorLevel()  const { return fErrorLevel; }
  const char*        GetErrorLevelAsString() const;
  Int_t              GetErrorCode()   const { return fErrorCode; }
  const char *       GetMessage()     const { return fName.Data(); }
  Int_t              GetCount()       const { return fCount; }

  Bool_t            IsSortable() const {return kTRUE;}
  Int_t             Compare(const TObject* obj) const;

  void               AddCount() { fCount++; }

  void Print(Option_t* opt="") const;
  
 private:

  Int_t              fEventNumber; // Event number as it appears in the input raw-data file
  Int_t              fDdlID;       // ID of the DLL in which the error occured
  ERawDataErrorLevel fErrorLevel;  // Level of the raw data error
  Int_t              fErrorCode;   // Code of the raw data error (detector-specific)
  Int_t              fCount;       // Counter of identical errors (occurances)

  ClassDef(AliRawDataErrorLog, 3)
};

#endif
 AliRawDataErrorLog.h:1
 AliRawDataErrorLog.h:2
 AliRawDataErrorLog.h:3
 AliRawDataErrorLog.h:4
 AliRawDataErrorLog.h:5
 AliRawDataErrorLog.h:6
 AliRawDataErrorLog.h:7
 AliRawDataErrorLog.h:8
 AliRawDataErrorLog.h:9
 AliRawDataErrorLog.h:10
 AliRawDataErrorLog.h:11
 AliRawDataErrorLog.h:12
 AliRawDataErrorLog.h:13
 AliRawDataErrorLog.h:14
 AliRawDataErrorLog.h:15
 AliRawDataErrorLog.h:16
 AliRawDataErrorLog.h:17
 AliRawDataErrorLog.h:18
 AliRawDataErrorLog.h:19
 AliRawDataErrorLog.h:20
 AliRawDataErrorLog.h:21
 AliRawDataErrorLog.h:22
 AliRawDataErrorLog.h:23
 AliRawDataErrorLog.h:24
 AliRawDataErrorLog.h:25
 AliRawDataErrorLog.h:26
 AliRawDataErrorLog.h:27
 AliRawDataErrorLog.h:28
 AliRawDataErrorLog.h:29
 AliRawDataErrorLog.h:30
 AliRawDataErrorLog.h:31
 AliRawDataErrorLog.h:32
 AliRawDataErrorLog.h:33
 AliRawDataErrorLog.h:34
 AliRawDataErrorLog.h:35
 AliRawDataErrorLog.h:36
 AliRawDataErrorLog.h:37
 AliRawDataErrorLog.h:38
 AliRawDataErrorLog.h:39
 AliRawDataErrorLog.h:40
 AliRawDataErrorLog.h:41
 AliRawDataErrorLog.h:42
 AliRawDataErrorLog.h:43
 AliRawDataErrorLog.h:44
 AliRawDataErrorLog.h:45
 AliRawDataErrorLog.h:46
 AliRawDataErrorLog.h:47
 AliRawDataErrorLog.h:48
 AliRawDataErrorLog.h:49
 AliRawDataErrorLog.h:50
 AliRawDataErrorLog.h:51
 AliRawDataErrorLog.h:52
 AliRawDataErrorLog.h:53
 AliRawDataErrorLog.h:54
 AliRawDataErrorLog.h:55
 AliRawDataErrorLog.h:56
 AliRawDataErrorLog.h:57
 AliRawDataErrorLog.h:58
 AliRawDataErrorLog.h:59
 AliRawDataErrorLog.h:60
 AliRawDataErrorLog.h:61
 AliRawDataErrorLog.h:62
 AliRawDataErrorLog.h:63
 AliRawDataErrorLog.h:64
 AliRawDataErrorLog.h:65
 AliRawDataErrorLog.h:66
 AliRawDataErrorLog.h:67
 AliRawDataErrorLog.h:68
 AliRawDataErrorLog.h:69