Update responsibles for MCH, MTR, HMP
[u/mrichter/AliRoot.git] / RAW / AliRawReader.cxx
index 3c188de..fc05290 100644 (file)
@@ -53,6 +53,7 @@
 #include "AliDAQ.h"
 #include "AliLog.h"
 
+using std::ifstream;
 ClassImp(AliRawReader)
 
 
@@ -61,6 +62,7 @@ AliRawReader::AliRawReader() :
   fEquipmentIdsOut(NULL),
   fRequireHeader(kTRUE),
   fHeader(NULL),
+  fHeaderV3(NULL),
   fCount(0),
   fSelectEquipmentType(-1),
   fSelectMinEquipmentId(-1),
@@ -73,6 +75,7 @@ AliRawReader::AliRawReader() :
   fEventNumber(-1),
   fErrorLogs("AliRawDataErrorLog",100),
   fHeaderSwapped(NULL),
+  fHeaderSwappedV3(NULL),
   fIsValid(kTRUE),
   fIsTriggerClassLoaded(kFALSE)
 {
@@ -80,6 +83,7 @@ AliRawReader::AliRawReader() :
 // Allocate the swapped header in case of Mac
 #ifndef R__BYTESWAP
   fHeaderSwapped=new AliRawDataHeader();
+  fHeaderSwappedV3=new AliRawDataHeaderV3();
 #endif
 }
 
@@ -121,6 +125,7 @@ AliRawReader::AliRawReader(const AliRawReader& rawReader) :
   fEquipmentIdsOut(rawReader.fEquipmentIdsOut),
   fRequireHeader(rawReader.fRequireHeader),
   fHeader(rawReader.fHeader),
+  fHeaderV3(rawReader.fHeaderV3),
   fCount(rawReader.fCount),
   fSelectEquipmentType(rawReader.fSelectEquipmentType),
   fSelectMinEquipmentId(rawReader.fSelectMinEquipmentId),
@@ -133,6 +138,7 @@ AliRawReader::AliRawReader(const AliRawReader& rawReader) :
   fEventNumber(-1),
   fErrorLogs("AliRawDataErrorLog",100),
   fHeaderSwapped(NULL),
+  fHeaderSwappedV3(NULL),
   fIsValid(rawReader.fIsValid),
   fIsTriggerClassLoaded(rawReader.fIsTriggerClassLoaded)
 {
@@ -140,6 +146,7 @@ AliRawReader::AliRawReader(const AliRawReader& rawReader) :
 // Allocate the swapped header in case of Mac
 #ifndef R__BYTESWAP
   fHeaderSwapped=new AliRawDataHeader(*rawReader.fHeaderSwapped);
+  fHeaderSwappedV3=new AliRawDataHeader(*rawReader.fHeaderSwappedV3);
 #endif
 }
 
@@ -151,6 +158,7 @@ AliRawReader& AliRawReader::operator = (const AliRawReader& rawReader)
   fEquipmentIdsOut = rawReader.fEquipmentIdsOut;
 
   fHeader = rawReader.fHeader;
+  fHeaderV3 = rawReader.fHeaderV3;
   fCount = rawReader.fCount;
 
   fSelectEquipmentType = rawReader.fSelectEquipmentType;
@@ -181,6 +189,7 @@ AliRawReader::~AliRawReader()
   if (fEquipmentIdsOut) delete fEquipmentIdsOut;
   fErrorLogs.Delete();
   if (fHeaderSwapped) delete fHeaderSwapped;
+  if (fHeaderSwappedV3) delete fHeaderSwappedV3;
 }
 
 AliRawReader* AliRawReader::Create(const char *uri)
@@ -245,7 +254,7 @@ AliRawReader* AliRawReader::Create(const char *uri)
     }
     else {
       AliErrorClass(Form("Invalid syntax: %s",fileURI.Data()));
-      fields->Delete();
+      delete fields;
       return NULL;
     }
   }
@@ -264,7 +273,6 @@ AliRawReader* AliRawReader::Create(const char *uri)
   if (!rawReader->IsRawReaderValid()) {
     AliErrorClass(Form("Raw-reader is invalid - check the input URI (%s)",fileURI.Data()));
     delete rawReader;
-    fields->Delete();
     delete fields;
     return NULL;
   }
@@ -299,7 +307,6 @@ AliRawReader* AliRawReader::Create(const char *uri)
     rawReader->SelectEvents(eventType,triggerMask,triggerExpr.Data());
   }
 
-  fields->Delete();
   delete fields;
 
   return rawReader;
@@ -532,7 +539,7 @@ Bool_t AliRawReader::IsEventSelected() const
     TString expr(fSelectTriggerExpr);
     ULong64_t mask = GetClassMask();
     for(Int_t itrigger = 0; itrigger < 50; itrigger++) {
-      if (mask & (1 << itrigger)) {
+      if (mask & ((ULong64_t)1 << itrigger)) {
        expr.ReplaceAll(Form("[%d]",itrigger),"1");
       }
       else {
@@ -542,10 +549,11 @@ Bool_t AliRawReader::IsEventSelected() const
     // Possibility to introduce downscaling
     TPRegexp("(%\\s*\\d+)").Substitute(expr,Form("&& !(%d$1)",GetEventIndex()),"g");
     Int_t error;
-    if ((gROOT->ProcessLineFast(expr.Data(),&error) == 0) &&
-       (error == TInterpreter::kNoError)) {
+    Bool_t result = gROOT->ProcessLineFast(expr.Data(),&error);
+    if ( error == TInterpreter::kNoError)
+      return result;
+    else
       return kFALSE;
-    }
   }
 
   return kTRUE;