ROOT logo
#ifndef ALIRECONSTRUCTOR_H
#define ALIRECONSTRUCTOR_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//
// base class for reconstruction algorithm
// Derived classes should implement a default constructor and
// the virtual methods
//

#include <TObject.h>
#include <TString.h>

class TTree;
class AliRawReader;
class AliVertexer;
class AliTracker;
class AliTrackleter;
class AliESDEvent;
class AliDetectorRecoParam;
class AliRunInfo;
class AliEventInfo;
class AliESDpid;

#include "AliReconstruction.h"

class AliReconstructor: public TObject {
public:
  AliReconstructor(): TObject(), fOption(), fRunInfo(0x0), fEventInfo(0x0), fhltesd(NULL) {};
  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*  CreateTrackleter() const 
    {return NULL;}
  virtual AliTrackleter* CreateMultFinder() const 
    {return NULL;}

  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                 SetRunInfo(AliRunInfo *runInfo) {fRunInfo = runInfo;}
  const AliRunInfo*    GetRunInfo() const {return fRunInfo;}
  void                 SetEventInfo(AliEventInfo *evInfo) {fEventInfo = evInfo;}
  const AliEventInfo*  GetEventInfo() const {return fEventInfo;}

  void                               SetRecoParam(const AliDetectorRecoParam *par);
  static const AliDetectorRecoParam* GetRecoParam(Int_t iDet);
  virtual void                 GetPidSettings(AliESDpid *esdPID);
  void SetHLTESD(AliESDEvent* hltesd) {fhltesd=hltesd;}
  AliESDEvent* GetHLTESD() const {return fhltesd;}

  virtual void FillEventTimeWithTOF(AliESDEvent *, AliESDpid *)
    {return;}
  virtual void FinishEvent() {return; }
  virtual void Terminate() const {return; }

private:

  AliReconstructor(const AliReconstructor &); // Not implemented
  AliReconstructor& operator=(const AliReconstructor &); // Not implemented
  
  TString                            fOption;                                       //! option for reconstruction
  static const AliDetectorRecoParam* fgRecoParam[AliReconstruction::kNDetectors]; //! event reconstruction parameters for all detectors
  AliRunInfo*                        fRunInfo;                                    //! pointer to the run info object
  AliEventInfo*                      fEventInfo;                                  //! pointer to the event info object
  AliESDEvent*                       fhltesd;                                     //! pointer to HLT ESD

  ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
};

#endif
 AliReconstructor.h:1
 AliReconstructor.h:2
 AliReconstructor.h:3
 AliReconstructor.h:4
 AliReconstructor.h:5
 AliReconstructor.h:6
 AliReconstructor.h:7
 AliReconstructor.h:8
 AliReconstructor.h:9
 AliReconstructor.h:10
 AliReconstructor.h:11
 AliReconstructor.h:12
 AliReconstructor.h:13
 AliReconstructor.h:14
 AliReconstructor.h:15
 AliReconstructor.h:16
 AliReconstructor.h:17
 AliReconstructor.h:18
 AliReconstructor.h:19
 AliReconstructor.h:20
 AliReconstructor.h:21
 AliReconstructor.h:22
 AliReconstructor.h:23
 AliReconstructor.h:24
 AliReconstructor.h:25
 AliReconstructor.h:26
 AliReconstructor.h:27
 AliReconstructor.h:28
 AliReconstructor.h:29
 AliReconstructor.h:30
 AliReconstructor.h:31
 AliReconstructor.h:32
 AliReconstructor.h:33
 AliReconstructor.h:34
 AliReconstructor.h:35
 AliReconstructor.h:36
 AliReconstructor.h:37
 AliReconstructor.h:38
 AliReconstructor.h:39
 AliReconstructor.h:40
 AliReconstructor.h:41
 AliReconstructor.h:42
 AliReconstructor.h:43
 AliReconstructor.h:44
 AliReconstructor.h:45
 AliReconstructor.h:46
 AliReconstructor.h:47
 AliReconstructor.h:48
 AliReconstructor.h:49
 AliReconstructor.h:50
 AliReconstructor.h:51
 AliReconstructor.h:52
 AliReconstructor.h:53
 AliReconstructor.h:54
 AliReconstructor.h:55
 AliReconstructor.h:56
 AliReconstructor.h:57
 AliReconstructor.h:58
 AliReconstructor.h:59
 AliReconstructor.h:60
 AliReconstructor.h:61
 AliReconstructor.h:62
 AliReconstructor.h:63
 AliReconstructor.h:64
 AliReconstructor.h:65
 AliReconstructor.h:66
 AliReconstructor.h:67
 AliReconstructor.h:68
 AliReconstructor.h:69
 AliReconstructor.h:70
 AliReconstructor.h:71
 AliReconstructor.h:72
 AliReconstructor.h:73
 AliReconstructor.h:74
 AliReconstructor.h:75
 AliReconstructor.h:76
 AliReconstructor.h:77
 AliReconstructor.h:78
 AliReconstructor.h:79
 AliReconstructor.h:80
 AliReconstructor.h:81
 AliReconstructor.h:82
 AliReconstructor.h:83
 AliReconstructor.h:84
 AliReconstructor.h:85
 AliReconstructor.h:86
 AliReconstructor.h:87
 AliReconstructor.h:88
 AliReconstructor.h:89
 AliReconstructor.h:90
 AliReconstructor.h:91
 AliReconstructor.h:92