documentation
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTReconstructor.h
1 // @(#) $Id$
2
3 #ifndef ALIHLTRECONSTRUCTOR_H
4 #define ALIHLTRECONSTRUCTOR_H
5 /* This file is property of and copyright by the ALICE HLT Project        * 
6  * ALICE Experiment at CERN, All rights reserved.                         *
7  * See cxx source for full Copyright notice                               */
8
9 /** @file   AliHLTSimulation.h
10     @author Matthias Richter
11     @date   
12     @brief  Binding class for HLT simulation in AliRoot
13
14 // see below for class documentation
15 // or
16 // refer to README to build package
17 // or
18 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
19                                                                           */
20
21 #include "AliReconstructor.h"
22
23 class AliHLTSystem;
24 class AliRawReader;
25 class AliESDEvent;
26
27 /**
28  * @class AliHLTReconstructor
29  * AliHLTReconstructor AliRoot event reconstruction plugin for the HLT.
30  * The AliHLTReconstructor holds an instance of the @ref AliHLTSystem
31  * steering class. The actual reconstruction depends on the loaded component
32  * libraries. Each library must implement a module agent (@ref AliHLTModuleAgent)
33  * in order to provide information on the supported features and the
34  * configurations to be run.
35  *
36  * The default component libraries which are loaded through the initialization
37  * are determined by the @ref kHLTDefaultLibs array. The library loading can
38  * be overridden by an option to the AliHLTReconstructor through the
39  * <tt>SetOption</tt> method of <tt>AliReconstruction</tt>, e.g.
40  * <pre>
41  * AliReconstruction rec;
42  * rec.SetOption("HLT", "libAliHLTSample.so");
43  * </pre>
44  * will only load <tt>libAliHLTSample.so</tt>
45  * 
46  * Optional arguments:<br>
47  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formating -->
48  * \li loglevel=<i>level</i><br>
49  *     level can be a hex number encoding the @ref AliHLTComponentLogSeverity
50  * \li alilog=off <br>
51  *     disables the logging of HLT log messages through <tt>AliLog</tt> <br>
52  *
53  * For further information on the AliRoot reconstruction refer to the AliRoot
54  * documentation, namely <tt>AliReconstruction</tt>.
55  */
56 class AliHLTReconstructor: public AliReconstructor {
57 public:
58   AliHLTReconstructor();
59   /** destructor */
60   virtual ~AliHLTReconstructor();
61
62   /** init the reconstructor */
63   void Init();
64
65   /**
66    * This Reconstructor function is not applicable for the AliHLTReconstructor
67    * as it gets a detector specific digits tree. But HLT processes all detectors.
68    * Furthermore it's purely simulated data. <br>
69    * The function forwards to the default bahavior of AliReconstructor but gives
70    * a warning if there were options set, i.e. the user runs customized
71    * reconstruction.
72    */
73   void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
74
75   /**
76    * Reconstruction from RAW data.
77    * The rawReader holds data for all detectors and this version of Reconstruct
78    * is thus applicable for the HLT. The clustersTree is just ignored.
79    */
80   void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
81
82   /**
83    * This function is purely for simulated data and not applicable for HLT.
84    * HLT reconstruction on simulated data is processed at the end of
85    * simulation. <br>
86    * The function forwards to the default bahavior of AliReconstructor but gives
87    * a warning if there were options set, i.e. the user runs customized
88    * reconstruction.
89    */
90   void FillESD(TTree* digitsTree, TTree* clustersTree, AliESDEvent* esd) const;
91
92   /**
93    * Fill the ESD from RAW data.
94    * This is the main entry for HLT reconstruction of RAW data. It performs both
95    * the analysis by the defined chains and the filling of the ESD.
96    */
97   void FillESD(AliRawReader* rawReader, TTree* clustersTree, AliESDEvent* esd) const;
98
99 private:
100   /** copy constructor prohibited */
101   AliHLTReconstructor(const AliHLTReconstructor& src);
102   /** assignment operator prohibited */
103   AliHLTReconstructor& operator=(const AliHLTReconstructor& src);
104
105   AliHLTSystem* fpSystem; //! HLT steering object
106
107   ClassDef(AliHLTReconstructor, 3)   // class for the HLT reconstruction
108 };
109
110 typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility
111
112 #endif