reverting and postponing changes from 24729 partly (AliHLTSystem singleton in AliHLTS...
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Mar 2008 23:17:38 +0000 (23:17 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 26 Mar 2008 23:17:38 +0000 (23:17 +0000)
HLT/sim/AliHLTSimulation.cxx
HLT/sim/AliHLTSimulation.h

index bd1f58b..ebb196c 100644 (file)
@@ -45,6 +45,7 @@ ClassImp(AliHLTSimulation);
 AliHLTSimulation::AliHLTSimulation()
   :
   fOptions(),
+  fpSystem(NULL),
   fpRawReader(NULL)
 {
   // see header file for class documentation
@@ -57,6 +58,10 @@ AliHLTSimulation::AliHLTSimulation()
 AliHLTSimulation::~AliHLTSimulation()
 {
   // see header file for function documentation
+  if (fpSystem) {
+    delete fpSystem;
+  }
+  fpSystem=NULL;
   if (fpRawReader) {
     delete fpRawReader;
   }
@@ -83,12 +88,12 @@ int AliHLTSimulation::Init(AliRunLoader* pRunLoader, const char* options)
   fOptions=options;
   TString sysOp;
 
-  AliHLTSystem* pSystem=GetInstance();
-  if (!pSystem) {
-    AliError("can not get AliHLTSystem instance");
+  if (!fpSystem) fpSystem=new AliHLTSystem;
+  if (!fpSystem) {
+    AliError("can not create AliHLTSystem object");
     return -ENOMEM;
   }
-  if (pSystem->CheckStatus(AliHLTSystem::kError)) {
+  if (fpSystem->CheckStatus(AliHLTSystem::kError)) {
     AliError("HLT system in error state");
     return -EFAULT;
   }
@@ -142,13 +147,13 @@ int AliHLTSimulation::Init(AliRunLoader* pRunLoader, const char* options)
   }
 
   // scan options
-  if (pSystem->ScanOptions(sysOp.Data())<0) {
+  if (fpSystem->ScanOptions(sysOp.Data())<0) {
     AliError("error setting options for HLT system");
     return -EINVAL;    
   }
 
-  if (!pSystem->CheckStatus(AliHLTSystem::kReady)) {
-    if ((pSystem->Configure(pRunLoader))<0) {
+  if (!fpSystem->CheckStatus(AliHLTSystem::kReady)) {
+    if ((fpSystem->Configure(pRunLoader))<0) {
       AliError("error during HLT system configuration");
       return -EFAULT;
     }
@@ -169,29 +174,24 @@ int AliHLTSimulation::Run(AliRunLoader* pRunLoader)
   int nEvents = pRunLoader->GetNumberOfEvents();
   int iResult=0;
 
-  AliHLTSystem* pSystem=GetInstance();
-  if (!pSystem) {
-    AliError("can not get AliHLTSystem instance");
-    return -ENOMEM;
-  }
-  if (pSystem->CheckStatus(AliHLTSystem::kError)) {
+  if (fpSystem->CheckStatus(AliHLTSystem::kError)) {
     AliError("HLT system in error state");
     return -EFAULT;
   }
 
   // Note: the rawreader is already placed at the first event
-  if ((iResult=pSystem->Reconstruct(1, pRunLoader, fpRawReader))>=0) {
-    pSystem->FillESD(0, pRunLoader, NULL);
+  if ((iResult=fpSystem->Reconstruct(1, pRunLoader, fpRawReader))>=0) {
+    fpSystem->FillESD(0, pRunLoader, NULL);
     for (int i=1; i<nEvents; i++) {
       if (fpRawReader && !fpRawReader->NextEvent()) {
        AliError("missmatch in event count, rawreader corrupted");
        break;
       }
-      pSystem->Reconstruct(1, pRunLoader, fpRawReader);
-      pSystem->FillESD(i, pRunLoader, NULL);
+      fpSystem->Reconstruct(1, pRunLoader, fpRawReader);
+      fpSystem->FillESD(i, pRunLoader, NULL);
     }
     // send specific 'event' to execute the stop sequence
-    pSystem->Reconstruct(0, NULL, NULL);
+    fpSystem->Reconstruct(0, NULL, NULL);
   }
   return iResult;
 }
index 4e84126..eead445 100644 (file)
@@ -25,7 +25,6 @@
 
 #include "TObject.h"
 #include "TString.h"
-#include "AliHLTReconstructorBase.h"
 class AliRunLoader;
 class AliHLTSystem;
 class AliRawReader;
@@ -34,7 +33,7 @@ class AliRawReader;
  * @class AliHLTSimulation
  * Base class of HLT data processing simulations.
  */
-class AliHLTSimulation : public TObject, public AliHLTReconstructorBase {
+class AliHLTSimulation : public TObject {
  public:
   /** create an instance of the class */
   static AliHLTSimulation* CreateInstance();
@@ -61,10 +60,13 @@ class AliHLTSimulation : public TObject, public AliHLTReconstructorBase {
   /* current options */
   TString fOptions;                                                   //!transient
 
+  /* HLT steering object */
+  AliHLTSystem* fpSystem;                                             //!transient
+
   /* RAW reader instance for chains which need RAW data as input */
   AliRawReader* fpRawReader;                                            //!transient
 
-  ClassDef(AliHLTSimulation, 2)
+  ClassDef(AliHLTSimulation, 1)
 };
 
 #define ALIHLTSIMULATION_LIBRARY             "libHLTsim.so"