LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSRawStreamSPDErrorLog.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 5 20.0 %
Date: 2016-06-14 17:26:59 Functions: 1 9 11.1 %

          Line data    Source code
       1             : #ifndef ALIITSRAWSTREAMSPDERRORLOG_H
       2             : #define ALIITSRAWSTREAMSPDERRORLOG_H
       3             : 
       4             : /* $Id$ */
       5             : 
       6             : ///////////////////////////////////////////////////////////////////////
       7             : // Author: Henrik Tydesjo                                            //
       8             : // For easier handling of error messages from AliITSRawStreamSPD.    //
       9             : // The purpose of this class is to make possible the switch to the   //
      10             : // AliRoot raw data parsing routines in the onlinte monitoring       //
      11             : // programs, like SPD-MOOD, and still keep all the old functionality.//
      12             : ///////////////////////////////////////////////////////////////////////
      13             : 
      14             : #include <TH1F.h>
      15             : #include <TH2F.h>
      16             : #include <TGraph.h>
      17             : #include <TGText.h>
      18             : 
      19             : class AliITSRawStreamSPDErrorLog : public TObject {
      20             : 
      21             :  public:
      22             :   AliITSRawStreamSPDErrorLog();
      23             :   AliITSRawStreamSPDErrorLog(const AliITSRawStreamSPDErrorLog& logger);
      24             :   AliITSRawStreamSPDErrorLog& operator=(const AliITSRawStreamSPDErrorLog& logger);
      25             :   virtual ~AliITSRawStreamSPDErrorLog();
      26             : 
      27             :   enum    {kNrErrorCodes = 21};
      28             :   enum    {kTotal = 0};
      29             : 
      30             :   void    Reset();
      31             :   void    ProcessError(UInt_t errorCode, UInt_t eq, Int_t bytesRead, Int_t headersRead, const Char_t *errMess);
      32             :   void    AddMessage(const Char_t *errMess);
      33             : 
      34             :   void    ResetEvent();
      35             :   void    ProcessEvent(UInt_t eventNum);
      36             :   void    AddErrorMessagesFromCurrentEvent(UInt_t eventNum);
      37             :   void    SummarizeEvent(UInt_t eventNum);
      38             : 
      39             :   UInt_t  GetNrErrors(UInt_t errorCode, UInt_t eq);
      40             :   UInt_t  GetNrErrorsAllEq(UInt_t errorCode);
      41             :   UInt_t  GetNrErrorsTotal(UInt_t errorCode, UInt_t eq);
      42             :   UInt_t  GetNrErrorsTotalAllEq(UInt_t errorCode);
      43             : 
      44             :   void    SetByteOffset(UInt_t eq, Int_t size);
      45             :   void    SuppressErrorMessages(UInt_t errorCode, Bool_t suppr = kTRUE);
      46             :   void    SuppressErrorEq(UInt_t eq, Bool_t suppr = kTRUE);
      47             : 
      48           0 :   static  UInt_t GetNrErrorCodes(){return kNrErrorCodes;}
      49             : 
      50             :   TGraph* GetConsErrEvent(UInt_t errorCode, UInt_t eq);
      51             :   TGraph* GetConsErrPos(UInt_t errorCode, UInt_t eq);
      52             :   TH1F*   GetConsErrType(UInt_t eq);
      53             :   TH1F*   GetConsErrFraction(UInt_t eq);        // NB!!! Take care of deleting returned object later
      54             :   TH1F*   GetConsErrFractionUnScaled(UInt_t eq);
      55           0 :   TGText* GetText() {return fText;}
      56           0 :   TGText* GetTextThisEvent(UInt_t eq) {if (eq<20) return fTextTmp[eq]; else return NULL;}
      57           0 :   TGText* GetTextGeneralThisEvent() {return fTextTmpGeneral;}
      58             : 
      59             :   UInt_t  GetEventErrPosCounter(UInt_t errorCode, UInt_t eq);
      60             :   UInt_t  GetEventErrPos(UInt_t index, UInt_t errorCode, UInt_t eq);
      61             : 
      62             :  private:
      63             :   Int_t   fNErrors[kNrErrorCodes][20];          // number of errors for this event, for each code and eq
      64             :   Int_t   fNErrorsTotal[kNrErrorCodes][20];     // number of errors for all events, for each code and eq
      65             :   UInt_t  fNEvents[20];                         // number of events used, for each eq
      66             :   UInt_t  fErrEventCounter[kNrErrorCodes][20];  // event counter used when filling graph
      67             :   UInt_t  fErrPosCounter[kNrErrorCodes][20];    // event counter used when filling graph
      68             :   UInt_t  fErrPosTMPCounter[kNrErrorCodes][20]; // event counter used when filling graph
      69             :   Int_t   fByteOffset[20];                      // offset: how many bytes in the equipment header, for each eq
      70             :   Bool_t  fSuppressMess[kNrErrorCodes];         // do we suppress error messages for a specific error code?
      71             :   Bool_t  fSuppressEq[20];                      // do we suppress error messages for a specific eq?
      72             : 
      73             :   TGraph  *fConsErrEvent[kNrErrorCodes][20];    // graphs to display number of errors found in each event
      74             :   TGraph  *fConsErrPos[kNrErrorCodes][20];      // graphs to display number of bytes read for each error and event
      75             :   TGraph  *fConsErrPosTMP[kNrErrorCodes][20];   // temporary, to fill tgraph above for event
      76             :   TH1F    *fConsErrType[20];                    // histogram of how many errors for each error code
      77             :   TH1F    *fConsErrFraction[20];                // histogram of rate of events with errors for each error code
      78             : 
      79             :   TGText  *fText;                               // text buffer for all events analyzed so far
      80             :   TGText  *fTextTmp[20];                        // text buffer for this event (defined error codes)
      81             :   TGText  *fTextTmpGeneral;                     // text buffer for this event (general errors)
      82             : 
      83             :   void    InitHistograms();
      84             :   void    DeleteHistograms() ;
      85             : 
      86         118 :   ClassDef(AliITSRawStreamSPDErrorLog, 2);
      87             : };
      88             : 
      89             : #endif
      90             : 

Generated by: LCOV version 1.11