AliHLTReconstructor moved from src to rec
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTReconstructor.h
CommitLineData
3e820254 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
10class AliHLTSystem;
11class AliRawReader;
12class 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 */
43class AliHLTReconstructor: public AliReconstructor {
44public:
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
84private:
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
95typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility
96
97#endif