New functionality: provide the detector reconstructors with an access to the run...
[u/mrichter/AliRoot.git] / STEER / AliReconstructor.h
1 #ifndef ALIRECONSTRUCTOR_H
2 #define ALIRECONSTRUCTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //
9 // base class for reconstruction algorithm
10 // Derived classes should implement a default constructor and
11 // the virtual methods
12 //
13
14 #include <TObject.h>
15 #include <TString.h>
16
17 class TTree;
18 class AliRawReader;
19 class AliVertexer;
20 class AliTracker;
21 class AliESDEvent;
22 class AliDetectorRecoParam;
23 class AliRunInfo;
24 class AliEventInfo;
25
26 #include "AliReconstruction.h"
27
28 class AliReconstructor: public TObject {
29 public:
30   AliReconstructor(): TObject(), fOption(), fRunInfo(0x0), fEventInfo(0x0) {};
31   virtual ~AliReconstructor() {};
32
33   virtual void         Init() {};
34
35   virtual Bool_t       HasDigitConversion() const {return kFALSE;};
36   virtual void         ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
37
38   virtual void         Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
39   virtual void         Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
40
41   virtual AliVertexer* CreateVertexer() const 
42     {return NULL;}
43   virtual AliTracker*  CreateTracker() const 
44     {return NULL;}
45   virtual AliTracker*  CreateTrackleter() const 
46     {return NULL;}
47
48   virtual void         FillESD(TTree* digitsTree, TTree* clustersTree, 
49                                AliESDEvent* esd) const;
50   virtual void         FillESD(AliRawReader* rawReader, TTree* clustersTree, 
51                                AliESDEvent* esd) const;
52
53   virtual const char*  GetDetectorName() const;
54
55   void                 SetOption(Option_t* option) {fOption = option;};
56   virtual Option_t*    GetOption() const {return fOption.Data();};
57
58   void                 SetRunInfo(AliRunInfo *runInfo) {fRunInfo = runInfo;}
59   const AliRunInfo*    GetRunInfo() const {return fRunInfo;}
60   void                 SetEventInfo(AliEventInfo *evInfo) {fEventInfo = evInfo;}
61   const AliEventInfo*  GetEventInfo() const {return fEventInfo;}
62
63   void                               SetRecoParam(const AliDetectorRecoParam *par);
64   static const AliDetectorRecoParam* GetRecoParam(Int_t iDet);
65
66 private:
67   TString                            fOption;                                       //! option for reconstruction
68   static const AliDetectorRecoParam* fgRecoParam[AliReconstruction::kNDetectors]; //! event reconstruction parameters for all detectors
69   AliRunInfo*                        fRunInfo;                                    //! pointer to the run info object
70   AliEventInfo*                      fEventInfo;                                  //! pointer to the event info object
71
72   ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
73 };
74
75 #endif