AliHLTReconstructor moved from src to rec
[u/mrichter/AliRoot.git] / HLT / rec / 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 class AliRawReader;
12 class AliESDEvent;
13
14 /**
15  * @class AliHLTReconstructor
16  * AliHLTReconstructor AliRoot event reconstruction plugin for the HLT.
17  * The AliHLTReconstructor holds an instance of the @ref AliHLTSystem
18  * steering class. The actual reconstruction depends on the loaded component
19  * libraries. Each library must implement a module agent (@ref AliHLTModuleAgent)
20  * in order to provide information on the supported features and the
21  * configurations to be run.
22  *
23  * The default component libraries which are loaded through the initialization
24  * are determined by the @ref kHLTDefaultLibs array. The library loading can
25  * be overridden by an option to the AliHLTReconstructor through the
26  * <tt>SetOption</tt> method of <tt>AliReconstruction</tt>, e.g.
27  * <pre>
28  * AliReconstruction rec;
29  * rec.SetOption("HLT", "libAliHLTSample.so");
30  * </pre>
31  * will only load <tt>libAliHLTSample.so</tt>
32  * 
33  * Optional arguments:<br>
34  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
35  * \li loglevel=<i>level</i><br>
36  *     level can be a hex number encoding the @ref AliHLTComponentLogSeverity
37  * \li alilog=off <br>
38  *     disables the logging of HLT log messages through <tt>AliLog</tt> <br>
39  *
40  * For further information on the AliRoot reconstruction refer to the AliRoot
41  * documentation, namely <tt>AliReconstruction</tt>.
42  */
43 class AliHLTReconstructor: public AliReconstructor {
44 public:
45   AliHLTReconstructor();
46   /** destructor */
47   virtual ~AliHLTReconstructor();
48
49   /** init the reconstructor */
50   void Init();
51
52   /**
53    * This Reconstructor function is not applicable for the AliHLTReconstructor
54    * as it gets a detector specific digits tree. But HLT processes all detectors.
55    * Furthermore it's purely simulated data.
56    */
57   void Reconstruct(TTree* digitsTree, TTree* clustersTree) const{
58     AliReconstructor::Reconstruct(digitsTree,clustersTree);
59   }
60
61   /**
62    * Reconstruction from RAW data.
63    * The rawReader holds data for all detectors and this version of Reconstruct
64    * is thus applicable for the HLT. The clustersTree is just ignored.
65    */
66   void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
67
68   /**
69    * This function is purely for simulated data and not applicable for HLT.
70    * HLT reconstruction on simulated data is processed at the end of
71    * simulation.
72    */
73   void FillESD(TTree* digitsTree, TTree* clustersTree, AliESDEvent* esd) const {
74     AliReconstructor::FillESD(digitsTree,clustersTree,esd);
75   }
76
77   /**
78    * Fill the ESD from RAW data.
79    * This is the main entry for HLT reconstruction of RAW data. It performs both
80    * the analysis by the defined chains and the filling of the ESD.
81    */
82   void FillESD(AliRawReader* rawReader, TTree* clustersTree, AliESDEvent* esd) const;
83
84 private:
85   /** copy constructor prohibited */
86   AliHLTReconstructor(const AliHLTReconstructor& src);
87   /** assignment operator prohibited */
88   AliHLTReconstructor& operator=(const AliHLTReconstructor& src);
89
90   AliHLTSystem* fpSystem; //! HLT steering object
91
92   ClassDef(AliHLTReconstructor, 3)   // class for the HLT reconstruction
93 };
94
95 typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility
96
97 #endif