// MUON includes
#include "AliMUONRawStreamTrackerHP.h"
#include "TStopwatch.h"
+#include "AliRawDataErrorLog.h"
+#include "Riostream.h"
+#include "AliMUONLogger.h"
#endif
}
+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.
AliRawReader* rawReader = AliRawReader::Create(fileName.Data());
// raw stream
- AliMUONRawStreamTrackerHP rawStream(rawReader);
+ AliMUONRawStreamTrackerHP rawStream(rawReader);
+ rawStream.EnableRawReaderErrorLogger();
// Loop over events
Int_t iEvent = 0;
}
}
}
+
+ 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();
+}
+