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