]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCMonitor.cxx
Medium cuts moved to galice.cuts
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitor.cxx
index f3f010d0ad77b925cbf88cb1aed8242ee756e258..5bdfea009f27126e4e53144579931f2a73569704 100755 (executable)
@@ -54,6 +54,7 @@ New TPC monitoring package from Stefan Kniege. The monitoring package can be sta
 #include "AliTPCMonitorMappingHandler.h"
 #include "AliTPCMonitorFFT.h"
 #include "AliRawReader.h"
+#include "AliRawReaderRoot.h"
 #include "AliRawEventHeaderBase.h"
 #include "AliAltroRawStreamV3.h"
 #include "TH2F.h" 
@@ -567,7 +568,10 @@ Int_t AliTPCMonitor::ReadDataNew(Int_t secid)
   while(skip && GetProcNextEvent())
   {
     if(fVerb) cout << "AliTPCMonitor::ReadDataNew get event " << endl;
-    if(!fRawReader->NextEvent()) { AliError("Could not get next Event"); return 11 ;}
+    if(fRawReader->IsA()==AliRawReaderRoot::Class()){
+      printf("Root, NextEvent: %d\n",GetEventID());
+      if (!fRawReader->GotoEvent(GetEventID())){AliError("Could not get next Event"); return 11 ;}
+    } else if(!fRawReader->NextEvent()) { AliError("Could not get next Event"); return 11 ;}
     // skip all events but physics, calibration and software trigger events!
     UInt_t eventType=fRawReader->GetType();
     if ( !(eventType==AliRawEventHeaderBase::kPhysicsEvent ||
@@ -575,11 +579,33 @@ Int_t AliTPCMonitor::ReadDataNew(Int_t secid)
            eventType==AliRawEventHeaderBase::kSystemSoftwareTriggerEvent ||
            eventType==AliRawEventHeaderBase::kDetectorSoftwareTriggerEvent) ) {
              if (fVerb) cout<< "Skipping event! Its neither of 'physics, calibration and software trigger event'" << endl;
+             if(fRawReader->IsA()==AliRawReaderRoot::Class()){
+               if (fEventNumber<fRawReader->GetNumberOfEvents()-1) ++fEventNumber;
+               else {AliError("No more events");return 11;}
+             }
              continue;
            }
     skip=kFALSE;
-    fEventNumber = fRawReader->GetEventIndex();
-    fEventNumberOld = fRawReader->GetEventIndex();
+    //test if the TPC has data
+    UChar_t *data=0;
+    fRawReader->Select("TPC");
+    Int_t eventNr=fRawReader->GetEventIndex();
+    if (!fRawReader->ReadNextData(data)) {
+      skip=kTRUE;
+      printf("%d - %d\n",fEventNumber,fRawReader->GetNumberOfEvents());
+      if(fRawReader->IsA()==AliRawReaderRoot::Class()){
+        if (fEventNumber<fRawReader->GetNumberOfEvents()-1){
+          ++eventNr;
+          printf("inc conter\n");
+        }
+        else {
+          AliError("No more events");
+          return 11;
+        }
+      }
+    }
+    fEventNumber = eventNr;
+    fEventNumberOld = eventNr;
   }
   
 //   printf("secid: %d\n",secid);