]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliReconstructor.h
fix
[u/mrichter/AliRoot.git] / STEER / AliReconstructor.h
index 3524ddc63216b184ae21d8f86fc3e05d7d03bb04..bad7595d8453ab7a64e4b5ec48dda6d7b203b4a4 100644 (file)
@@ -5,22 +5,60 @@
 
 /* $Id$ */
 
+//
+// base class for reconstruction algorithm
+// Derived classes should implement a default constructor and
+// the virtual methods
+//
+
 #include <TObject.h>
+#include <TString.h>
 
-class AliRunLoader;
+class TTree;
+class AliRawReader;
 class AliVertexer;
 class AliTracker;
-class AliESD;
+class AliESDEvent;
+class AliDetectorRecoParam;
 
+#include "AliReconstruction.h"
 
 class AliReconstructor: public TObject {
 public:
-  virtual void         Reconstruct(AliRunLoader* runLoader) const = 0;
-  virtual AliVertexer* CreateVertexer(AliRunLoader* /*runLoader*/) const 
+  AliReconstructor(): TObject(), fOption() {};
+  virtual ~AliReconstructor() {};
+
+  virtual void         Init() {};
+
+  virtual Bool_t       HasDigitConversion() const {return kFALSE;};
+  virtual void         ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
+
+  virtual void         Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
+  virtual void         Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
+
+  virtual AliVertexer* CreateVertexer() const 
+    {return NULL;}
+  virtual AliTracker*  CreateTracker() const 
     {return NULL;}
-  virtual AliTracker*  CreateTracker(AliRunLoader* /*runLoader*/) const 
+  virtual AliTracker*  CreateTrackleter() const 
     {return NULL;}
-  virtual void         FillESD(AliRunLoader* runLoader, AliESD* esd) const = 0;
+
+  virtual void         FillESD(TTree* digitsTree, TTree* clustersTree, 
+                              AliESDEvent* esd) const;
+  virtual void         FillESD(AliRawReader* rawReader, TTree* clustersTree, 
+                              AliESDEvent* esd) const;
+
+  virtual const char*  GetDetectorName() const;
+
+  void                 SetOption(Option_t* option) {fOption = option;};
+  virtual Option_t*    GetOption() const {return fOption.Data();};
+
+  void                               SetRecoParam(const AliDetectorRecoParam *par);
+  static const AliDetectorRecoParam* GetRecoParam(Int_t iDet);
+
+private:
+  TString                            fOption;                                       //! option for reconstruction
+  static const AliDetectorRecoParam* fgRecoParam[AliReconstruction::kNDetectors]; //! event reconstruction parameters for all detectors
 
   ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
 };