Runing the online reconstruction in the Amore framework (Cvetan)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Sep 2009 17:20:48 +0000 (17:20 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Sep 2009 17:20:48 +0000 (17:20 +0000)
RAW/AliRawReader.cxx
STEER/AliReconstruction.cxx
STEER/AliReconstruction.h

index 922958b..beb5a7e 100644 (file)
@@ -219,6 +219,14 @@ AliRawReader* AliRawReader::Create(const char *uri)
       return NULL;
     }
   }
+  else if (fileURI.BeginsWith("amore://")) {
+    // A special raw-data URL used in case
+    // the raw-data reading is steered from
+    // ouside, i.e. from AMORE
+    fileURI.ReplaceAll("amore://","");
+    AliInfoClass("Creating raw-reader in order to read events sent by AMORE");
+    rawReader = new AliRawReaderDate((void *)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()));
index 71102c3..bb309bf 100644 (file)
@@ -3486,3 +3486,18 @@ void AliReconstruction::Abort(const char *method, EAbort what)
   Info(mess, whyMess.Data());
 }
 
+//______________________________________________________________________________
+Bool_t AliReconstruction::ProcessEvent(void* event)
+{
+  // Method that is used in case the event loop
+  // is steered from outside, for example by AMORE
+  // 'event' is a pointer to the DATE event in the memory
+
+  if (fRawReader) delete fRawReader;
+  fRawReader = new AliRawReaderDate(event);
+  fStatus = ProcessEvent(fRunLoader->GetNumberOfEvents());  
+  delete fRawReader;
+  fRawReader = NULL;
+
+  return fStatus;
+}
index f525967..849eed5 100644 (file)
@@ -160,11 +160,14 @@ public:
   };
   static Int_t   GetDetIndex(const char * detector);
 
+protected:
+  virtual Bool_t ProcessEvent(void* event);
+  void           InitRun(const char* input);
+
 private:
   AliReconstruction(const AliReconstruction& rec);
   AliReconstruction& operator = (const AliReconstruction& rec);
 
-  void           InitRun(const char* input);
   void           InitRawReader(const char* input);
   void           InitCDB();
   Bool_t         InitGRP();