enhanced interface of DigitReaders (channel locking, generic sorting)
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTReconstructor.h
CommitLineData
3e820254 1// @(#) $Id$
2
3#ifndef ALIHLTRECONSTRUCTOR_H
4#define ALIHLTRECONSTRUCTOR_H
c534985b 5/* This file is property of and copyright by the ALICE HLT Project *
6 * ALICE Experiment at CERN, All rights reserved. *
3e820254 7 * See cxx source for full Copyright notice */
8
3a7c0444 9/** @file AliHLTReconstructor.h
c534985b 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
3e820254 21#include "AliReconstructor.h"
22
23class AliHLTSystem;
24class AliRawReader;
25class 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 */
56class AliHLTReconstructor: public AliReconstructor {
57public:
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.
7f9ab840 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.
3e820254 72 */
7f9ab840 73 void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
3e820254 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
7f9ab840 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.
3e820254 89 */
7f9ab840 90 void FillESD(TTree* digitsTree, TTree* clustersTree, AliESDEvent* esd) const;
3e820254 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
99private:
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
110typedef AliHLTReconstructor AliL3Reconstructor; // for backward compatibility
111
112#endif