]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliReconstructor.h
Modified trackleting: AliMultiplicity stores info if the clusters
[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 AliTrackleter;
22 class AliESDEvent;
23 class AliDetectorRecoParam;
24 class AliRunInfo;
25 class AliEventInfo;
26 class AliESDpid;
27
28 #include "AliReconstruction.h"
29
30 class AliReconstructor: public TObject {
31 public:
32   AliReconstructor(): TObject(), fOption(), fRunInfo(0x0), fEventInfo(0x0) {};
33   virtual ~AliReconstructor() {};
34
35   virtual void         Init() {};
36
37   virtual Bool_t       HasDigitConversion() const {return kFALSE;};
38   virtual void         ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
39
40   virtual void         Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
41   virtual void         Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
42
43   virtual AliVertexer* CreateVertexer() const 
44     {return NULL;}
45   virtual AliTracker*  CreateTracker() const 
46     {return NULL;}
47   virtual AliTracker*  CreateTrackleter() const 
48     {return NULL;}
49   virtual AliTrackleter* CreateMultFinder() const 
50     {return NULL;}
51
52   virtual void         FillESD(TTree* digitsTree, TTree* clustersTree, 
53                                AliESDEvent* esd) const;
54   virtual void         FillESD(AliRawReader* rawReader, TTree* clustersTree, 
55                                AliESDEvent* esd) const;
56
57   virtual const char*  GetDetectorName() const;
58
59   void                 SetOption(Option_t* option) {fOption = option;};
60   virtual Option_t*    GetOption() const {return fOption.Data();};
61
62   void                 SetRunInfo(AliRunInfo *runInfo) {fRunInfo = runInfo;}
63   const AliRunInfo*    GetRunInfo() const {return fRunInfo;}
64   void                 SetEventInfo(AliEventInfo *evInfo) {fEventInfo = evInfo;}
65   const AliEventInfo*  GetEventInfo() const {return fEventInfo;}
66
67   void                               SetRecoParam(const AliDetectorRecoParam *par);
68   static const AliDetectorRecoParam* GetRecoParam(Int_t iDet);
69   virtual void                 GetPidSettings(AliESDpid *esdPID);
70
71 private:
72
73   AliReconstructor(const AliReconstructor &); // Not implemented
74   AliReconstructor& operator=(const AliReconstructor &); // Not implemented
75   
76   TString                            fOption;                                       //! option for reconstruction
77   static const AliDetectorRecoParam* fgRecoParam[AliReconstruction::kNDetectors]; //! event reconstruction parameters for all detectors
78   AliRunInfo*                        fRunInfo;                                    //! pointer to the run info object
79   AliEventInfo*                      fEventInfo;                                  //! pointer to the event info object
80
81   ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
82 };
83
84 #endif