option for reconstructors added
authortkuhr <tkuhr@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 May 2004 11:38:23 +0000 (11:38 +0000)
committertkuhr <tkuhr@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 May 2004 11:38:23 +0000 (11:38 +0000)
STEER/AliReconstruction.cxx
STEER/AliReconstruction.h
STEER/AliReconstructor.h

index 544c87c..f1fd8fc 100644 (file)
@@ -115,7 +115,10 @@ AliReconstruction::AliReconstruction(const char* gAliceFilename,
   fTRDLoader(NULL),
   fTRDTracker(NULL),
   fTOFLoader(NULL),
-  fTOFTracker(NULL)
+  fTOFTracker(NULL),
+
+  fReconstructors(),
+  fOptions()
 {
 // create reconstruction object with default parameters
 
@@ -142,10 +145,16 @@ AliReconstruction::AliReconstruction(const AliReconstruction& rec) :
   fTRDLoader(NULL),
   fTRDTracker(NULL),
   fTOFLoader(NULL),
-  fTOFTracker(NULL)
+  fTOFTracker(NULL),
+
+  fReconstructors(),
+  fOptions()
 {
 // copy constructor
 
+  for (Int_t i = 0; i < fOptions.GetEntriesFast(); i++) {
+    if (rec.fOptions[i]) fOptions.Add(rec.fOptions[i]->Clone());
+  }
 }
 
 //_____________________________________________________________________________
@@ -164,6 +173,7 @@ AliReconstruction::~AliReconstruction()
 // clean up
 
   CleanUp();
+  fOptions.Delete();
 }
 
 
@@ -175,6 +185,16 @@ void AliReconstruction::SetGAliceFile(const char* fileName)
   fGAliceFileName = fileName;
 }
 
+//_____________________________________________________________________________
+void AliReconstruction::SetOption(const char* detector, const char* option)
+{
+// set options for the reconstruction of a detector
+
+  TObject* obj = fOptions.FindObject(detector);
+  if (obj) fOptions.Remove(obj);
+  fOptions.Add(new TNamed(detector, option));
+}
+
 
 //_____________________________________________________________________________
 Bool_t AliReconstruction::Run()
@@ -234,7 +254,11 @@ Bool_t AliReconstruction::Run()
       Info("Run", "using dummy reconstructor for %s", detName.Data());
       reconstructor = new AliDummyReconstructor(gAlice->GetDetector(detName));
     }
-    if (reconstructor) fReconstructors.Add(reconstructor);
+    if (reconstructor) {
+      TObject* obj = fOptions.FindObject(detName.Data());
+      if (obj) reconstructor->SetOption(obj->GetTitle());
+      fReconstructors.Add(reconstructor);
+    }
   }
 
   // local reconstruction
@@ -455,7 +479,7 @@ Bool_t AliReconstruction::RunTracking(AliESD*& esd)
     Warning("RunTracking", "no ITS tracker");
   } else {
 
-    fRunLoader->GetAliRun()->GetDetector("TPC")->FillESD(esd); // preliminary
+    GetReconstructor("TPC")->FillESD(fRunLoader, esd); // preliminary
     AliESDpid::MakePID(esd);                  // PID for the ITS tracker
 
     // ITS tracking
index 5937456..d402f9b 100644 (file)
@@ -41,6 +41,7 @@ public:
   virtual ~AliReconstruction();
 
   void           SetGAliceFile(const char* fileName);
+  void           SetOption(const char* detector, const char* option);
 
   void           SetRunLocalReconstruction(const char* detectors) {
     fRunLocalReconstruction = detectors;};
@@ -117,6 +118,7 @@ private:
   static const Int_t fgkNDetectors = 15;   //! number of detectors
   static const char* fgkDetectorName[fgkNDetectors]; //! names of detectors
   TObjArray      fReconstructors;     //! array of reconstructor objects
+  TObjArray      fOptions;            // options for reconstructor objects
 
   ClassDef(AliReconstruction, 1)      // class for running the reconstruction
 };
index 6419dd4..4fcd728 100644 (file)
@@ -12,6 +12,7 @@
 //
 
 #include <TObject.h>
+#include <TString.h>
 
 class AliRunLoader;
 class AliVertexer;
@@ -21,7 +22,7 @@ class AliESD;
 
 class AliReconstructor: public TObject {
 public:
-  AliReconstructor(): TObject() {};
+  AliReconstructor(): TObject(), fOption() {};
   virtual ~AliReconstructor() {};
 
   virtual void         Reconstruct(AliRunLoader* runLoader) const = 0;
@@ -33,6 +34,12 @@ public:
 
   virtual const char*  GetDetectorName() const;
 
+  void                 SetOption(Option_t* option) {fOption = option;};
+  virtual Option_t*    GetOption() const {return fOption.Data();};
+
+private:
+  TString              fOption;   //! option for reconstruction
+
   ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
 };