4 #ifndef ALIHLTVZERORECOCOMPONENT_H
5 #define ALIHLTVZERORECOCOMPONENT_H
7 /* This file is property of and copyright by the ALICE HLT Project *
8 * ALICE Experiment at CERN, All rights reserved. *
9 * See cxx source for full Copyright notice */
11 /** @file AliHLTVZERORecoComponent.h
12 @author Jochen Thaeder <jochen@thaeder.de>
13 @brief VZERO reconstruction component
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
23 #include "AliHLTProcessor.h"
29 class AliRawReaderMemory;
30 class AliVZERORecoParam;
31 class AliVZEROReconstructor;
34 * @class AliHLTVZERORecoComponent
35 * Reconstruction of VZERO data
37 * <h2>General properties:</h2>
39 * Component ID: \b VZEROReconstruction <br>
40 * Library: \b libAliHLTVZERO.so <br>
41 * Input Data Types: @ref kAliHLTDataTypeDDLRaw <br>
42 * Output Data Types: @ref kAliHLTDataTypeESDContent|kAliHLTDataOriginVZERO <br>
44 * <h2>Mandatory arguments:</h2>
45 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
47 * <h2>Optional arguments:</h2>
48 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
50 * <h2>Configuration:</h2>
51 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
53 * <h2>Default CDB entries:</h2>
54 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
56 * <tt>HLT/ConfigVZERO/VZEROReconstruction</tt>
57 * \li -TObjString object holding a string with the configuration parameters
60 * <tt>GRP/GRP/Data</tt>
61 * \li -GRP object - run information
63 * <tt>GRP/CTP/CTPtiming</tt>
64 * \li -GRP object - CTP information
66 * <tt>GRP/CTP/TimeAlign</tt>
67 * \li -GRP object - CTP information
69 * <tt>GRP/Calib/LHCClockPhase</tt>
70 * \li -GRP object - time calibration
72 * <tt>VZERO/Calib/Data</tt>
73 * \li -VZERO calibration object
75 * <tt>VZERO/Calib/TimeDelays</tt>
76 * \li -VZERO calibration object
78 * <tt>VZERO/Calib/TimeSlewing</tt>
79 * \li -VZERO calibration object
81 * <h2>Performance:</h2>
83 * <h2>Memory consumption:</h2>
85 * <h2>Input size:</h2>
86 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
90 * <h2>Output size:</h2>
91 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
93 * \li pp: Average : 1.8 kByte
95 * <h2>Macros Tests</h2>
96 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
98 * <tt>macros/makeConfigurationObjectVZEROReconstruction.C</tt>
99 * \li - Create configuration TObjString
101 * <tt>macros/HLTVZEROTest.C</tt>
102 * \li - Test macro for VZERO test in off-line environment
104 * <tt>macros/runVZEROTest.sh</tt>
105 * \li - Run Test macro HLTVZEROTest.C
107 * @ingroup alihlt_vzero
109 class AliHLTVZERORecoComponent : public AliHLTProcessor {
113 * ---------------------------------------------------------------------------------
114 * Constructor / Destructor
115 * ---------------------------------------------------------------------------------
119 AliHLTVZERORecoComponent();
122 virtual ~AliHLTVZERORecoComponent();
125 * ---------------------------------------------------------------------------------
126 * Public functions to implement AliHLTComponent's interface.
127 * These functions are required for the registration process
128 * ---------------------------------------------------------------------------------
131 /** interface function, see @ref AliHLTComponent for description */
132 const Char_t* GetComponentID();
134 /** interface function, see @ref AliHLTComponent for description */
135 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
137 /** interface function, see @ref AliHLTComponent for description */
138 AliHLTComponentDataType GetOutputDataType();
140 /** interface function, see @ref AliHLTComponent for description */
141 void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
143 /** interface function, see @ref AliHLTComponent for description */
144 void GetOCDBObjectDescription( TMap* const targetMap);
146 /** interface function, see @ref AliHLTComponent for description */
147 AliHLTComponent* Spawn();
152 * ---------------------------------------------------------------------------------
153 * Protected functions to implement AliHLTComponent's interface.
154 * These functions provide initialization as well as the actual processing
155 * capabilities of the component.
156 * ---------------------------------------------------------------------------------
159 // AliHLTComponent interface functions
161 /** interface function, see @ref AliHLTComponent for description */
162 Int_t DoInit( Int_t argc, const Char_t** argv );
164 /** interface function, see @ref AliHLTComponent for description */
167 /** interface function, see @ref AliHLTComponent for description */
168 Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
170 using AliHLTProcessor::DoEvent;
172 /** interface function, see @ref AliHLTComponent for description */
173 Int_t ScanConfigurationArgument(Int_t argc, const Char_t** argv);
175 /** interface function, see @ref AliHLTComponent for description */
176 Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
178 /** interface function, see @ref AliHLTComponent for description */
179 Int_t ReadPreprocessorValues(const Char_t* modules);
181 ///////////////////////////////////////////////////////////////////////////////////
186 * ---------------------------------------------------------------------------------
187 * Private functions to implement AliHLTComponent's interface.
188 * These functions provide initialization as well as the actual processing
189 * capabilities of the component.
190 * ---------------------------------------------------------------------------------
193 /** copy constructor prohibited */
194 AliHLTVZERORecoComponent(const AliHLTVZERORecoComponent&);
196 /** assignment operator prohibited */
197 AliHLTVZERORecoComponent& operator=(const AliHLTVZERORecoComponent&);
200 * ---------------------------------------------------------------------------------
202 * ---------------------------------------------------------------------------------
205 /** runInfo Object */
206 AliRunInfo *fRunInfo; // see above
208 /** VZERO reco param instance */
209 AliVZERORecoParam *fVZERORecoParam; //! transient
211 /** VZERO reconstructor instance */
212 AliVZEROReconstructor *fVZEROReconstructor; //! transient
214 /** Rawreader instance */
215 AliRawReaderMemory *fRawReader; //! transient
217 ClassDef(AliHLTVZERORecoComponent, 0)