14dcce83013a2bdba48815d7f8eeef0cbd2cd281
[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 AliRunLoader;
18 class AliRawReader;
19 class AliVertexer;
20 class AliTracker;
21 class AliESD;
22
23
24 class AliReconstructor: public TObject {
25 public:
26   AliReconstructor(): TObject(), fOption() {};
27   virtual ~AliReconstructor() {};
28
29   virtual void         Reconstruct(AliRunLoader* runLoader) const = 0;
30   virtual void         Reconstruct(AliRunLoader* runLoader, 
31                                    AliRawReader* rawReader) const;
32   virtual AliVertexer* CreateVertexer(AliRunLoader* /*runLoader*/) const 
33     {return NULL;}
34   virtual AliTracker*  CreateTracker(AliRunLoader* /*runLoader*/) const 
35     {return NULL;}
36   virtual void         FillESD(AliRunLoader* runLoader, AliESD* esd) const = 0;
37   virtual void         FillESD(AliRunLoader* runLoader, 
38                                AliRawReader* rawReader, AliESD* esd) const;
39
40   virtual const char*  GetDetectorName() const;
41
42   void                 SetOption(Option_t* option) {fOption = option;};
43   virtual Option_t*    GetOption() const {return fOption.Data();};
44
45 private:
46   TString              fOption;   //! option for reconstruction
47
48   ClassDef(AliReconstructor, 0)   // base class for reconstruction algorithms
49 };
50
51 #endif