Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
4 : #ifndef ALIHLTVZERORECOCOMPONENT_H
5 : #define ALIHLTVZERORECOCOMPONENT_H
6 :
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 */
10 :
11 : /** @file AliHLTVZERORecoComponent.h
12 : @author Jochen Thaeder <jochen@thaeder.de>
13 : @brief VZERO reconstruction component
14 : */
15 :
16 : // see below for class documentation
17 : // or
18 : // refer to README to build package
19 : // or
20 : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 :
22 :
23 : #include "AliHLTProcessor.h"
24 :
25 : class TTree;
26 :
27 : class AliRunInfo;
28 : class AliESDVZERO;
29 : class AliRawReaderMemory;
30 : class AliVZERORecoParam;
31 : class AliVZEROReconstructor;
32 :
33 : /**
34 : * @class AliHLTVZERORecoComponent
35 : * Reconstruction of VZERO data
36 : *
37 : * <h2>General properties:</h2>
38 : *
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>
43 : *
44 : * <h2>Mandatory arguments:</h2>
45 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
46 : *
47 : * <h2>Optional arguments:</h2>
48 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
49 : *
50 : * <h2>Configuration:</h2>
51 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
52 : *
53 : * <h2>Default CDB entries:</h2>
54 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
55 : *
56 : * <tt>HLT/ConfigVZERO/VZEROReconstruction</tt>
57 : * \li -TObjString object holding a string with the configuration parameters
58 : * currently empty
59 : *
60 : * <tt>GRP/GRP/Data</tt>
61 : * \li -GRP object - run information
62 : *
63 : * <tt>GRP/CTP/CTPtiming</tt>
64 : * \li -GRP object - CTP information
65 : *
66 : * <tt>GRP/CTP/TimeAlign</tt>
67 : * \li -GRP object - CTP information
68 : *
69 : * <tt>GRP/Calib/LHCClockPhase</tt>
70 : * \li -GRP object - time calibration
71 : *
72 : * <tt>VZERO/Calib/Data</tt>
73 : * \li -VZERO calibration object
74 : *
75 : * <tt>VZERO/Calib/TimeDelays</tt>
76 : * \li -VZERO calibration object
77 : *
78 : * <tt>VZERO/Calib/TimeSlewing</tt>
79 : * \li -VZERO calibration object
80 : *
81 : * <h2>Performance:</h2>
82 : *
83 : * <h2>Memory consumption:</h2>
84 : *
85 : * <h2>Input size:</h2>
86 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
87 : *
88 : * \li pp: 5968 Byte
89 : *
90 : * <h2>Output size:</h2>
91 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
92 : *
93 : * \li pp: Average : 1.8 kByte
94 : *
95 : * <h2>Macros Tests</h2>
96 : * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
97 : *
98 : * <tt>macros/makeConfigurationObjectVZEROReconstruction.C</tt>
99 : * \li - Create configuration TObjString
100 : *
101 : * <tt>macros/HLTVZEROTest.C</tt>
102 : * \li - Test macro for VZERO test in off-line environment
103 : *
104 : * <tt>macros/runVZEROTest.sh</tt>
105 : * \li - Run Test macro HLTVZEROTest.C
106 : *
107 : * @ingroup alihlt_vzero
108 : */
109 : class AliHLTVZERORecoComponent : public AliHLTProcessor {
110 : public:
111 :
112 : /*
113 : * ---------------------------------------------------------------------------------
114 : * Constructor / Destructor
115 : * ---------------------------------------------------------------------------------
116 : */
117 :
118 : /** constructor */
119 : AliHLTVZERORecoComponent();
120 :
121 : /** destructor */
122 : virtual ~AliHLTVZERORecoComponent();
123 :
124 : /*
125 : * ---------------------------------------------------------------------------------
126 : * Public functions to implement AliHLTComponent's interface.
127 : * These functions are required for the registration process
128 : * ---------------------------------------------------------------------------------
129 : */
130 :
131 : /** interface function, see @ref AliHLTComponent for description */
132 : const Char_t* GetComponentID();
133 :
134 : /** interface function, see @ref AliHLTComponent for description */
135 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
136 :
137 : /** interface function, see @ref AliHLTComponent for description */
138 : AliHLTComponentDataType GetOutputDataType();
139 : int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
140 :
141 : /** interface function, see @ref AliHLTComponent for description */
142 : void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
143 :
144 : /** interface function, see @ref AliHLTComponent for description */
145 : void GetOCDBObjectDescription( TMap* const targetMap);
146 :
147 : /** interface function, see @ref AliHLTComponent for description */
148 : AliHLTComponent* Spawn();
149 :
150 : protected:
151 :
152 : /*
153 : * ---------------------------------------------------------------------------------
154 : * Protected functions to implement AliHLTComponent's interface.
155 : * These functions provide initialization as well as the actual processing
156 : * capabilities of the component.
157 : * ---------------------------------------------------------------------------------
158 : */
159 :
160 : // AliHLTComponent interface functions
161 :
162 : /** interface function, see @ref AliHLTComponent for description */
163 : Int_t DoInit( Int_t argc, const Char_t** argv );
164 :
165 : /** interface function, see @ref AliHLTComponent for description */
166 : Int_t DoDeinit();
167 :
168 : /** interface function, see @ref AliHLTComponent for description */
169 : Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
170 :
171 : using AliHLTProcessor::DoEvent;
172 :
173 : /** interface function, see @ref AliHLTComponent for description */
174 : Int_t ScanConfigurationArgument(Int_t argc, const Char_t** argv);
175 :
176 : /** interface function, see @ref AliHLTComponent for description */
177 : Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
178 :
179 : /** interface function, see @ref AliHLTComponent for description */
180 : Int_t ReadPreprocessorValues(const Char_t* modules);
181 :
182 : ///////////////////////////////////////////////////////////////////////////////////
183 :
184 : private:
185 :
186 : /*
187 : * ---------------------------------------------------------------------------------
188 : * Private functions to implement AliHLTComponent's interface.
189 : * These functions provide initialization as well as the actual processing
190 : * capabilities of the component.
191 : * ---------------------------------------------------------------------------------
192 : */
193 :
194 : /** copy constructor prohibited */
195 : AliHLTVZERORecoComponent(const AliHLTVZERORecoComponent&);
196 :
197 : /** assignment operator prohibited */
198 : AliHLTVZERORecoComponent& operator=(const AliHLTVZERORecoComponent&);
199 :
200 : /*
201 : * ---------------------------------------------------------------------------------
202 : * Members - private
203 : * ---------------------------------------------------------------------------------
204 : */
205 :
206 : /** runInfo Object */
207 : AliRunInfo *fRunInfo; // see above
208 :
209 : /** VZERO reco param instance */
210 : AliVZERORecoParam *fVZERORecoParam; //! transient
211 :
212 : /** VZERO reconstructor instance */
213 : AliVZEROReconstructor *fVZEROReconstructor; //! transient
214 :
215 : /** Rawreader instance */
216 : AliRawReaderMemory *fRawReader; //! transient
217 :
218 6 : ClassDef(AliHLTVZERORecoComponent, 0)
219 : };
220 : #endif
|