Adding the new AliRawReaderChain to the Create() mactory method. The URI syntax is...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Jul 2008 14:05:26 +0000 (14:05 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 29 Jul 2008 14:05:26 +0000 (14:05 +0000)
RAW/AliRawReader.cxx
RAW/AliRawReaderChain.h

index 6833844..bb6f2c7 100644 (file)
@@ -45,6 +45,7 @@
 #include "AliRawReaderFile.h"
 #include "AliRawReaderDate.h"
 #include "AliRawReaderRoot.h"
+#include "AliRawReaderChain.h"
 #include "AliDAQ.h"
 #include "AliLog.h"
 
@@ -188,17 +189,7 @@ AliRawReader* AliRawReader::Create(const char *uri)
   TString &fileURI = ((TObjString*)fields->At(0))->String();
 
   AliRawReader *rawReader = NULL;
-  if (!fileURI.BeginsWith("mem://")) {
-    AliInfoClass(Form("Creating raw-reader in order to read raw-data file: %s",fileURI.Data()));
-    if (fileURI.EndsWith("/")) {
-      rawReader = new AliRawReaderFile(fileURI);
-    } else if (fileURI.EndsWith(".root")) {
-      rawReader = new AliRawReaderRoot(fileURI);
-    } else {
-      rawReader = new AliRawReaderDate(fileURI);
-    }
-  }
-  else {
+  if (fileURI.BeginsWith("mem://")) {
     fileURI.ReplaceAll("mem://","");
     AliInfoClass(Form("Creating raw-reader in order to read events in shared memory (option=%s)",fileURI.Data()));
 
@@ -215,9 +206,25 @@ AliRawReader* AliRawReader::Create(const char *uri)
       rawReader = (AliRawReader*)pluginHandler->ExecPlugin(1,fileURI.Data());
     }
     else {
+      delete fields;
       return NULL;
     }
   }
+  else if (fileURI.BeginsWith("collection://")) {
+    fileURI.ReplaceAll("collection://","");
+    AliInfoClass(Form("Creating raw-reader in order to read raw-data files collection defined in %s",fileURI.Data()));
+    rawReader = new AliRawReaderChain(fileURI);
+  }
+  else {
+    AliInfoClass(Form("Creating raw-reader in order to read raw-data file: %s",fileURI.Data()));
+    if (fileURI.EndsWith("/")) {
+      rawReader = new AliRawReaderFile(fileURI);
+    } else if (fileURI.EndsWith(".root")) {
+      rawReader = new AliRawReaderRoot(fileURI);
+    } else {
+      rawReader = new AliRawReaderDate(fileURI);
+    }
+  }
 
   // Now apply event selection criteria (if specified)
   if (fields->GetEntries() > 1) {
index 934c70e..940d73c 100644 (file)
@@ -9,8 +9,6 @@
 ///
 ///////////////////////////////////////////////////////////////////////////////
 
-#include <TString.h>
-
 #include "AliRawReaderRoot.h"
 
 class TChain;