HLT sample applications
[u/mrichter/AliRoot.git] / HLT / src / AliHLTReconstructor.h
1 // @(#) $Id$
2
3 #ifndef ALIHLTRECONSTRUCTOR_H
4 #define ALIHLTRECONSTRUCTOR_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 #include "AliReconstructor.h"
9
10 class AliHLTSystem;
11
12 /**
13  * @class AliHLTReconstructor
14  * AliHLTReconstructor AliRoot event reconstruction plugin for the HLT.
15  * The AliHLTReconstructor holds an instance of the @ref AliHLTSystem
16  * steering class. The actual reconstruction depends on the loaded component
17  * libraries. Each library must implement a module agent (@ref AliHLTModuleAgent)
18  * in order to provide information on the supported features and the
19  * configurations to be run.
20  *
21  * The default component libraries which are loaded through the initialization
22  * are determined by the @ref kHLTDefaultLibs array. The library loading can
23  * be overridden by an option to the AliHLTReconstructor through the
24  * <tt>SetOption</tt> method of <tt>AliReconstruction</tt>, e.g.
25  * <pre>
26  * AliReconstruction rec;
27  * rec.SetOption("HLT", "libAliHLTSample.so");
28  * </pre>
29  * will only load <tt>libAliHLTSample.so</tt>
30  * 
31  * Optional arguments:<br>
32  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
33  * \li loglevel=<i>level</i><br>
34  *     level can be a hex number encoding the @ref AliHLTComponentLogSeverity
35  * \li alilog=off <br>
36  *     disables the logging of HLT log messages through <tt>AliLog</tt> <br>
37  *
38  * For further information on the AliRoot reconstruction refer to the AliRoot
39  * documentation, namely <tt>AliReconstruction</tt>.
40  */
41 class AliHLTReconstructor: public AliReconstructor {
42 public:
43   AliHLTReconstructor();
44   AliHLTReconstructor(Bool_t doTracker, Bool_t doHough);
45   /** not a valid copy constructor, defined according to effective C++ style */
46   AliHLTReconstructor(const AliHLTReconstructor& src);
47   /** not a valid assignment op, but defined according to effective C++ style */
48   AliHLTReconstructor& operator=(const AliHLTReconstructor& src);
49   /** destructor */
50   virtual ~AliHLTReconstructor();
51
52   /** init the reconstructor */
53   void Init(AliRunLoader* runLoader);
54
55   /** reconstruct simulated MC data */
56   void Reconstruct(AliRunLoader* runLoader) const;
57   /** reconstruct data from RawReader */
58   void Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const;
59
60   /** create a tracker */
61   AliTracker*  CreateTracker(AliRunLoader*) const;
62
63   /** fill esd for one event */
64   void FillESD(AliRunLoader* runLoader, AliESD* esd) const;
65
66   virtual void         Reconstruct(TTree* digitsTree, TTree* clustersTree) const{
67     AliReconstructor::Reconstruct(digitsTree,clustersTree);
68   }
69   virtual void         Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const {
70     AliReconstructor::Reconstruct(rawReader,clustersTree);
71   }
72
73   virtual void         FillESD(TTree* digitsTree, TTree* clustersTree, 
74                                AliESD* esd) const {
75     AliReconstructor::FillESD(digitsTree,clustersTree,esd);
76   }
77   virtual void         FillESD(AliRawReader* rawReader, TTree* clustersTree, 
78                                AliESD* esd) const {
79     AliReconstructor::FillESD(rawReader,clustersTree,esd);
80   }
81   virtual void         FillESD(AliRunLoader* runLoader, 
82                                AliRawReader* rawReader, AliESD* esd) const {
83     AliReconstructor:: FillESD(runLoader,rawReader,esd);
84   }
85   void SetDoBench(Bool_t b){fDoBench=b;}
86   void SetDoCleanup(Bool_t b){fDoCleanUp=b;}
87   virtual void         FillDHLTRecPoint(AliRawReader* rawReader, Int_t nofEvent, Int_t dcCut) const;
88 private:
89   void ReconstructWithConformalMapping(AliRunLoader* runLoader,Int_t iEvent) const;
90   void ReconstructWithHoughTransform(AliRunLoader* runLoader,Int_t iEvent) const;
91   void FillESDforConformalMapping(AliESD* esd,Int_t iEvent) const;
92   void FillESDforHoughTransform(AliESD* esd,Int_t iEvent) const;
93
94   Bool_t fDoHough;   //do the hough transform
95   Bool_t fDoTracker; //do the standard conformal tracker
96   Bool_t fDoBench;   //store the benchmark results
97   Bool_t fDoCleanUp; //delete tmp tracking files
98
99   AliHLTSystem* fpSystem; //! HLT steering object
100   Int_t  fRecEvents;      //! number of reconstructed events
101   Int_t  fFilled;         //! number of event filled to ESD
102
103   ClassDef(AliHLTReconstructor, 1)   // class for the TPC reconstruction
104 };
105
106 typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility
107
108 #endif