#ifndef ALIITSRAWSTREAMSPDERRORLOG_H
#define ALIITSRAWSTREAMSPDERRORLOG_H
#include <TH1F.h>
#include <TH2F.h>
#include <TGraph.h>
#include <TGText.h>
class AliITSRawStreamSPDErrorLog : public TObject {
public:
AliITSRawStreamSPDErrorLog();
AliITSRawStreamSPDErrorLog(const AliITSRawStreamSPDErrorLog& logger);
AliITSRawStreamSPDErrorLog& operator=(const AliITSRawStreamSPDErrorLog& logger);
virtual ~AliITSRawStreamSPDErrorLog();
enum {kNrErrorCodes = 21};
enum {kTotal = 0};
void Reset();
void ProcessError(UInt_t errorCode, UInt_t eq, Int_t bytesRead, Int_t headersRead, const Char_t *errMess);
void AddMessage(const Char_t *errMess);
void ResetEvent();
void ProcessEvent(UInt_t eventNum);
void AddErrorMessagesFromCurrentEvent(UInt_t eventNum);
void SummarizeEvent(UInt_t eventNum);
UInt_t GetNrErrors(UInt_t errorCode, UInt_t eq);
UInt_t GetNrErrorsAllEq(UInt_t errorCode);
UInt_t GetNrErrorsTotal(UInt_t errorCode, UInt_t eq);
UInt_t GetNrErrorsTotalAllEq(UInt_t errorCode);
void SetByteOffset(UInt_t eq, Int_t size);
void SuppressErrorMessages(UInt_t errorCode, Bool_t suppr = kTRUE);
void SuppressErrorEq(UInt_t eq, Bool_t suppr = kTRUE);
static UInt_t GetNrErrorCodes(){return kNrErrorCodes;}
TGraph* GetConsErrEvent(UInt_t errorCode, UInt_t eq);
TGraph* GetConsErrPos(UInt_t errorCode, UInt_t eq);
TH1F* GetConsErrType(UInt_t eq);
TH1F* GetConsErrFraction(UInt_t eq);
TH1F* GetConsErrFractionUnScaled(UInt_t eq);
TGText* GetText() {return fText;}
TGText* GetTextThisEvent(UInt_t eq) {if (eq<20) return fTextTmp[eq]; else return NULL;}
TGText* GetTextGeneralThisEvent() {return fTextTmpGeneral;}
UInt_t GetEventErrPosCounter(UInt_t errorCode, UInt_t eq);
UInt_t GetEventErrPos(UInt_t index, UInt_t errorCode, UInt_t eq);
private:
Int_t fNErrors[kNrErrorCodes][20];
Int_t fNErrorsTotal[kNrErrorCodes][20];
UInt_t fNEvents[20];
UInt_t fErrEventCounter[kNrErrorCodes][20];
UInt_t fErrPosCounter[kNrErrorCodes][20];
UInt_t fErrPosTMPCounter[kNrErrorCodes][20];
Int_t fByteOffset[20];
Bool_t fSuppressMess[kNrErrorCodes];
Bool_t fSuppressEq[20];
TGraph *fConsErrEvent[kNrErrorCodes][20];
TGraph *fConsErrPos[kNrErrorCodes][20];
TGraph *fConsErrPosTMP[kNrErrorCodes][20];
TH1F *fConsErrType[20];
TH1F *fConsErrFraction[20];
TGText *fText;
TGText *fTextTmp[20];
TGText *fTextTmpGeneral;
void InitHistograms();
void DeleteHistograms() ;
ClassDef(AliITSRawStreamSPDErrorLog, 2);
};
#endif
AliITSRawStreamSPDErrorLog.h:1 AliITSRawStreamSPDErrorLog.h:2 AliITSRawStreamSPDErrorLog.h:3 AliITSRawStreamSPDErrorLog.h:4 AliITSRawStreamSPDErrorLog.h:5 AliITSRawStreamSPDErrorLog.h:6 AliITSRawStreamSPDErrorLog.h:7 AliITSRawStreamSPDErrorLog.h:8 AliITSRawStreamSPDErrorLog.h:9 AliITSRawStreamSPDErrorLog.h:10 AliITSRawStreamSPDErrorLog.h:11 AliITSRawStreamSPDErrorLog.h:12 AliITSRawStreamSPDErrorLog.h:13 AliITSRawStreamSPDErrorLog.h:14 AliITSRawStreamSPDErrorLog.h:15 AliITSRawStreamSPDErrorLog.h:16 AliITSRawStreamSPDErrorLog.h:17 AliITSRawStreamSPDErrorLog.h:18 AliITSRawStreamSPDErrorLog.h:19 AliITSRawStreamSPDErrorLog.h:20 AliITSRawStreamSPDErrorLog.h:21 AliITSRawStreamSPDErrorLog.h:22 AliITSRawStreamSPDErrorLog.h:23 AliITSRawStreamSPDErrorLog.h:24 AliITSRawStreamSPDErrorLog.h:25 AliITSRawStreamSPDErrorLog.h:26 AliITSRawStreamSPDErrorLog.h:27 AliITSRawStreamSPDErrorLog.h:28 AliITSRawStreamSPDErrorLog.h:29 AliITSRawStreamSPDErrorLog.h:30 AliITSRawStreamSPDErrorLog.h:31 AliITSRawStreamSPDErrorLog.h:32 AliITSRawStreamSPDErrorLog.h:33 AliITSRawStreamSPDErrorLog.h:34 AliITSRawStreamSPDErrorLog.h:35 AliITSRawStreamSPDErrorLog.h:36 AliITSRawStreamSPDErrorLog.h:37 AliITSRawStreamSPDErrorLog.h:38 AliITSRawStreamSPDErrorLog.h:39 AliITSRawStreamSPDErrorLog.h:40 AliITSRawStreamSPDErrorLog.h:41 AliITSRawStreamSPDErrorLog.h:42 AliITSRawStreamSPDErrorLog.h:43 AliITSRawStreamSPDErrorLog.h:44 AliITSRawStreamSPDErrorLog.h:45 AliITSRawStreamSPDErrorLog.h:46 AliITSRawStreamSPDErrorLog.h:47 AliITSRawStreamSPDErrorLog.h:48 AliITSRawStreamSPDErrorLog.h:49 AliITSRawStreamSPDErrorLog.h:50 AliITSRawStreamSPDErrorLog.h:51 AliITSRawStreamSPDErrorLog.h:52 AliITSRawStreamSPDErrorLog.h:53 AliITSRawStreamSPDErrorLog.h:54 AliITSRawStreamSPDErrorLog.h:55 AliITSRawStreamSPDErrorLog.h:56 AliITSRawStreamSPDErrorLog.h:57 AliITSRawStreamSPDErrorLog.h:58 AliITSRawStreamSPDErrorLog.h:59 AliITSRawStreamSPDErrorLog.h:60 AliITSRawStreamSPDErrorLog.h:61 AliITSRawStreamSPDErrorLog.h:62 AliITSRawStreamSPDErrorLog.h:63 AliITSRawStreamSPDErrorLog.h:64 AliITSRawStreamSPDErrorLog.h:65 AliITSRawStreamSPDErrorLog.h:66 AliITSRawStreamSPDErrorLog.h:67 AliITSRawStreamSPDErrorLog.h:68 AliITSRawStreamSPDErrorLog.h:69 AliITSRawStreamSPDErrorLog.h:70 AliITSRawStreamSPDErrorLog.h:71 AliITSRawStreamSPDErrorLog.h:72 AliITSRawStreamSPDErrorLog.h:73 AliITSRawStreamSPDErrorLog.h:74 AliITSRawStreamSPDErrorLog.h:75 AliITSRawStreamSPDErrorLog.h:76 AliITSRawStreamSPDErrorLog.h:77 AliITSRawStreamSPDErrorLog.h:78 AliITSRawStreamSPDErrorLog.h:79 AliITSRawStreamSPDErrorLog.h:80 AliITSRawStreamSPDErrorLog.h:81 AliITSRawStreamSPDErrorLog.h:82 AliITSRawStreamSPDErrorLog.h:83 AliITSRawStreamSPDErrorLog.h:84 AliITSRawStreamSPDErrorLog.h:85 AliITSRawStreamSPDErrorLog.h:86 AliITSRawStreamSPDErrorLog.h:87 AliITSRawStreamSPDErrorLog.h:88 AliITSRawStreamSPDErrorLog.h:89 AliITSRawStreamSPDErrorLog.h:90