]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MUONRawStreamTracker.C
- removing hardcoded value, and using constants class to get number of max addresses.
[u/mrichter/AliRoot.git] / MUON / MUONRawStreamTracker.C
index e8147c36affa0d766665a571d985ae2ea3628dc6..995f4b73379a793b403977912c0473b021169d9a 100644 (file)
@@ -42,6 +42,8 @@
 // MUON includes
 #include "AliMUONRawStreamTrackerHP.h"
 #include "TStopwatch.h"
+#include "AliRawDataErrorLog.h"
+#include "Riostream.h"
 
 #endif
 
@@ -332,6 +334,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 +358,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,6 +386,44 @@ 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.EnableRawReaderErrorLogger();    
+  rawStream.DisableWarnings();    
+  
+  //   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)
+    {
+    }
+  }
+  
+  ShowErrors(*rawReader);
   
   delete rawReader;
   timer.Print();