dd option to disable error logging for HLT use
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Aug 2010 18:10:18 +0000 (18:10 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 16 Aug 2010 18:10:18 +0000 (18:10 +0000)
TRD/AliTRDrawStream.cxx
TRD/AliTRDrawStream.h

index 407a25d..9ada058 100644 (file)
@@ -122,6 +122,7 @@ AliTRDrawStream::ErrorBehav_t AliTRDrawStream::fgErrorBehav[] = {
 
 AliTRDrawStream::AliTRDrawStream(AliRawReader *rawReader) :
   fStats(), 
+  fStoreError(&AliTRDrawStream::StoreErrorTree),
   fRawReader(rawReader),
   fDigitsManager(0x0),
   fDigitsParam(0x0),
@@ -1160,7 +1161,7 @@ void AliTRDrawStream::EquipmentError(ErrorCode_t err, const char *const msg, ...
   fLastError.fRob    = -1;
   fLastError.fMcm    = -1;
   fLastError.fError  = err;
-  fErrors->Fill();
+  (this->*fStoreError)();
 
   va_list ap;
   if (fgErrorDebugLevel[err] > 10) 
@@ -1187,7 +1188,7 @@ void AliTRDrawStream::StackError(ErrorCode_t err, const char *const msg, ...)
   fLastError.fRob    = -1;
   fLastError.fMcm    = -1;
   fLastError.fError  = err;
-  fErrors->Fill();
+  (this->*fStoreError)();
 
   va_list ap;
   if (fgErrorDebugLevel[err] > 0) 
@@ -1214,7 +1215,7 @@ void AliTRDrawStream::LinkError(ErrorCode_t err, const char *const msg, ...)
   fLastError.fRob    = -1;
   fLastError.fMcm    = -1;
   fLastError.fError  = err;
-  fErrors->Fill();
+  (this->*fStoreError)();
 
   va_list ap;
   if (fgErrorDebugLevel[err] > 0)
@@ -1241,7 +1242,7 @@ void AliTRDrawStream::ROBError(ErrorCode_t err, const char *const msg, ...)
   fLastError.fRob    = fCurrRobPos;
   fLastError.fMcm    = -1;
   fLastError.fError  = err;
-  fErrors->Fill();
+  (this->*fStoreError)();
 
   va_list ap;
   if (fgErrorDebugLevel[err] > 0) 
@@ -1268,7 +1269,7 @@ void AliTRDrawStream::MCMError(ErrorCode_t err, const char *const msg, ...)
   fLastError.fRob    = fCurrRobPos;
   fLastError.fMcm    = fCurrMcmPos;
   fLastError.fError  = err;
-  fErrors->Fill();
+  (this->*fStoreError)();
 
   va_list ap;
   if (fgErrorDebugLevel[err] > 0) 
@@ -1378,3 +1379,15 @@ void AliTRDrawStream::DumpRaw(TString title, UInt_t *start, Int_t length)
   }
   AliInfo(title);
 }
+
+AliTRDrawStream::AliTRDrawStreamError::AliTRDrawStreamError(Int_t error, Int_t sector, Int_t stack, Int_t link, Int_t rob, Int_t mcm) : 
+  fError(error),
+  fSector(sector),
+  fStack(stack),
+  fLink(link), 
+  fRob(rob),
+  fMcm(mcm)
+{
+  // ctor
+
+}
index b86e053..7570856 100644 (file)
 #define ALITRDRAWSTREAM_H
 
 #include "TObject.h"
+#include "TClonesArray.h"
+#include "TTree.h"
 
 #include "AliTRDrawStreamBase.h"
-//#include "AliRawReader.h"
 
 class TObjArray;
 class TString;
-class TTree;
 class TBranch;
 
 class AliRawReader;
@@ -37,6 +37,9 @@ class AliTRDrawStream : public AliTRDrawStreamBase
   Bool_t SetReader(AliRawReader *rawReader) { fRawReader = rawReader; return kTRUE; }
   void SetDigitsManager(AliTRDdigitsManager *digMgr) { fDigitsManager = digMgr; }
 
+  AliTRDdigitsManager* GetDigitsManager() const { return fDigitsManager; }
+  TTree *GetTrackletTree() const { return fTrackletTree; }
+
   Bool_t ReadEvent(TTree *trackletTree = 0x0);
 
   Bool_t NextDDL();
@@ -45,6 +48,9 @@ class AliTRDrawStream : public AliTRDrawStreamBase
 
   Bool_t ConnectTracklets(TTree *trklTree);
 
+  void EnableErrorStorage()  { fStoreError = &AliTRDrawStream::StoreErrorTree; }
+  void DisableErrorStorage() { fStoreError = &AliTRDrawStream::ForgetError; }
+
   // legacy code, to be removed
   Bool_t SetRawVersion(Int_t) { return kTRUE; }
   void SetSharedPadReadout(Bool_t) {}
@@ -176,6 +182,9 @@ class AliTRDrawStream : public AliTRDrawStreamBase
   void LinkError     (ErrorCode_t err = kUnknown, const char *const msg = "", ...); 
   void ROBError      (ErrorCode_t err = kUnknown, const char *const msg = "", ...); 
   void MCMError      (ErrorCode_t err = kUnknown, const char *const msg = "", ...); 
+  void StoreErrorTree() { fErrors->Fill(); }
+  void ForgetError() { return; }
+  void (AliTRDrawStream::*fStoreError)();       //! function pointer to method used for storing the error
 
   static const char* fgErrorMessages[kLastErrorCode];     // error messages corresponding to the error codes
   static const Int_t fgErrorDebugLevel[kLastErrorCode];   // error debug level
@@ -187,8 +196,17 @@ class AliTRDrawStream : public AliTRDrawStreamBase
   AliTRDdigitsParam   *fDigitsParam;            // pointer to the parameters belonging to the digits
 
   TTree *fErrors;                               // tree containing the occured error codes
-  struct { Int_t fSector; Int_t fStack; Int_t fLink; Int_t fError; Int_t fRob; Int_t fMcm; } 
-  fLastError;                                   // last error which occured
+  class AliTRDrawStreamError { 
+  public: 
+    AliTRDrawStreamError(Int_t error = 0, Int_t sector = -1, Int_t stack = -1, Int_t link = -1, Int_t rob = -1, Int_t mcm = -1); 
+    Int_t fError;                               // error code
+    Int_t fSector;                             // sector
+    Int_t fStack;                              // stack
+    Int_t fLink;                               // link
+    Int_t fRob;                                        // ROB no
+    Int_t fMcm;                                        // MCM no
+    ClassDef(AliTRDrawStreamError, 1);
+  } fLastError;                                 // last error which occured
   UInt_t fErrorFlags;                           // error flags used to steer subsequent reading
   char   fErrorBuffer[100];                     // buffer for error message