ALIROOT-5420 Changes for CDH v3
[u/mrichter/AliRoot.git] / MUON / MUONRawStreamTracker.C
index e8147c3..5b708c3 100644 (file)
@@ -42,6 +42,9 @@
 // MUON includes
 #include "AliMUONRawStreamTrackerHP.h"
 #include "TStopwatch.h"
+#include "AliRawDataErrorLog.h"
+#include "Riostream.h"
+#include "AliMUONLogger.h"
 
 #endif
 
@@ -332,6 +335,20 @@ void MUONRawStreamTrackerSimple(TString fileName = "./", Int_t maxEvent = 1000)
 }
 
 
+void ShowErrors(const AliRawReader& rawReader)
+{
+  for ( Int_t i = 0; i < rawReader.GetNumberOfErrorLogs(); ++i )
+  {
+    AliRawDataErrorLog* error = rawReader.GetErrorLog(i);
+    error->Print();
+  }
+
+  cout << Form("Number of error logs : %d (%d events)",
+               rawReader.GetNumberOfErrorLogs(),
+               rawReader.GetNumberOfEvents()) << endl;
+}
+
+
 void MUONRawStreamTrackerSimple2(TString fileName = "./", Int_t maxEvent = 1000)
 {
   /// This routine is an alternative to MUONRawStreamTrackerSimple() which is even faster.
@@ -342,7 +359,8 @@ void MUONRawStreamTrackerSimple2(TString fileName = "./", Int_t maxEvent = 1000)
   AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
   
   // raw stream
-  AliMUONRawStreamTrackerHP rawStream(rawReader);    
+  AliMUONRawStreamTrackerHP rawStream(rawReader);
+  rawStream.EnableRawReaderErrorLogger();
   
   //   Loop over events  
   Int_t iEvent = 0;
@@ -369,8 +387,55 @@ void MUONRawStreamTrackerSimple2(TString fileName = "./", Int_t maxEvent = 1000)
       }
     }
   }
+
+  ShowErrors(*rawReader);
   
   delete rawReader;
   timer.Print();
 }
 
+void MUONRawStreamTrackerErrorCount(TString fileName = "collection://filelist", Int_t maxEvent = -1)
+{
+  /// This routine is just a loop to get the error log at the end
+  
+  TStopwatch timer;
+  timer.Start(kTRUE);
+  
+  AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
+  
+  // raw stream
+  AliMUONRawStreamTrackerHP rawStream(rawReader);
+  rawStream.DisableWarnings();    
+
+  AliMUONLogger logger;
+  
+  rawStream.EnableMUONErrorLogger();  
+  rawStream.SetMUONErrorLogger(&logger);    
+  rawStream.SetLoggingDetailLevel(AliMUONRawStreamTrackerHP::kMediumErrorDetail);
+  
+  //   Loop over events  
+  Int_t iEvent = 0;
+  
+  while (rawReader->NextEvent()) 
+  {    
+    if (iEvent == maxEvent) break;
+    
+    rawStream.First();
+
+    const AliMUONRawStreamTrackerHP::AliBusPatch* buspatch = NULL;
+    
+    while ((buspatch = rawStream.Next()) != NULL)
+    {
+    }
+    
+    ++iEvent;
+  }
+  
+  logger.Print();
+  
+//  ShowErrors(*rawReader);
+
+  delete rawReader;
+  timer.Print();
+}
+