]>
Commit | Line | Data |
---|---|---|
f23a6e1a | 1 | // @(#) $Id$ |
2 | ||
3 | #ifndef ALIHLTDATATYPES_H | |
4 | #define ALIHLTDATATYPES_H | |
32db4144 | 5 | /* This file is property of and copyright by the ALICE HLT Project * |
6 | * ALICE Experiment at CERN, All rights reserved. * | |
f23a6e1a | 7 | * See cxx source for full Copyright notice */ |
8 | ||
b22e91eb | 9 | /** @file AliHLTDataTypes.h |
32db4144 | 10 | @author Matthias Richter, Timm Steinbeck, Jochen Thaeder |
b22e91eb | 11 | @date |
12 | @brief Data type declaration for the HLT module. | |
13 | */ | |
14 | ||
2cbdb37e | 15 | ////////////////////////////////////////////////////////////////////////// |
16 | // | |
17 | // version no of HLT data types | |
18 | // | |
19 | ////////////////////////////////////////////////////////////////////////// | |
20 | ||
21 | /* Version Description | |
22 | * 1 first version until June 07; implicite, not tagged | |
23 | * 2 introduced June 07, enhanced/cleaned/arranged structure | |
eda89fe6 | 24 | * 3 2007-11-15 RAW DDL data type added; some inconsistencies fixed |
25 | * ('void' and 'any' origins); added signed HLT basic data types | |
69347e0d | 26 | * 2007-11-23 origin defines have become variables in conjunction |
c704e290 | 27 | * to be used with the operator| (AliHLTComponentDataType) |
28 | * 2007-11-24 added trigger structs and ESD tree data type | |
b543e186 | 29 | * 4 Component configuration and DCS update events added |
2efb85be | 30 | * gkAliHLTDDLListSize set from 29 to 30 according to new PubSub |
31 | * specs | |
c736de25 | 32 | * 5 Data types for Run and Event summary, and for monitoring added |
1ac82ce6 | 33 | * 6 Common data types for TreeD and TreeR defined |
703bcca6 | 34 | * kAliHLTAllDataTypes and kAliHLTDataOriginSample added |
d9dd3bc8 | 35 | * kAliHLTDataOriginEMCAL added |
45c0a780 | 36 | * kAliHLTDataTypeRunType added |
a0aeb701 | 37 | * 7 kAliHLTDataTypeComponentStatistics, kAliHLTDataTypeComponentTable, |
38 | * and AliHLTComponentStatistics have been added for optional | |
39 | * component block statistics | |
a3c9b745 | 40 | * 8 new wrapper interface has been introduced, old wrapper interface |
41 | * deprecated but kept for backward compatibility, the PubSub | |
42 | * interface is going to be compiled independently of AliHLT, new | |
43 | * interface provided by the libHLTinterface.so | |
44 | * AliHLTComponentEnvironment -> AliHLTAnalysisEnvironment | |
7398abba | 45 | * 9 added data types for arrays of AliHLTExternalTrackParam sets and |
46 | * TClonesArrays of AliExternalTrackParam objects. | |
fa5e8413 | 47 | * 10 Changes for information objects neededfor running with offline |
48 | * chains and analysis tasks. | |
49 | * kAliHLTMCObjectDataType added | |
50 | * kAliHLTDataOriginOffline added | |
51 | * kAliHLTDataOriginHLT added | |
2e3fd14f | 52 | * 11 extended AliHLTComponentStatistics: one more member to store the |
53 | * cycle time between events per component. | |
8761de93 | 54 | * 12 added common data type id 'CLUSTERS' |
55 | * added data type 'ECSPARAM' for the full ECS parameter string to | |
56 | * be sebt during SOR | |
30f0c21d | 57 | * added kAliHLTDataTypeTrackMC (TRACK_MC) data type |
5fce88c6 | 58 | * added data types (note: interface version stays the same |
59 | * kAliHLTDataTypeDAQRDOUT (DAQRDOUT) | |
60 | * kAliHLTDataTypeTriggerDecision (TRIG_DEC) | |
61 | * kAliHLTDataTypeGlobalTrigger (GLOBTRIG) | |
815ccc7c | 62 | * kAliHLTDataTypeStreamerInfo (ROOTSTRI) |
81bea41b | 63 | * 13 Changed AliHLTEventDDL to now contain 31 words. The extra word is |
64 | * for the EMCAL detector, which needs 46 DDLs after DCAL was added. | |
da61714d | 65 | * 14 Adding new data block type for HLT global trigger counters. |
682296c2 | 66 | * Adding data block type for ESD content |
67 | * Adding data block type for forwarded component table blocks | |
9e14734f | 68 | * Adding new event type for software triggers. |
742ae1c4 | 69 | * 15 Modifying data block types for trigger counter blocks. |
f8c41ec7 | 70 | * 16 Adding data type for the meta data block to be forwarded by the |
71 | * TCPDumpSubscriber for the Common Data Header (CDH) and readout | |
72 | * list information. | |
16e6f752 | 73 | * 17 New CDH v3 (10 32bit words, 100 trigger classes, etc.) |
5fc83467 | 74 | * 18 Added AD detector in AliHLTEventDDLV2 |
2cbdb37e | 75 | */ |
5fc83467 | 76 | #define ALIHLT_DATA_TYPES_VERSION 18 |
2cbdb37e | 77 | |
32db4144 | 78 | ////////////////////////////////////////////////////////////////////////// |
79 | // | |
69347e0d | 80 | // HLT data origin variables. |
81 | // | |
82 | // By converting from defines to variables, the origins can be used with | |
83 | // the operator| | |
84 | // | |
85 | // AliHLTComponentDataType dt; | |
fa5e8413 | 86 | // dt = kAliHLTDataTypeDDLRaw | kAliHLTDataOriginTPC; |
32db4144 | 87 | // |
88 | ////////////////////////////////////////////////////////////////////////// | |
89 | ||
1ac82ce6 | 90 | /** field size of datat type origin |
91 | * @ingroup alihlt_component_datatypes | |
92 | */ | |
32db4144 | 93 | const int kAliHLTComponentDataTypefOriginSize=4; |
94 | ||
95 | ||
1ac82ce6 | 96 | /** invalid data origin |
97 | * @ingroup alihlt_component_datatypes | |
98 | */ | |
3f850585 | 99 | # define kAliHLTDataOriginVoid "\0\0\0" |
100 | /** old invalid data origin, kept for backward compatibility */ | |
32db4144 | 101 | # define kAliHLTVoidDataOrigin "\0\0\0" |
102 | ||
1ac82ce6 | 103 | /** wildcard data type origin |
104 | * @ingroup alihlt_component_datatypes | |
105 | */ | |
3f850585 | 106 | # define kAliHLTDataOriginAny "***" |
107 | /** old wildcard data type origin, kept for backward compatibility */ | |
32db4144 | 108 | # define kAliHLTAnyDataOrigin "***" |
109 | ||
1ac82ce6 | 110 | /** Data origin HLT out |
111 | * @ingroup alihlt_component_datatypes | |
112 | */ | |
69347e0d | 113 | extern const char kAliHLTDataOriginOut[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 114 | |
fa5e8413 | 115 | /** Data origin HLT, used for HLT specifc data |
116 | * in offline chains. This not a bug! | |
117 | * @ingroup alihlt_component_datatypes | |
118 | */ | |
119 | extern const char kAliHLTDataOriginHLT[kAliHLTComponentDataTypefOriginSize]; | |
120 | ||
121 | /** Data origin Offline | |
122 | * @ingroup alihlt_component_datatypes | |
123 | */ | |
124 | extern const char kAliHLTDataOriginOffline[kAliHLTComponentDataTypefOriginSize]; | |
125 | ||
1ac82ce6 | 126 | /** Data origin HLT/PubSub private internal |
127 | * @ingroup alihlt_component_datatypes | |
128 | */ | |
69347e0d | 129 | extern const char kAliHLTDataOriginPrivate[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 130 | |
1ac82ce6 | 131 | /** Data origin TPC |
132 | * @ingroup alihlt_component_datatypes | |
133 | */ | |
69347e0d | 134 | extern const char kAliHLTDataOriginTPC[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 135 | |
1ac82ce6 | 136 | /** Data origin PHOS |
137 | * @ingroup alihlt_component_datatypes | |
138 | */ | |
69347e0d | 139 | extern const char kAliHLTDataOriginPHOS[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 140 | |
629266d1 | 141 | /** Data origin FMD |
142 | * @ingroup alihlt_component_datatypes | |
143 | */ | |
144 | extern const char kAliHLTDataOriginFMD[kAliHLTComponentDataTypefOriginSize]; | |
145 | ||
1ac82ce6 | 146 | /** Data origin MUON |
147 | * @ingroup alihlt_component_datatypes | |
148 | */ | |
69347e0d | 149 | extern const char kAliHLTDataOriginMUON[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 150 | |
1ac82ce6 | 151 | /** Data origin TRD |
152 | * @ingroup alihlt_component_datatypes | |
153 | */ | |
69347e0d | 154 | extern const char kAliHLTDataOriginTRD[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 155 | |
1ac82ce6 | 156 | /** Data origin ITS |
157 | * @ingroup alihlt_component_datatypes | |
158 | */ | |
69347e0d | 159 | extern const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize]; |
32db4144 | 160 | |
b7ed2eb4 | 161 | /** Data origin ITSOut |
162 | * @ingroup alihlt_component_datatypes | |
163 | */ | |
164 | extern const char kAliHLTDataOriginITSOut[kAliHLTComponentDataTypefOriginSize]; | |
165 | ||
859fbc05 | 166 | /** Data origin ITS SPD |
167 | * @ingroup alihlt_component_datatypes | |
168 | */ | |
169 | extern const char kAliHLTDataOriginITSSPD[kAliHLTComponentDataTypefOriginSize]; | |
170 | ||
171 | /** Data origin ITS SDD | |
172 | * @ingroup alihlt_component_datatypes | |
173 | */ | |
174 | extern const char kAliHLTDataOriginITSSDD[kAliHLTComponentDataTypefOriginSize]; | |
175 | ||
176 | /** Data origin ITS SSD | |
177 | * @ingroup alihlt_component_datatypes | |
178 | */ | |
179 | extern const char kAliHLTDataOriginITSSSD[kAliHLTComponentDataTypefOriginSize]; | |
180 | ||
703bcca6 | 181 | /** Data origin for examples |
182 | * @ingroup alihlt_component_datatypes | |
183 | */ | |
184 | extern const char kAliHLTDataOriginSample[kAliHLTComponentDataTypefOriginSize]; | |
185 | ||
d9dd3bc8 | 186 | /** Data origin EMCAL |
187 | * @ingroup alihlt_component_datatypes | |
188 | */ | |
189 | extern const char kAliHLTDataOriginEMCAL[kAliHLTComponentDataTypefOriginSize]; | |
190 | ||
b076fbfe | 191 | /** Data origin TOF |
192 | * @ingroup alihlt_component_datatypes | |
193 | */ | |
194 | extern const char kAliHLTDataOriginTOF[kAliHLTComponentDataTypefOriginSize]; | |
195 | ||
196 | /** Data origin HMPID | |
197 | * @ingroup alihlt_component_datatypes | |
198 | */ | |
199 | extern const char kAliHLTDataOriginHMPID[kAliHLTComponentDataTypefOriginSize]; | |
200 | ||
201 | /** Data origin CPV | |
202 | * @ingroup alihlt_component_datatypes | |
203 | */ | |
204 | extern const char kAliHLTDataOriginCPV[kAliHLTComponentDataTypefOriginSize]; | |
205 | ||
206 | /** Data origin PMD | |
207 | * @ingroup alihlt_component_datatypes | |
208 | */ | |
209 | extern const char kAliHLTDataOriginPMD[kAliHLTComponentDataTypefOriginSize]; | |
210 | ||
211 | /** Data origin T0 | |
212 | * @ingroup alihlt_component_datatypes | |
213 | */ | |
214 | extern const char kAliHLTDataOriginT0[kAliHLTComponentDataTypefOriginSize]; | |
215 | ||
216 | /** Data origin VZERO | |
217 | * @ingroup alihlt_component_datatypes | |
218 | */ | |
219 | extern const char kAliHLTDataOriginVZERO[kAliHLTComponentDataTypefOriginSize]; | |
220 | ||
221 | /** Data origin ZDC | |
222 | * @ingroup alihlt_component_datatypes | |
223 | */ | |
224 | extern const char kAliHLTDataOriginZDC[kAliHLTComponentDataTypefOriginSize]; | |
225 | ||
226 | /** Data origin ACORDE | |
227 | * @ingroup alihlt_component_datatypes | |
228 | */ | |
229 | ||
230 | extern const char kAliHLTDataOriginACORDE[kAliHLTComponentDataTypefOriginSize]; | |
231 | ||
232 | /** Data origin TRG | |
233 | * @ingroup alihlt_component_datatypes | |
234 | */ | |
235 | extern const char kAliHLTDataOriginTRG[kAliHLTComponentDataTypefOriginSize]; | |
236 | ||
32db4144 | 237 | ////////////////////////////////////////////////////////////////////////// |
238 | // | |
239 | // HLT common data type defines | |
240 | // | |
241 | ////////////////////////////////////////////////////////////////////////// | |
242 | ||
1ac82ce6 | 243 | /** field size of data type id |
244 | * @ingroup alihlt_component_datatypes | |
245 | */ | |
32db4144 | 246 | const int kAliHLTComponentDataTypefIDsize=8; |
247 | ||
248 | ||
1ac82ce6 | 249 | /** invalid data type id |
250 | * @ingroup alihlt_component_datatypes | |
251 | */ | |
32db4144 | 252 | # define kAliHLTVoidDataTypeID "\0\0\0\0\0\0\0" |
253 | ||
3dd8541e | 254 | /** special id for all data types: any + void |
255 | * @ingroup alihlt_component_datatypes | |
256 | */ | |
257 | # define kAliHLTAllDataTypesID "ALLDATA" | |
258 | ||
259 | /** special id for any valid data type id | |
1ac82ce6 | 260 | * @ingroup alihlt_component_datatypes |
261 | */ | |
32db4144 | 262 | # define kAliHLTAnyDataTypeID "*******" |
263 | ||
1ac82ce6 | 264 | /** DDL RAW data |
265 | * @ingroup alihlt_component_datatypes | |
266 | */ | |
3f850585 | 267 | # define kAliHLTDDLRawDataTypeID {'D','D','L','_','R','A','W',' '} |
268 | ||
8761de93 | 269 | /** CLUSTERS data |
270 | * Common data type for the output of cluster finders, the exact | |
271 | * format depends on the origin (detector) | |
272 | * @ingroup alihlt_component_datatypes | |
273 | */ | |
274 | # define kAliHLTClustersDataTypeID {'C','L','U','S','T','E','R','S'} | |
275 | ||
1ac82ce6 | 276 | /** calibration data for file exchange subscriber |
277 | * @ingroup alihlt_component_datatypes | |
278 | */ | |
32db4144 | 279 | # define kAliHLTFXSCalibDataTypeID {'F','X','S','_','C','A','L',' '} |
280 | ||
281 | /** start of run (SOR) event | |
2cbdb37e | 282 | * @ref AliHLTRunDesc |
1ac82ce6 | 283 | * @ingroup alihlt_component_datatypes |
32db4144 | 284 | */ |
285 | # define kAliHLTSORDataTypeID {'S','T','A','R','T','O','F','R'} | |
286 | ||
287 | /** end of run (EOR) event | |
2cbdb37e | 288 | * @ref AliHLTRunDesc |
1ac82ce6 | 289 | * @ingroup alihlt_component_datatypes |
32db4144 | 290 | */ |
291 | # define kAliHLTEORDataTypeID {'E','N','D','O','F','R','U','N'} | |
292 | ||
45c0a780 | 293 | /** run type data block |
294 | * string with run type as payload | |
295 | * @ingroup alihlt_component_datatypes | |
296 | */ | |
297 | # define kAliHLTRunTypeDataTypeID {'R','U','N','T','Y','P','E',' '} | |
298 | ||
32db4144 | 299 | /** DDL list event |
300 | * @ref AliHLTEventDDL | |
1ac82ce6 | 301 | * @ingroup alihlt_component_datatypes |
32db4144 | 302 | */ |
303 | # define kAliHLTDDLDataTypeID {'D','D','L','L','I','S','T',' '} | |
304 | ||
5fce88c6 | 305 | /** DAQ readout list |
306 | * @ingroup alihlt_component_datatypes | |
307 | */ | |
308 | # define kAliHLTDAQRDOUTDataTypeID "DAQRDOUT" | |
309 | ||
025443e0 | 310 | /** HLT readout list. |
311 | * @ingroup alihlt_component_datatypes | |
312 | */ | |
313 | # define kAliHLTReadoutListDataTypeID {'H','L','T','R','D','L','S','T'} | |
314 | ||
9d9ffd37 | 315 | /** EventType event |
316 | * - empty payload, specification gives eventType | |
1ac82ce6 | 317 | * @ingroup alihlt_component_datatypes |
9d9ffd37 | 318 | */ |
319 | # define kAliHLTEventDataTypeID {'E','V','E','N','T','T','Y','P'} | |
320 | ||
8761de93 | 321 | /** ECS parameter event |
322 | * - sent during the SOR event by the framework | |
323 | * - contains the full ECS parameter string | |
324 | * @ingroup alihlt_component_datatypes | |
325 | */ | |
326 | # define kAliHLTECSParamDataTypeID {'E','C','S','P','A','R','A','M'} | |
327 | ||
853121af | 328 | /** ComponentConfiguration event |
b543e186 | 329 | * - payload contains the CDB path as string |
1ac82ce6 | 330 | * @ingroup alihlt_component_datatypes |
853121af | 331 | */ |
332 | # define kAliHLTComConfDataTypeID {'C','O','M','_','C','O','N','F'} | |
333 | ||
b543e186 | 334 | /** DCS value update event |
335 | * - payload contains string of relevant detectors | |
1ac82ce6 | 336 | * @ingroup alihlt_component_datatypes |
b543e186 | 337 | */ |
338 | # define kAliHLTUpdtDCSDataTypeID {'U','P','D','T','_','D','C','S'} | |
339 | ||
fa5e8413 | 340 | /** MC data block |
341 | * an AliMCEvent object of varying origin | |
342 | * The 'V0' at the end allows a versioning | |
343 | * @ingroup alihlt_component_datatypes | |
344 | */ | |
345 | # define kAliHLTMCObjectDataTypeID {'A','L','I','M','C','_','V','0'} | |
346 | ||
7f167a74 | 347 | /** ESDVertex data block |
348 | * an AliESDVertex object of varying origin | |
349 | * The 'V0' at the end allows a versioning | |
350 | * @ingroup alihlt_component_datatypes | |
351 | */ | |
352 | # define kAliHLTESDVertexDataTypeID {'E','S','D','V','T','X','V','0'} | |
353 | ||
948af2f6 | 354 | /** KFVertex data block |
355 | * an AliKFVertex object of varying origin | |
356 | * The 'V0' at the end allows a versioning | |
357 | * @ingroup alihlt_component_datatypes | |
358 | */ | |
359 | # define kAliHLTKFVertexDataTypeID {'A','L','I','K','F','V','V','0'} | |
360 | ||
361 | ||
d9386025 | 362 | /** output of the GlobalVertexer data block |
363 | * The 'V0' at the end allows a versioning | |
364 | * @ingroup alihlt_component_datatypes | |
365 | */ | |
366 | # define kAliHLTDataTypeGlobalVertexerID {'G','L','B','V','T','X','V','0'} | |
367 | ||
948af2f6 | 368 | /** output of the PrimaryFinder data block |
369 | * The 'V0' at the end allows a versioning | |
370 | * @ingroup alihlt_component_datatypes | |
371 | */ | |
372 | # define kAliHLTDataTypePrimaryFinderID {'P','R','I','V','T','X','V','0'} | |
373 | ||
374 | /** output of the V0Finder data block | |
375 | * The 'V0' at the end allows a versioning | |
376 | * @ingroup alihlt_component_datatypes | |
377 | */ | |
378 | # define kAliHLTDataTypeV0FinderID {'V','0','S','V','T','X','V','0'} | |
379 | ||
c704e290 | 380 | /** ESD data block |
381 | * an AliESD object of varying origin | |
853121af | 382 | * The 'V0' at the end allows a versioning |
1ac82ce6 | 383 | * @ingroup alihlt_component_datatypes |
c704e290 | 384 | */ |
a978c0d5 | 385 | # define kAliHLTESDObjectDataTypeID {'A','L','I','E','S','D','V','0'} |
c704e290 | 386 | |
accd913d | 387 | /** ESD friend data block |
388 | * an AliESDfriend object of varying origin | |
389 | * The 'V0' at the end allows a versioning | |
390 | * @ingroup alihlt_component_datatypes | |
391 | */ | |
392 | # define kAliHLTESDfriendObjectDataTypeID {'E','S','D','F','R','N','D','0'} | |
393 | ||
a48865c5 | 394 | /** Flat ESD Vertex data block |
395 | * The '0' at the end allows a versioning | |
396 | * @ingroup alihlt_component_datatypes | |
397 | */ | |
398 | # define kAliHLTFlatESDVertexDataTypeID {'F','L','A','T','V','T','X','0'} | |
399 | ||
251a2c81 | 400 | /** Flat ESD data block |
401 | * an AliFlatESD object of varying origin | |
402 | * The '0' at the end allows a versioning | |
403 | * @ingroup alihlt_component_datatypes | |
404 | */ | |
405 | # define kAliHLTFlatESDDataTypeID {'F','L','A','T','E','S','D','0'} | |
406 | ||
bbac6f91 | 407 | /** Flat ESD data block |
408 | * an AliFlatESDFriend object of varying origin | |
409 | * @ingroup alihlt_component_datatypes | |
410 | */ | |
411 | # define kAliHLTFlatESDFriendDataTypeID {'F','L','A','T','F','R','N','D'} | |
412 | ||
682296c2 | 413 | /** ESD |
414 | * data blocks designated for the ESD | |
415 | * @ingroup alihlt_component_datatypes | |
416 | */ | |
417 | # define kAliHLTESDContentDataTypeID {'E','S','D','_','C','O','N','T'} | |
418 | ||
a978c0d5 | 419 | /** ESD tree data block |
420 | * TTree with an AliESD object of varying origin | |
1ac82ce6 | 421 | * @ingroup alihlt_component_datatypes |
a978c0d5 | 422 | */ |
423 | # define kAliHLTESDTreeDataTypeID {'E','S','D','_','T','R','E','E'} | |
64defa03 | 424 | |
1ac82ce6 | 425 | /** AliRoot TreeD |
426 | * - the digits tree of an AliRoot module | |
427 | * @ingroup alihlt_component_datatypes | |
428 | */ | |
429 | #define kAliHLTTreeDDataTypeID {'A','L','I','T','R','E','E','D'} | |
430 | ||
431 | /** AliRoot TreeR | |
432 | * - the rec points tree of an AliRoot module | |
433 | * @ingroup alihlt_component_datatypes | |
434 | */ | |
ad2fa36b | 435 | #define kAliHLTTreeRDataTypeID {'A','L','I','T','R','E','E','R'} |
1ac82ce6 | 436 | |
64defa03 | 437 | /** HW Address selection data block |
438 | * - a selection list for 16 bit HW addresses | |
439 | * - varying origin | |
1ac82ce6 | 440 | * @ingroup alihlt_component_datatypes |
64defa03 | 441 | */ |
442 | # define kAliHLTHwAddr16DataTypeID {'H','W','A','D','D','R','1','6'} | |
443 | ||
2ff24e4c | 444 | /** Event Statistics |
445 | * - event statistics for given detectors | |
446 | * - varying origin | |
1ac82ce6 | 447 | * @ingroup alihlt_component_datatypes |
2ff24e4c | 448 | */ |
449 | # define kAliHLTEventStatisticsDataTypeID {'E','V','_','S','T','A','T','I'} | |
450 | ||
451 | /** Event Summary | |
452 | * - event summary | |
453 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1ac82ce6 | 454 | * @ingroup alihlt_component_datatypes |
2ff24e4c | 455 | */ |
456 | # define kAliHLTEventSummaryDataTypeID {'E','V','_','S','U','M','M','A'} | |
457 | ||
458 | /** Run Statistics | |
459 | * - run statistics for given detectors | |
460 | * - varying origin | |
1ac82ce6 | 461 | * @ingroup alihlt_component_datatypes |
2ff24e4c | 462 | */ |
463 | # define kAliHLTRunStatisticsDataTypeID {'R','U','N','S','T','A','T','I'} | |
464 | ||
465 | /** Run Summary | |
466 | * - run summary | |
467 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1ac82ce6 | 468 | * @ingroup alihlt_component_datatypes |
2ff24e4c | 469 | */ |
470 | # define kAliHLTRunSummaryDataTypeID {'R','U','N','S','U','M','M','A'} | |
471 | ||
5fce88c6 | 472 | /** Trigger decision |
473 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
474 | * @ingroup alihlt_component_datatypes | |
475 | */ | |
476 | # define kAliHLTTriggerDecisionDataTypeID {'T','R','I','G','_','D','E','C'} | |
477 | ||
478 | /** Global trigger decision | |
479 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
480 | * @ingroup alihlt_component_datatypes | |
481 | */ | |
482 | # define kAliHLTGlobalTriggerDataTypeID {'G','L','O','B','T','R','I','G'} | |
483 | ||
a0aeb701 | 484 | /** Block Statistics |
485 | * - small block statistics info added to the data stream by | |
486 | * the component base class | |
487 | * - origin kAliHLTDataOriginPrivate | |
488 | * @ingroup alihlt_component_datatypes | |
489 | */ | |
490 | # define kAliHLTComponentStatisticsDataTypeID {'C','O','M','P','S','T','A','T'} | |
491 | ||
492 | /** Component table | |
493 | * - list of components in the chain to be percolated through the chain | |
494 | * - each component adds it's chain id string and a generated 32bit id | |
495 | * @ingroup alihlt_component_datatypes | |
496 | */ | |
497 | # define kAliHLTComponentTableDataTypeID {'C','O','M','P','T','A','B','L'} | |
498 | ||
682296c2 | 499 | /** Forwarded component table |
500 | * @ingroup alihlt_component_datatypes | |
501 | */ | |
502 | # define kAliHLTComponentFwdTableDataTypeID {'C','O','M','P','T','A','B','F'} | |
503 | ||
c736de25 | 504 | /** general ROOT TObject |
505 | * - a general TObject exported from the HLT analysis | |
506 | * - varying origin | |
1ac82ce6 | 507 | * @ingroup alihlt_component_datatypes |
c736de25 | 508 | */ |
509 | #define kAliHLTTObjectDataTypeID {'R','O','O','T','T','O','B','J'} | |
510 | ||
815ccc7c | 511 | /** ROOT streamer info |
512 | * - used for the transmission of streamer info for objects in the HLTOUT | |
513 | * - origin kAliHLTDataOriginOut ( HLT ) | |
514 | * @ingroup alihlt_component_datatypes | |
515 | */ | |
516 | #define kAliHLTStreamerInfoDataTypeID {'R','O','O','T','S','T','R','I'} | |
517 | ||
c736de25 | 518 | /** ROOT TObjArray |
519 | * - a TObjArray exported from the HLT analysis | |
520 | * - varying origin | |
1ac82ce6 | 521 | * @ingroup alihlt_component_datatypes |
c736de25 | 522 | */ |
523 | #define kAliHLTTObjArrayDataTypeID {'R','O','O','T','O','B','A','R'} | |
524 | ||
525 | /** ROOT TTree | |
526 | * - a TTree object exported from the HLT analysis | |
527 | * - varying origin | |
1ac82ce6 | 528 | * @ingroup alihlt_component_datatypes |
c736de25 | 529 | */ |
530 | #define kAliHLTTTreeDataTypeID {'R','O','O','T','T','R','E','E'} | |
531 | ||
532 | /** ROOT histogram | |
533 | * - a histogram object exported from the HLT analysis | |
534 | * - class derives from TH1 (directly or indirectly) and inherits all common functionality | |
535 | * - varying origin | |
1ac82ce6 | 536 | * @ingroup alihlt_component_datatypes |
c736de25 | 537 | */ |
538 | #define kAliHLTHistogramDataTypeID {'R','O','O','T','H','I','S','T'} | |
539 | ||
540 | /** ROOT TNtuple | |
541 | * - a TNtupl object exported from the HLT analysis | |
542 | * - varying origin | |
1ac82ce6 | 543 | * @ingroup alihlt_component_datatypes |
c736de25 | 544 | */ |
545 | #define kAliHLTTNtupleDataTypeID {'R','O','O','T','T','U','P','L'} | |
546 | ||
7398abba | 547 | /** HLT Track |
548 | * - Struct for Tracks based on AliExternalTrackParam | |
549 | * - varying origin | |
550 | * @ingroup alihlt_component_datatypes | |
551 | */ | |
552 | #define kAliHLTTrackDataTypeID {'H','L','T','T','R','A','C','K'} | |
553 | ||
30f0c21d | 554 | /** Track Monte Carlo information |
555 | * @ingroup alihlt_component_datatypes | |
556 | */ | |
557 | #define kAliHLTTrackMCDataTypeID {'T','R','A','C','K','_','M','C'} | |
558 | ||
7398abba | 559 | /** TClonesArray of AliExternalTrackParam |
560 | * @ingroup alihlt_component_datatypes | |
561 | */ | |
562 | #define kAliHLTExternalTrackParamDataTypeID {'T','C','A','E','X','T','T','R'} | |
563 | ||
5341a1bf | 564 | /** HLT Jet |
565 | * - Struct for jets based on AliHLTJETJets | |
566 | * - varying origin | |
567 | * @ingroup alihlt_component_datatypes | |
568 | */ | |
569 | #define kAliHLTJetDataTypeID {'H','L','T','J','E','T','V','0'} | |
570 | ||
0973c527 | 571 | /** dEdx data |
572 | * Common data type for the dEdx | |
573 | * format depends on the origin (detector) | |
574 | * @ingroup alihlt_component_datatypes | |
575 | */ | |
576 | # define kAliHLTdEdxDataTypeID {'D','E','D','X',' ',' ',' ',' '} | |
577 | ||
d162a0b8 | 578 | /** dNdPt data |
579 | * Common data type for the dNdPt output object | |
580 | * @ingroup alihlt_component_datatypes | |
581 | */ | |
582 | # define kAliHLTdNdPtDataTypeID {'D','N','D','P','T',' ',' ',' '} | |
583 | ||
742ae1c4 | 584 | /** Global input trigger counters data block type. |
585 | * @ingroup alihlt_component_datatypes | |
586 | */ | |
587 | # define kAliHLTInputTriggerCountersDataTypeID {'I','N','T','R','G','C','N','T'} | |
588 | ||
589 | /** Global output trigger counters data block type. | |
590 | * @ingroup alihlt_component_datatypes | |
591 | */ | |
592 | # define kAliHLTOutputTriggerCountersDataTypeID {'O','T','T','R','G','C','N','T'} | |
593 | ||
f8c41ec7 | 594 | /** Generic meta data block type ID. |
b6d721b2 | 595 | * @ingroup alihlt_component_datatypes |
596 | */ | |
f8c41ec7 | 597 | # define kAliHLTMetaDataTypeID {'M','E','T','A','D','A','T','A'} |
b6d721b2 | 598 | |
f23a6e1a | 599 | extern "C" { |
32db4144 | 600 | ////////////////////////////////////////////////////////////////////////// |
601 | // | |
602 | // Basic HLT data types | |
603 | // | |
604 | ////////////////////////////////////////////////////////////////////////// | |
f23a6e1a | 605 | |
606 | typedef unsigned char AliHLTUInt8_t; | |
607 | ||
eda89fe6 | 608 | typedef signed char AliHLTInt8_t; |
609 | ||
71d7c760 | 610 | typedef unsigned short AliHLTUInt16_t; |
611 | ||
eda89fe6 | 612 | typedef signed short AliHLTInt16_t; |
613 | ||
f23a6e1a | 614 | typedef unsigned int AliHLTUInt32_t; |
615 | ||
eda89fe6 | 616 | typedef signed int AliHLTInt32_t; |
617 | ||
f23a6e1a | 618 | typedef unsigned long long AliHLTUInt64_t; |
619 | ||
eda89fe6 | 620 | typedef signed long long AliHLTInt64_t; |
621 | ||
622 | typedef float AliHLTFloat32_t; | |
623 | ||
624 | typedef double AliHLTFloat64_t; | |
625 | ||
f23a6e1a | 626 | typedef AliHLTUInt64_t AliHLTEventID_t; |
627 | ||
32db4144 | 628 | ////////////////////////////////////////////////////////////////////////// |
629 | // | |
630 | // HLT logging levels | |
631 | // | |
632 | ////////////////////////////////////////////////////////////////////////// | |
f23a6e1a | 633 | |
2efb85be | 634 | /** |
635 | * Logging severities of the HLT | |
636 | */ | |
637 | enum AliHLTComponentLogSeverity { | |
638 | /** no logging */ | |
32db4144 | 639 | kHLTLogNone = 0, |
2efb85be | 640 | /** benchmark messages */ |
32db4144 | 641 | kHLTLogBenchmark = 0x1, |
2efb85be | 642 | /** debug messages */ |
32db4144 | 643 | kHLTLogDebug = 0x2, |
2efb85be | 644 | /** info messages */ |
32db4144 | 645 | kHLTLogInfo = 0x4, |
2efb85be | 646 | /** warning messages */ |
32db4144 | 647 | kHLTLogWarning = 0x8, |
2efb85be | 648 | /** error messages */ |
32db4144 | 649 | kHLTLogError = 0x10, |
b2065764 | 650 | /** fatal error messages */ |
32db4144 | 651 | kHLTLogFatal = 0x20, |
b2065764 | 652 | /** few important messages not to be filtered out. |
653 | * redirected to kHLTLogInfo in AliRoot | |
654 | */ | |
655 | kHLTLogImportant = 0x40, | |
2efb85be | 656 | /** special value to enable all messages */ |
b2065764 | 657 | kHLTLogAll = 0x7f, |
2efb85be | 658 | /** the default logging filter */ |
7233bc62 | 659 | kHLTLogDefault = 0x79 |
a3c9b745 | 660 | }; |
32db4144 | 661 | |
662 | ////////////////////////////////////////////////////////////////////////// | |
663 | // | |
664 | // HLT data structures for data exchange and external interface | |
665 | // | |
666 | ////////////////////////////////////////////////////////////////////////// | |
667 | ||
668 | /** | |
669 | * @struct AliHLTComponentEventData | |
670 | * Event descriptor | |
671 | */ | |
8ede8717 | 672 | struct AliHLTComponentEventData |
f23a6e1a | 673 | { |
b4c0ba41 | 674 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
675 | AliHLTEventID_t fEventID; /// 64 bit event ID number. | |
676 | AliHLTUInt32_t fEventCreation_s; /// Event creation time in seconds (Should be added to fEventCreation_us*1e6). | |
677 | AliHLTUInt32_t fEventCreation_us; /// Fractional event creation time in micro seconds. | |
678 | AliHLTUInt32_t fBlockCnt; /// The number of raw data blocks received by the component. | |
f23a6e1a | 679 | }; |
680 | ||
32db4144 | 681 | /** |
682 | * @struct AliHLTComponentShmData | |
683 | * Shared memory descriptor. | |
684 | * Irrelevant for analysis components. | |
685 | */ | |
8ede8717 | 686 | struct AliHLTComponentShmData |
f23a6e1a | 687 | { |
b4c0ba41 | 688 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
689 | AliHLTUInt32_t fShmType; /// The type code of the shared memory. | |
690 | AliHLTUInt64_t fShmID; /// The shared memory identifier. | |
f23a6e1a | 691 | }; |
71d7c760 | 692 | |
1ac82ce6 | 693 | /** |
694 | * @defgroup alihlt_component_datatypes Common Component Data Types | |
695 | * The analysis framework defines a number of common data types for | |
696 | * usage in the detector modules, like e.g. ::kAliHLTAnyDataType | |
697 | * and ::kAliHLTDataTypeDDLRaw. Those data types always have | |
698 | * origin ::kAliHLTDataOriginAny. The correct detector origin can be | |
699 | * set by using operator '|' | |
700 | * <pre> | |
701 | * AliHLTComponentDataType dt=kAliHLTDDLRawDataTypeID|kAliHLTDataOriginTPC | |
702 | * </pre> | |
703 | * @ingroup alihlt_component | |
704 | */ | |
705 | ||
32db4144 | 706 | /** |
707 | * @struct AliHLTComponentDataType | |
559631d5 | 708 | * Data type descriptor for data blocks transferred through the processing |
32db4144 | 709 | * chain. |
1ac82ce6 | 710 | * @ingroup alihlt_component_datatypes |
32db4144 | 711 | */ |
8ede8717 | 712 | struct AliHLTComponentDataType |
f23a6e1a | 713 | { |
b4c0ba41 | 714 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
715 | char fID[kAliHLTComponentDataTypefIDsize]; /// Data type identifier. | |
716 | char fOrigin[kAliHLTComponentDataTypefOriginSize]; /// Subsystem or detector origin of the data. | |
f23a6e1a | 717 | }; |
2d7ff710 | 718 | |
32db4144 | 719 | /** |
720 | * @struct AliHLTComponentBlockData | |
3294f81a | 721 | * This is the decription of data blocks exchanged between components. |
722 | * \b IMPORTANT: The validity of fPtr and fOffset is different for input and | |
723 | * output blocks: | |
724 | * - input blocks: The \em fPtr member always points to the beginning of the data | |
725 | * of size \em fSize. fOffset is ignored and should be in most | |
726 | * case 0. | |
727 | * - output blocks: The \em fPtr member is ignored by the framework. \em fOffset | |
728 | * must specify the start of the data relative to the output | |
729 | * buffer. The data block has size \em fSize. | |
32db4144 | 730 | */ |
8ede8717 | 731 | struct AliHLTComponentBlockData |
f23a6e1a | 732 | { |
b4c0ba41 | 733 | /** size and version of the struct */ |
f23a6e1a | 734 | AliHLTUInt32_t fStructSize; |
b4c0ba41 | 735 | /** shared memory key, ignored by processing components */ |
8ede8717 | 736 | AliHLTComponentShmData fShmKey; |
b4c0ba41 | 737 | /** offset of output data relative to the output buffer */ |
f23a6e1a | 738 | AliHLTUInt32_t fOffset; |
b4c0ba41 | 739 | /** start of the data for input data blocks, fOffset to be ignored*/ |
f23a6e1a | 740 | void* fPtr; |
b4c0ba41 | 741 | /** size of the data block */ |
f23a6e1a | 742 | AliHLTUInt32_t fSize; |
b4c0ba41 | 743 | /** data type of the data block */ |
8ede8717 | 744 | AliHLTComponentDataType fDataType; |
b4c0ba41 | 745 | /** data specification of the data block */ |
f23a6e1a | 746 | AliHLTUInt32_t fSpecification; |
9aa22e93 | 747 | |
748 | AliHLTComponentDataType GetDataType() const {return fDataType;} | |
749 | AliHLTUInt32_t GetSpecification() const {return fSpecification;} | |
f23a6e1a | 750 | }; |
751 | ||
32db4144 | 752 | /** |
753 | * @struct AliHLTComponentEventDoneData | |
754 | * | |
755 | */ | |
8ede8717 | 756 | struct AliHLTComponentEventDoneData |
f23a6e1a | 757 | { |
b4c0ba41 | 758 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
759 | AliHLTUInt32_t fDataSize; /// Size of the data section (following this data member) in bytes. | |
760 | void* fData; /// Start of the data section. | |
f23a6e1a | 761 | }; |
762 | ||
32db4144 | 763 | /** |
2cbdb37e | 764 | * @struct AliHLTRunDesc |
32db4144 | 765 | * Event descriptor. |
45c0a780 | 766 | * The struct is sent with the SOR and EOR events. |
767 | * | |
768 | * @note | |
a3c9b745 | 769 | * The name of the member fRunType is a bit misleading. This is not |
770 | * the ALICE Run Type given by the ECS to the sub-system. The member | |
771 | * is an internal HLT run type and a combination of the HLT running | |
772 | * mode and the beam type. | |
773 | * <pre> | |
774 | * Bit 0-2: beam type identifier | |
775 | * Bit 3-31: HLT mode | |
776 | * </pre> | |
32db4144 | 777 | */ |
2cbdb37e | 778 | struct AliHLTRunDesc |
32db4144 | 779 | { |
b4c0ba41 | 780 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
781 | AliHLTUInt32_t fRunNo; /// The run number for the current active run. | |
782 | AliHLTUInt32_t fRunType; /// The HLT run type. | |
32db4144 | 783 | }; |
784 | ||
a0aeb701 | 785 | /** |
786 | * @struct AliHLTComponentStatistics | |
787 | * Small block size summary added by the AliHLTComponent base class | |
788 | * if component statistics are enabled (--enable-compstat). | |
789 | * | |
790 | * fLevel is retrieved from incoming block statistics and incremented. | |
791 | * Incoming block statistics are appended to the newly added one if | |
792 | * --enable-compstat=full has been chosen. | |
2e3fd14f | 793 | * |
794 | * ChangeLog: | |
795 | * 2009-01-14 fComponentCycleTime added | |
a0aeb701 | 796 | */ |
797 | struct AliHLTComponentStatistics | |
798 | { | |
b4c0ba41 | 799 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
800 | AliHLTUInt32_t fLevel; /// Indicates from which processing stage this information is from. | |
801 | AliHLTUInt32_t fId; /// Unique identifier for the chain based on CRC code. | |
802 | AliHLTUInt32_t fTime; /// Real wall time used to process the data (micro seconds). | |
803 | AliHLTUInt32_t fCTime; /// CPU time used to process the data (micro seconds). | |
804 | AliHLTUInt32_t fInputBlockCount; /// Number of input data blocks. | |
805 | AliHLTUInt32_t fTotalInputSize; /// Total size in bytes of input data. | |
806 | AliHLTUInt32_t fOutputBlockCount; /// Number of output data blocks. | |
807 | AliHLTUInt32_t fTotalOutputSize; /// Total size in bytes of output data. | |
808 | AliHLTUInt32_t fComponentCycleTime; /// Real wall time indicating the start of the data processing (micro seconds). | |
a0aeb701 | 809 | }; |
810 | ||
811 | /** | |
812 | * @struct AliHLTComponentTableEntry | |
682296c2 | 813 | * Structure to be send on SOR event through the chain. |
a0aeb701 | 814 | * The 'length' of the structure is variable and depends on the length |
682296c2 | 815 | * of the buffer at the end. |
abb52c8f | 816 | * |
682296c2 | 817 | * ComponentTableEntries are sent with data type @ref kAliHLTDataTypeComponentTable |
818 | * and are identified by a 32bit Id specification generated by a CRC | |
abb52c8f | 819 | * algorithm from the chain Id of the component. This is not a 100% unique |
820 | * id but with a high probability. This approach accounts for the fact | |
682296c2 | 821 | * that all components are separated processes. |
822 | * | |
823 | * The buffer consists of an array of 32bit Ids containing the Ids of | |
824 | * all direct parents taken from the specification of the data blocks. | |
825 | * The number of parents is stored in fNofParents. Each component forwards the | |
826 | * incoming component table entries with data type @ref kAliHLTDataTypeComponentFwdTable | |
827 | * by that the direct parents can be identified. | |
828 | * | |
829 | * Following this array a description string contains the chain id, component args, and | |
830 | * maybe more properties in the future. The current format is | |
831 | * 'chain_id{component_id:component args}' e.g. TPC-CF_00_0{TPCClusterFinder32Bit:-deconvolute-time} | |
a0aeb701 | 832 | */ |
833 | struct AliHLTComponentTableEntry | |
834 | { | |
0622a0f3 | 835 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
836 | AliHLTUInt32_t fLevel; /// Indicates from which processing stage this information is from. | |
837 | AliHLTUInt16_t fNofParents; /// size of the array of parent ids | |
838 | AliHLTUInt8_t fSizeDescription; /// size of the description string in the appended buffer | |
839 | AliHLTUInt8_t fBuffer[1]; /// the strings: chain id, component args, reserved | |
a0aeb701 | 840 | }; |
841 | ||
8f81abf4 | 842 | ////////////////////////////////////////////////////////////////////////// |
843 | // | |
844 | // Trigger meta information | |
845 | // | |
846 | ////////////////////////////////////////////////////////////////////////// | |
847 | ||
848 | /** field size of fAttribute */ | |
2ff24e4c | 849 | const int gkAliHLTBlockDAttributeCount = 8; |
8f81abf4 | 850 | |
851 | /** field size of fCommonHeader */ | |
16e6f752 | 852 | const int gkAliHLTCommonHeaderCountV2 = 8; |
853 | const int gkAliHLTCommonHeaderCountV3 = 10; | |
854 | const int gkAliHLTCommonHeaderCount = gkAliHLTCommonHeaderCountV3; | |
8f81abf4 | 855 | |
a9a3028c | 856 | /** size of the DDL list first version */ |
857 | const int gkAliHLTDDLListSizeV0 = 30; | |
858 | ||
859 | /** size of the DDL list after DCAL added to EMCAL */ | |
860 | const int gkAliHLTDDLListSizeV1 = 31; | |
861 | ||
5fc83467 | 862 | /** size of the DDL list with AD */ |
863 | const int gkAliHLTDDLListSizeV2 =32; | |
864 | ||
32db4144 | 865 | /** size of the DDL list */ |
5fc83467 | 866 | const int gkAliHLTDDLListSize = gkAliHLTDDLListSizeV2; |
2ff24e4c | 867 | |
868 | /** Number of Trigger Classes of CTP in CDH */ | |
16e6f752 | 869 | const int gkNCTPTriggerClassesV2 = 50; |
870 | const int gkNCTPTriggerClassesV3 = 100; | |
871 | const int gkNCTPTriggerClasses = gkNCTPTriggerClassesV3; | |
872 | ||
873 | // make it also available as define for templates | |
874 | #define NCTPTRIGGERCLASSES 100 | |
32db4144 | 875 | |
876 | /** | |
a9a3028c | 877 | * @struct AliHLTEventDDLV0 |
878 | * First version of the DDL list event. | |
32db4144 | 879 | * The struct is send with the DDLLIST event. |
8f81abf4 | 880 | * Used in the trigger structure for internal apperance of |
881 | * the DLLs as well as for the HLT readout list send to DAQ | |
511b2509 | 882 | * ( as DataType : kAliHLTDataTypeDDL ) |
32db4144 | 883 | */ |
a9a3028c | 884 | struct AliHLTEventDDLV0 |
885 | { | |
886 | AliHLTUInt32_t fCount; /// Indicates the number of words in fList. | |
887 | AliHLTUInt32_t fList[gkAliHLTDDLListSizeV0]; /// The list of DDL enable/disable bits. | |
888 | }; | |
889 | ||
890 | /** | |
891 | * @struct AliHLTEventDDLV1 | |
892 | * DDL list event structure with extra word for DCAL bits. | |
893 | */ | |
894 | struct AliHLTEventDDLV1 | |
32db4144 | 895 | { |
b4c0ba41 | 896 | AliHLTUInt32_t fCount; /// Indicates the number of words in fList. |
a9a3028c | 897 | AliHLTUInt32_t fList[gkAliHLTDDLListSizeV1]; /// The list of DDL enable/disable bits. |
32db4144 | 898 | }; |
a9a3028c | 899 | |
5fc83467 | 900 | /** |
901 | * @struct AliHLTEventDDLV2 | |
902 | * DDL list event structure with extra word for AD bits. | |
903 | */ | |
904 | struct AliHLTEventDDLV2 | |
905 | { | |
906 | AliHLTUInt32_t fCount; /// Indicates the number of words in fList. | |
907 | AliHLTUInt32_t fList[gkAliHLTDDLListSizeV2]; /// The list of DDL enable/disable bits. | |
908 | }; | |
909 | ||
a9a3028c | 910 | /** |
911 | * @typedef AliHLTEventDDL | |
912 | * Current used default version of the AliHLTEventDDL structure. | |
913 | */ | |
5fc83467 | 914 | typedef AliHLTEventDDLV2 AliHLTEventDDL; |
32db4144 | 915 | |
8f81abf4 | 916 | /** |
917 | * @struct AliHLTEventTriggerData | |
8f81abf4 | 918 | */ |
919 | struct AliHLTEventTriggerData | |
920 | { | |
b4c0ba41 | 921 | AliHLTUInt8_t fAttributes[gkAliHLTBlockDAttributeCount]; /// List of data block attibutes. |
922 | AliHLTUInt64_t fHLTStatus; /// Bit field | |
923 | AliHLTUInt32_t fCommonHeaderWordCnt; /// Number of words in fCommonHeader. | |
924 | AliHLTUInt32_t fCommonHeader[gkAliHLTCommonHeaderCount]; /// The common header words. | |
a9a3028c | 925 | union |
926 | { | |
927 | AliHLTEventDDL fReadoutList; /// The default readout list structure. | |
928 | AliHLTEventDDLV0 fReadoutListV0; /// Access to the old version of the readout list structure. | |
929 | AliHLTEventDDLV1 fReadoutListV1; /// Access to the readout list structure with DCAL included. | |
5fc83467 | 930 | AliHLTEventDDLV2 fReadoutListV2; /// Access to the readout list structure with AD included. |
a9a3028c | 931 | }; |
8f81abf4 | 932 | }; |
933 | ||
934 | /** | |
935 | * @struct AliHLTComponentTriggerData | |
936 | * Trigger data | |
937 | */ | |
938 | struct AliHLTComponentTriggerData | |
939 | { | |
b4c0ba41 | 940 | AliHLTUInt32_t fStructSize; /// Size of this structure in bytes. |
941 | AliHLTUInt32_t fDataSize; /// Size of the data section (following this data member) in bytes. | |
942 | void* fData; /// Start of the data section. | |
8f81abf4 | 943 | }; |
944 | ||
9d9ffd37 | 945 | ////////////////////////////////////////////////////////////////////////// |
946 | // | |
947 | // HLT Event Type Specification | |
948 | // | |
949 | ////////////////////////////////////////////////////////////////////////// | |
950 | ||
951 | /** Unknown eventType specification */ | |
2ff24e4c | 952 | const AliHLTUInt32_t gkAliEventTypeUnknown = ~(AliHLTUInt32_t)0; |
9d9ffd37 | 953 | /** SOR eventType specification */ |
2ff24e4c | 954 | const AliHLTUInt32_t gkAliEventTypeStartOfRun=1; |
9d9ffd37 | 955 | /** Data eventType specification */ |
2ff24e4c | 956 | const AliHLTUInt32_t gkAliEventTypeData=2; |
9d9ffd37 | 957 | /** EOR eventType specification */ |
2ff24e4c | 958 | const AliHLTUInt32_t gkAliEventTypeEndOfRun=4; |
9d9ffd37 | 959 | /** Corrupt eventType specification */ |
2ff24e4c | 960 | const AliHLTUInt32_t gkAliEventTypeCorruptID=8; |
9d9ffd37 | 961 | /** Calibration eventType specification */ |
2ff24e4c | 962 | const AliHLTUInt32_t gkAliEventTypeCalibration=16; |
9e14734f | 963 | /** Software eventType specification */ |
964 | const AliHLTUInt32_t gkAliEventTypeSoftware=24; | |
9d9ffd37 | 965 | /** DataReplay eventType specification */ |
2ff24e4c | 966 | const AliHLTUInt32_t gkAliEventTypeDataReplay=32; |
b543e186 | 967 | /** Configuration eventType specification */ |
2ff24e4c | 968 | const AliHLTUInt32_t gkAliEventTypeConfiguration=34; |
d6b69874 | 969 | /** Update DCS eventType specification */ |
2ff24e4c | 970 | const AliHLTUInt32_t gkAliEventTypeReadPreprocessor=35; |
9d9ffd37 | 971 | /** Tick eventType specification */ |
2ff24e4c | 972 | const AliHLTUInt32_t gkAliEventTypeTick=64; |
9d9ffd37 | 973 | /** Max eventType specification */ |
2ff24e4c | 974 | const AliHLTUInt32_t gkAliEventTypeMax=64; |
9d9ffd37 | 975 | |
32db4144 | 976 | ////////////////////////////////////////////////////////////////////////// |
977 | // | |
978 | // HLT defines and defaults | |
979 | // | |
980 | ////////////////////////////////////////////////////////////////////////// | |
981 | ||
1ac82ce6 | 982 | /** invalid event id |
983 | * @ingroup alihlt_component_datatypes | |
984 | */ | |
32db4144 | 985 | const AliHLTEventID_t kAliHLTVoidEventID=~(AliHLTEventID_t)0; |
986 | ||
1ac82ce6 | 987 | /** invalid data specification |
988 | * @ingroup alihlt_component_datatypes | |
989 | */ | |
32db4144 | 990 | const AliHLTUInt32_t kAliHLTVoidDataSpec = ~(AliHLTUInt32_t)0; |
991 | ||
45c0a780 | 992 | /** invalid run no |
993 | * @ingroup alihlt_component_datatypes | |
994 | */ | |
995 | const AliHLTUInt32_t kAliHLTVoidRunNo = ~(AliHLTUInt32_t)0; | |
996 | ||
997 | /** invalid run type | |
998 | * @ingroup alihlt_component_datatypes | |
999 | */ | |
1000 | const AliHLTUInt32_t kAliHLTVoidRunType = ~(AliHLTUInt32_t)0; | |
1001 | ||
1002 | /** invalid run descriptor | |
1003 | * @ingroup alihlt_component_datatypes | |
1004 | */ | |
1005 | const AliHLTRunDesc kAliHLTVoidRunDesc={sizeof(AliHLTRunDesc), kAliHLTVoidRunNo, kAliHLTVoidRunType}; | |
1006 | ||
32db4144 | 1007 | /** invalid shared memory type */ |
1008 | const AliHLTUInt32_t gkAliHLTComponentInvalidShmType = 0; | |
1009 | ||
1010 | /** invalid shared memory id */ | |
1011 | const AliHLTUInt64_t gkAliHLTComponentInvalidShmID = ~(AliHLTUInt64_t)0; | |
1012 | ||
1ac82ce6 | 1013 | /** invalid data type |
1014 | * @ingroup alihlt_component_datatypes | |
1015 | */ | |
32db4144 | 1016 | const AliHLTComponentDataType kAliHLTVoidDataType = { |
1017 | sizeof(AliHLTComponentDataType), | |
1018 | kAliHLTVoidDataTypeID, | |
3f850585 | 1019 | kAliHLTDataOriginVoid |
32db4144 | 1020 | }; |
1021 | ||
3dd8541e | 1022 | /** all data types, means any + void data type |
1023 | * @ingroup alihlt_component_datatypes | |
1024 | */ | |
1025 | const AliHLTComponentDataType kAliHLTAllDataTypes = { | |
1026 | sizeof(AliHLTComponentDataType), | |
1027 | kAliHLTAllDataTypesID, | |
1028 | kAliHLTDataOriginAny | |
1029 | }; | |
1030 | ||
32db4144 | 1031 | // there is currently a problem with rootcint if the predefined ids |
1032 | // (commented below) are used. rootcint does not find the id if they | |
1033 | // are char arrays defined with {} and individual chars. If strings | |
1034 | // are used it works fine | |
1ac82ce6 | 1035 | /** any data type |
1036 | * @ingroup alihlt_component_datatypes | |
1037 | */ | |
32db4144 | 1038 | const AliHLTComponentDataType kAliHLTAnyDataType = { |
1039 | sizeof(AliHLTComponentDataType), | |
1040 | kAliHLTAnyDataTypeID, | |
3f850585 | 1041 | kAliHLTDataOriginAny |
32db4144 | 1042 | }; |
1043 | ||
1ac82ce6 | 1044 | /** multiple output data types |
1045 | * @ingroup alihlt_component_datatypes | |
1046 | */ | |
de6593d0 | 1047 | extern const AliHLTComponentDataType kAliHLTMultipleDataType; |
1048 | ||
1ac82ce6 | 1049 | /** data to file exchange subscriber |
1050 | * @ingroup alihlt_component_datatypes | |
1051 | */ | |
32db4144 | 1052 | extern const AliHLTComponentDataType kAliHLTDataTypeFXSCalib; |
1053 | ||
1ac82ce6 | 1054 | /** DDL list data type |
1055 | * @ingroup alihlt_component_datatypes | |
1056 | */ | |
32db4144 | 1057 | extern const AliHLTComponentDataType kAliHLTDataTypeDDL; |
1058 | ||
5fce88c6 | 1059 | /** DAQ readout list |
1060 | * @ingroup alihlt_component_datatypes | |
1061 | */ | |
1062 | extern const AliHLTComponentDataType kAliHLTDataTypeDAQRDOUT; | |
1063 | ||
8761de93 | 1064 | /** CLUSTERS data |
1065 | * Common data type for the output of cluster finders, the exact | |
1066 | * format depends on the origin (detector) | |
1067 | * @ingroup alihlt_component_datatypes | |
1068 | */ | |
1069 | extern const AliHLTComponentDataType kAliHLTDataTypeClusters; | |
1070 | ||
1ac82ce6 | 1071 | /** SOR data type |
1072 | * @ingroup alihlt_component_datatypes | |
1073 | */ | |
32db4144 | 1074 | extern const AliHLTComponentDataType kAliHLTDataTypeSOR; |
1075 | ||
1ac82ce6 | 1076 | /** EOR data type |
1077 | * @ingroup alihlt_component_datatypes | |
1078 | */ | |
32db4144 | 1079 | extern const AliHLTComponentDataType kAliHLTDataTypeEOR; |
5ec8e281 | 1080 | |
45c0a780 | 1081 | /** Run type data block |
1082 | * @ingroup alihlt_component_datatypes | |
1083 | */ | |
1084 | extern const AliHLTComponentDataType kAliHLTDataTypeRunType; | |
1085 | ||
1ac82ce6 | 1086 | /** Event type specification |
1087 | * @ingroup alihlt_component_datatypes | |
1088 | */ | |
77405890 | 1089 | extern const AliHLTComponentDataType kAliHLTDataTypeEvent; |
1090 | ||
8761de93 | 1091 | /** ECS parameter event |
1092 | * - sent during the SOR event by the framework | |
1093 | * - contains the full ECS parameter string | |
1094 | * @ingroup alihlt_component_datatypes | |
1095 | */ | |
1096 | extern const AliHLTComponentDataType kAliHLTDataTypeECSParam; // {ECSPARAM:PRIV} | |
1097 | ||
1ac82ce6 | 1098 | /** Configuration event data type |
1099 | * @ingroup alihlt_component_datatypes | |
1100 | */ | |
853121af | 1101 | extern const AliHLTComponentDataType kAliHLTDataTypeComConf; |
1102 | ||
1ac82ce6 | 1103 | /** DCS value update event |
1104 | * @ingroup alihlt_component_datatypes | |
1105 | */ | |
b543e186 | 1106 | extern const AliHLTComponentDataType kAliHLTDataTypeUpdtDCS; |
1107 | ||
1ac82ce6 | 1108 | /** RAW DDL data specification, origin is 'any', data publisher origin correctly |
1109 | * @ingroup alihlt_component_datatypes | |
1110 | */ | |
3f850585 | 1111 | extern const AliHLTComponentDataType kAliHLTDataTypeDDLRaw; |
1112 | ||
fa5e8413 | 1113 | /** AliMCEvent object data specification, origin is 'OFFL' |
1114 | * @ingroup alihlt_component_datatypes | |
1115 | */ | |
1116 | extern const AliHLTComponentDataType kAliHLTDataTypeMCObject; | |
1117 | ||
7f167a74 | 1118 | /** ESD vertex object data specification, origin is 'any' |
1119 | * @ingroup alihlt_component_datatypes | |
1120 | */ | |
1121 | extern const AliHLTComponentDataType kAliHLTDataTypeESDVertex; | |
1122 | ||
948af2f6 | 1123 | /** KF vertex object data specification, origin is 'any' |
1124 | * @ingroup alihlt_component_datatypes | |
1125 | */ | |
1126 | extern const AliHLTComponentDataType kAliHLTDataTypeKFVertex; | |
1127 | ||
1128 | /** global vertexer data specification, origin is 'any' | |
d9386025 | 1129 | * @ingroup alihlt_component_datatypes |
1130 | */ | |
1131 | extern const AliHLTComponentDataType kAliHLTDataTypeGlobalVertexer; | |
1132 | ||
948af2f6 | 1133 | /** primary finder data specification, origin is 'any' |
1134 | * @ingroup alihlt_component_datatypes | |
1135 | */ | |
1136 | extern const AliHLTComponentDataType kAliHLTDataTypePrimaryFinder; | |
1137 | ||
1138 | /** primary finder data specification, origin is 'any' | |
1139 | * @ingroup alihlt_component_datatypes | |
1140 | */ | |
1141 | extern const AliHLTComponentDataType kAliHLTDataTypeV0Finder; | |
1142 | ||
251a2c81 | 1143 | /** flat ESD object data specification, origin is 'any' |
1144 | * @ingroup alihlt_component_datatypes | |
1145 | */ | |
1146 | extern const AliHLTComponentDataType kAliHLTDataTypeFlatESD; | |
1147 | ||
bbac6f91 | 1148 | /** flat ESD friend object data specification, origin is 'any' |
1149 | * @ingroup alihlt_component_datatypes | |
1150 | */ | |
1151 | extern const AliHLTComponentDataType kAliHLTDataTypeFlatESDFriend; | |
1152 | ||
a48865c5 | 1153 | /** flat ESD vertex object data specification, origin is 'any' |
1154 | * @ingroup alihlt_component_datatypes | |
1155 | */ | |
1156 | extern const AliHLTComponentDataType kAliHLTDataTypeFlatESDVertex; | |
1157 | ||
1ac82ce6 | 1158 | /** ESD object data specification, origin is 'any' |
1159 | * @ingroup alihlt_component_datatypes | |
1160 | */ | |
a978c0d5 | 1161 | extern const AliHLTComponentDataType kAliHLTDataTypeESDObject; |
1162 | ||
accd913d | 1163 | /** ESD friend object data specification, origin is 'any' |
1164 | * @ingroup alihlt_component_datatypes | |
1165 | */ | |
1166 | extern const AliHLTComponentDataType kAliHLTDataTypeESDfriendObject; | |
1167 | ||
682296c2 | 1168 | /** ESD content data specification, origin is 'any' |
1169 | * @ingroup alihlt_component_datatypes | |
1170 | */ | |
1171 | extern const AliHLTComponentDataType kAliHLTDataTypeESDContent; | |
1172 | ||
1ac82ce6 | 1173 | /** ESD Tree data specification, origin is 'any' |
fa5e8413 | 1174 | * @ingroup alihlt_component_datatypes |
1175 | */ | |
c704e290 | 1176 | extern const AliHLTComponentDataType kAliHLTDataTypeESDTree; |
1177 | ||
1ac82ce6 | 1178 | /** AliRoot TreeD data specification, origin is 'any' |
1179 | * @ingroup alihlt_component_datatypes | |
1180 | */ | |
1181 | extern const AliHLTComponentDataType kAliHLTDataTypeAliTreeD; | |
1182 | ||
1183 | /** AliRoot TreeR data specification, origin is 'any' | |
1184 | * @ingroup alihlt_component_datatypes | |
1185 | */ | |
1186 | extern const AliHLTComponentDataType kAliHLTDataTypeAliTreeR; | |
1187 | ||
1188 | /** 16 bit Hardware address selection data specification, origin is 'any' | |
1189 | * @ingroup alihlt_component_datatypes | |
1190 | */ | |
64defa03 | 1191 | extern const AliHLTComponentDataType kAliHLTDataTypeHwAddr16; |
1192 | ||
1ac82ce6 | 1193 | /** Event statistics |
1194 | * @ingroup alihlt_component_datatypes | |
1195 | */ | |
2ff24e4c | 1196 | extern const AliHLTComponentDataType kAliHLTDataTypeEventStatistics; |
1197 | ||
1ac82ce6 | 1198 | /** Event summary |
1199 | * @ingroup alihlt_component_datatypes | |
1200 | */ | |
2ff24e4c | 1201 | extern const AliHLTComponentDataType kAliHLTDataTypeEventSummary; |
1202 | ||
1ac82ce6 | 1203 | /** Event statistics |
1204 | * @ingroup alihlt_component_datatypes | |
1205 | */ | |
2ff24e4c | 1206 | extern const AliHLTComponentDataType kAliHLTDataTypeRunStatistics; |
1207 | ||
5fce88c6 | 1208 | /** Run summary |
1ac82ce6 | 1209 | * @ingroup alihlt_component_datatypes |
1210 | */ | |
2ff24e4c | 1211 | extern const AliHLTComponentDataType kAliHLTDataTypeRunSummary; |
1212 | ||
5fce88c6 | 1213 | /** Trigger decision |
1214 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1215 | * @ingroup alihlt_component_datatypes | |
1216 | */ | |
1217 | extern const AliHLTComponentDataType kAliHLTDataTypeTriggerDecision; // {TRIG_DEC:HLT } | |
1218 | ||
025443e0 | 1219 | /** Trigger decision |
1220 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1221 | * @ingroup alihlt_component_datatypes | |
1222 | */ | |
1223 | extern const AliHLTComponentDataType kAliHLTDataTypeReadoutList; // {HLTRDLST:HLT } | |
1224 | ||
5fce88c6 | 1225 | /** Global trigger decision |
1226 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1227 | * @ingroup alihlt_component_datatypes | |
1228 | */ | |
1229 | extern const AliHLTComponentDataType kAliHLTDataTypeGlobalTrigger; // {GLOBTRIG:HLT } | |
1230 | ||
a0aeb701 | 1231 | /** Component block statistics |
1232 | * @ingroup alihlt_component_datatypes | |
1233 | */ | |
1234 | extern const AliHLTComponentDataType kAliHLTDataTypeComponentStatistics; | |
1235 | ||
1236 | /** Component table | |
1237 | * To be sent on SOR event, each component adds it's chain id string | |
1238 | * and a generated 32bit identifier to the table | |
1239 | * @ingroup alihlt_component_datatypes | |
1240 | */ | |
1241 | extern const AliHLTComponentDataType kAliHLTDataTypeComponentTable; | |
1242 | ||
682296c2 | 1243 | /** Forwarded component table |
1244 | * To be sent on SOR event, each component forwards blocks of type | |
1245 | * @ref kAliHLTDataTypeComponentTable was kAliHLTDataTypeComponentFwdTable | |
1246 | * after adding the parent ids to its own table struct. | |
1247 | * @ingroup alihlt_component_datatypes | |
1248 | */ | |
1249 | extern const AliHLTComponentDataType kAliHLTDataTypeComponentFwdTable; | |
1250 | ||
b6d721b2 | 1251 | /** |
f8c41ec7 | 1252 | * Data type for the Common Data Header and readout list information sent by TCPDumpSubscriber. |
b6d721b2 | 1253 | * @ingroup alihlt_component_datatypes |
1254 | */ | |
f8c41ec7 | 1255 | extern const AliHLTComponentDataType kAliHLTDataTypeTriggerMetaBlock; // {METADATA:PRIV} |
b6d721b2 | 1256 | |
c736de25 | 1257 | ////////////////////////////////////////////////////////////////////////// |
1258 | // | |
1259 | // Data Types for Monitoring objects | |
1260 | // | |
1261 | ////////////////////////////////////////////////////////////////////////// | |
1262 | ||
1ac82ce6 | 1263 | /** general ROOT TObject |
1264 | * @ingroup alihlt_component_datatypes | |
1265 | */ | |
c736de25 | 1266 | extern const AliHLTComponentDataType kAliHLTDataTypeTObject; // {ROOTTOBJ,"***"} |
815ccc7c | 1267 | |
1268 | /** ROOT streamer info | |
1269 | * @ingroup alihlt_component_datatypes | |
1270 | */ | |
1271 | extern const AliHLTComponentDataType kAliHLTDataTypeStreamerInfo; // {ROOTSTRI,HLT } | |
c736de25 | 1272 | |
1ac82ce6 | 1273 | /** ROOT TObjArray |
1274 | * @ingroup alihlt_component_datatypes | |
1275 | */ | |
c736de25 | 1276 | extern const AliHLTComponentDataType kAliHLTDataTypeTObjArray; // {ROOTOBAR,"***"} |
1277 | ||
1ac82ce6 | 1278 | /** ROOT TTree |
1279 | * @ingroup alihlt_component_datatypes | |
1280 | */ | |
c736de25 | 1281 | extern const AliHLTComponentDataType kAliHLTDataTypeTTree; // {ROOTTREE,"***"} |
1282 | ||
1ac82ce6 | 1283 | /** ROOT TH1 (can be used for all histograms, they derive from TH1) |
1284 | * @ingroup alihlt_component_datatypes | |
1285 | */ | |
c736de25 | 1286 | extern const AliHLTComponentDataType kAliHLTDataTypeHistogram; // {ROOTHIST,"***"} |
1287 | ||
1ac82ce6 | 1288 | /** ROOT TNtuple |
1289 | * @ingroup alihlt_component_datatypes | |
1290 | */ | |
c736de25 | 1291 | extern const AliHLTComponentDataType kAliHLTDataTypeTNtuple; // {ROOTTUPL,"***"} |
1292 | ||
742ae1c4 | 1293 | /** Global input trigger counters. |
1294 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
da61714d | 1295 | * @ingroup alihlt_component_datatypes |
742ae1c4 | 1296 | */ |
1297 | extern const AliHLTComponentDataType kAliHLTDataTypeInputTriggerCounters; // {INTRGCNT:HLT } | |
1298 | ||
1299 | /** Global output trigger counters. | |
1300 | * - origin : kAliHLTDataOriginOut ( HLT ) | |
1301 | * @ingroup alihlt_component_datatypes | |
1302 | */ | |
1303 | extern const AliHLTComponentDataType kAliHLTDataTypeOutputTriggerCounters; // {OTTRGCNT:HLT } | |
da61714d | 1304 | |
7398abba | 1305 | /** General track array for the barrel tracks based on AliExternalTrackParam |
1306 | * Data format defined by AliHLTTracksData | |
1307 | * | |
1308 | * We follow the naming scheme of AliESDEvent where 'Tracks' denote the | |
1309 | * barrel tracks and detector tracks get names 'DETTracks' | |
1310 | * @ingroup alihlt_component_datatypes | |
1311 | */ | |
5341a1bf | 1312 | extern const AliHLTComponentDataType kAliHLTDataTypeTrack; // {HLTTRACK,"***"} |
7398abba | 1313 | |
30f0c21d | 1314 | /** Track Monte Carlo information |
1315 | */ | |
1316 | extern const AliHLTComponentDataType kAliHLTDataTypeTrackMC; // {TRACK_MC,"***"} | |
1317 | ||
7398abba | 1318 | /** TClonesArray of AliExternalTrackParam |
1319 | * @ingroup alihlt_component_datatypes | |
1320 | */ | |
5341a1bf | 1321 | extern const AliHLTComponentDataType kAliHLTDataTypeExternalTrackParam; // {TCAEXTTR,"***"} |
1322 | ||
1323 | /** Container containing jets (AliHLTJETJets) | |
1324 | * Containing TClonesArray of AliAODJets | |
1325 | * @ingroup alihlt_component_datatypes | |
1326 | */ | |
1327 | extern const AliHLTComponentDataType kAliHLTDataTypeJet; // {HLTJETV0,"***"} | |
6edb0fb5 | 1328 | |
1329 | /** Container of ITS tracks | |
1330 | * @ingroup alihlt_component_datatypes | |
1331 | */ | |
1332 | extern const AliHLTComponentDataType fgkITSTracksDataType; | |
7398abba | 1333 | |
c1cd4fce | 1334 | /** Container of ITS SAP tracker data |
1335 | * @ingroup alihlt_component_datatypes | |
1336 | */ | |
1337 | extern const AliHLTComponentDataType kAliHLTDataTypeITSSAPData; | |
1338 | ||
b91f757c | 1339 | /** Container of calorimeter clusters |
1340 | * @ingroup alihlt_component_datatypes | |
1341 | */ | |
1342 | extern const AliHLTComponentDataType kAliHLTDataTypeCaloCluster; | |
1343 | ||
0973c527 | 1344 | /** Container of dEdx |
1345 | * @ingroup alihlt_component_datatypes | |
1346 | */ | |
1347 | extern const AliHLTComponentDataType kAliHLTDataTypedEdx; | |
1348 | ||
d162a0b8 | 1349 | /** Container of dNdPt |
1350 | * @ingroup alihlt_component_datatypes | |
1351 | */ | |
1352 | extern const AliHLTComponentDataType kAliHLTDataTypedNdPt; | |
1353 | ||
32db4144 | 1354 | ////////////////////////////////////////////////////////////////////////// |
1355 | // | |
1356 | // FXS subscriber meta information | |
1357 | // | |
1358 | ////////////////////////////////////////////////////////////////////////// | |
1359 | ||
2ff24e4c | 1360 | const int gkAliHLTFXSHeaderfOriginSize = 4; |
1361 | const int gkAliHLTFXSHeaderfFileIDSize = 128; | |
1362 | const int gkAliHLTFXSHeaderfDDLNumberSize = 64; | |
32db4144 | 1363 | |
1364 | /** Header in front of the data payload, in order to sent data to the FXS. */ | |
1365 | struct AliHLTFXSHeader | |
1366 | { | |
b4c0ba41 | 1367 | AliHLTUInt32_t fHeaderVersion; /// HLT software version number. |
1368 | AliHLTUInt32_t fRunNumber; /// The current run number. | |
1369 | char fOrigin[gkAliHLTFXSHeaderfOriginSize]; /// The detector from which the FXS data is received. | |
1370 | char fFileID[gkAliHLTFXSHeaderfFileIDSize]; /// File identifier for the stored data. | |
1371 | char fDDLNumber[gkAliHLTFXSHeaderfDDLNumberSize]; /// The DDL bits. | |
32db4144 | 1372 | }; |
1373 | ||
1374 | ////////////////////////////////////////////////////////////////////////// | |
1375 | // | |
1376 | // Component running environment | |
1377 | // | |
1378 | ////////////////////////////////////////////////////////////////////////// | |
1379 | ||
f331e6c5 | 1380 | /** definition of a void fct pointer */ |
1381 | typedef void (*AliHLTfctVoid)(); | |
1382 | ||
32db4144 | 1383 | /** logging function */ |
1384 | typedef int (*AliHLTfctLogging)( void* param, | |
1385 | AliHLTComponentLogSeverity severity, | |
1386 | const char* origin, | |
1387 | const char* keyword, | |
1388 | const char* message); | |
1389 | ||
1390 | /** | |
a3c9b745 | 1391 | * @struct AliHLTAnalysisEnvironment |
32db4144 | 1392 | * Running environment for analysis components. |
a3c9b745 | 1393 | * The struct describes function callbacks for actions to be |
1394 | * carried out by the calling framework, like memory allocation, | |
1395 | * property callbecks, logging, etc. | |
1396 | * | |
1397 | * @ingroup alihlt_wrapper_interface | |
32db4144 | 1398 | */ |
a3c9b745 | 1399 | struct AliHLTAnalysisEnvironment |
f23a6e1a | 1400 | { |
a3c9b745 | 1401 | /** size of the structure */ |
f23a6e1a | 1402 | AliHLTUInt32_t fStructSize; |
a3c9b745 | 1403 | |
b4c0ba41 | 1404 | /** the component parameter given by the framework on creation */ |
f23a6e1a | 1405 | void* fParam; |
a3c9b745 | 1406 | |
b4c0ba41 | 1407 | /** allocated memory */ |
f23a6e1a | 1408 | void* (*fAllocMemoryFunc)( void* param, unsigned long size ); |
a3c9b745 | 1409 | |
b4c0ba41 | 1410 | /** allocate an EventDoneData structure. */ |
a3c9b745 | 1411 | int (*fGetEventDoneDataFunc)( void* param, AliHLTEventID_t eventID, unsigned long size, AliHLTComponentEventDoneData** edd ); |
1412 | ||
b4c0ba41 | 1413 | /** logging callback */ |
a3c9b745 | 1414 | AliHLTfctLogging fLoggingFunc; |
1415 | }; | |
f23a6e1a | 1416 | #if 0 |
a3c9b745 | 1417 | // I just keep this as a note pad. Has to be added to the end of the structure |
1418 | // future addition already foreseen/envisioned | |
1419 | // IMPORTANT: don not just remove the defines as this breaks the binary | |
1420 | // compatibility | |
1421 | int (*fAllocShmMemoryFunc)( void* param, unsigned long size, AliHLTComponentBlockData* blockLocation ); | |
f23a6e1a | 1422 | #endif |
a3c9b745 | 1423 | |
1424 | /** | |
1425 | * @struct AliHLTComponentEnvironment | |
1426 | * This was the original definition of the running environment. | |
1427 | * Due to a bug in the AliRootWrapperSubscriber/SimpleComponentWrapper, | |
1428 | * this structure can not be used any longer but is kept for backward | |
1429 | * compatibility. | |
1430 | * @note The external interface provided by the libHLTbase is now kept | |
1431 | * frozen but should not be used any more. Use the interface provided | |
1432 | * by the libHLTinterface library. | |
1433 | * | |
1434 | * @ingroup alihlt_wrapper_interface_deprecated | |
1435 | */ | |
1436 | struct AliHLTComponentEnvironment | |
1437 | { | |
1438 | AliHLTUInt32_t fStructSize; | |
1439 | void* fParam; | |
1440 | void* (*fAllocMemoryFunc)( void* param, unsigned long size ); | |
8ede8717 | 1441 | int (*fGetEventDoneDataFunc)( void* param, AliHLTEventID_t eventID, unsigned long size, AliHLTComponentEventDoneData** edd ); |
5ec8e281 | 1442 | AliHLTfctLogging fLoggingFunc; |
f23a6e1a | 1443 | }; |
a3c9b745 | 1444 | |
1445 | ////////////////////////////////////////////////////////////////////////// | |
1446 | // | |
1447 | // The external interface definition | |
1448 | // | |
1449 | ////////////////////////////////////////////////////////////////////////// | |
1450 | ||
1451 | /** | |
1452 | * The component handle. | |
1453 | * Used as indification in the outside world. | |
1454 | * @ingroup alihlt_wrapper_interface | |
1455 | */ | |
1456 | typedef void* AliHLTComponentHandle; | |
1457 | ||
1458 | /** @ingroup alihlt_wrapper_interface */ | |
1459 | const AliHLTComponentHandle kEmptyHLTComponentHandle = 0; | |
1460 | ||
1461 | /** | |
1462 | * Get a system call of the interface. | |
1463 | * @param function signature | |
1464 | * @return pointer to system call | |
1465 | * @ingroup alihlt_wrapper_interface | |
1466 | */ | |
1467 | typedef void* (*AliHLTAnalysisFctGetInterfaceCall)(const char*); | |
1468 | ||
1469 | # define ALIHLTANALYSIS_INTERFACE_LIBRARY "libHLTinterface.so" | |
1470 | # define ALIHLTANALYSIS_FCT_GETINTERFACECALL "AliHLTAnalysisGetInterfaceCall" | |
1471 | ||
1472 | /** @ingroup alihlt_wrapper_interface */ | |
1473 | typedef int (*AliHLTExtFctInitSystem)( unsigned long version, AliHLTAnalysisEnvironment* externalEnv, unsigned long runNo, const char* runType ); | |
1474 | ||
1475 | /** @ingroup alihlt_wrapper_interface */ | |
1476 | typedef int (*AliHLTExtFctDeinitSystem)(); | |
1477 | ||
1478 | /** @ingroup alihlt_wrapper_interface */ | |
1479 | typedef int (*AliHLTExtFctLoadLibrary)( const char* ); | |
1480 | ||
1481 | /** @ingroup alihlt_wrapper_interface */ | |
1482 | typedef int (*AliHLTExtFctUnloadLibrary)( const char* ); | |
1483 | ||
1484 | /** @ingroup alihlt_wrapper_interface */ | |
1485 | typedef int (*AliHLTExtFctCreateComponent)( const char*, void*, int, const char**, AliHLTComponentHandle*, const char* description ); | |
1486 | ||
1487 | /** @ingroup alihlt_wrapper_interface */ | |
1488 | typedef int (*AliHLTExtFctDestroyComponent)( AliHLTComponentHandle ); | |
1489 | ||
1490 | /** @ingroup alihlt_wrapper_interface */ | |
1491 | typedef int (*AliHLTExtFctProcessEvent)( AliHLTComponentHandle, const AliHLTComponentEventData*, const AliHLTComponentBlockData*, | |
1492 | AliHLTComponentTriggerData*, AliHLTUInt8_t*, | |
1493 | AliHLTUInt32_t*, AliHLTUInt32_t*, | |
1494 | AliHLTComponentBlockData**, | |
1495 | AliHLTComponentEventDoneData** ); | |
1496 | ||
1497 | /** @ingroup alihlt_wrapper_interface */ | |
1498 | typedef int (*AliHLTExtFctGetOutputDataType)( AliHLTComponentHandle, AliHLTComponentDataType* ); | |
1499 | ||
1500 | /** @ingroup alihlt_wrapper_interface */ | |
1501 | typedef int (*AliHLTExtFctGetOutputSize)( AliHLTComponentHandle, unsigned long*, double* ); | |
1502 | ||
f23a6e1a | 1503 | } |
1504 | ||
16e6f752 | 1505 | #include <bitset> |
1506 | typedef std::bitset<NCTPTRIGGERCLASSES> AliHLTTriggerMask_t; | |
1507 | ||
fda681bb | 1508 | using namespace std; |
1509 | ||
32db4144 | 1510 | ////////////////////////////////////////////////////////////////////////// |
1511 | // | |
1512 | // Data type helper functions | |
1513 | // | |
1514 | ////////////////////////////////////////////////////////////////////////// | |
1515 | ||
3dd8541e | 1516 | /** exact comparison of HLT component data types |
1517 | * @ingroup alihlt_component_datatypes | |
1518 | */ | |
1519 | inline bool MatchExactly( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) | |
1520 | { | |
1521 | for ( int i = 0; i < kAliHLTComponentDataTypefIDsize; i++ ) | |
1522 | if ( dt1.fID[i] != dt2.fID[i] ) | |
1523 | return false; | |
1524 | for ( int i = 0; i < kAliHLTComponentDataTypefOriginSize; i++ ) | |
1525 | if ( dt1.fOrigin[i] != dt2.fOrigin[i] ) | |
1526 | return false; | |
1527 | return true; | |
1528 | } | |
1529 | ||
1ac82ce6 | 1530 | /** Comparison operator for HLT component data types. |
1531 | * The operator takes wildcards into account, i.e. the ::kAliHLTAnyDataType, | |
1532 | * ::kAliHLTAnyDataTypeID and ::kAliHLTDataOriginAny definitions. | |
1533 | * @ingroup alihlt_component_datatypes | |
1534 | */ | |
8ede8717 | 1535 | inline bool operator==( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) |
853121af | 1536 | { |
3dd8541e | 1537 | if (MatchExactly(dt1, kAliHLTAllDataTypes)) return true; |
1538 | if (MatchExactly(dt2, kAliHLTAllDataTypes)) return true; | |
1539 | ||
853121af | 1540 | bool any1=true, any2=true, void1=true, void2=true, match=true; |
1541 | for ( int i = 0; i < kAliHLTComponentDataTypefOriginSize; i++ ) { | |
1542 | any1&=(dt1.fOrigin[i]==kAliHLTDataOriginAny[i]); | |
1543 | any2&=(dt2.fOrigin[i]==kAliHLTDataOriginAny[i]); | |
1544 | void1&=(dt1.fOrigin[i]==kAliHLTDataOriginVoid[i]); | |
1545 | void2&=(dt2.fOrigin[i]==kAliHLTDataOriginVoid[i]); | |
1546 | match&=dt1.fOrigin[i]==dt2.fOrigin[i]; | |
1547 | if (!(match || (any2 && !void1) || (any1 && !void2))) | |
1548 | return false; | |
1549 | } | |
1550 | ||
1551 | any1=true, any2=true, match=true; | |
1552 | for ( int i = 0; i < kAliHLTComponentDataTypefIDsize; i++ ) { | |
1553 | any1&=(dt1.fID[i]==kAliHLTAnyDataTypeID[i]); | |
1554 | any2&=(dt2.fID[i]==kAliHLTAnyDataTypeID[i]); | |
1555 | void1&=(dt1.fID[i]==kAliHLTVoidDataTypeID[i]); | |
1556 | void2&=(dt2.fID[i]==kAliHLTVoidDataTypeID[i]); | |
1557 | match&=dt1.fID[i]==dt2.fID[i]; | |
1558 | if (!(match || (any2 && !void1) || (any1 && !void2))) | |
1559 | return false; | |
1560 | } | |
1561 | return true; | |
1562 | } | |
71d7c760 | 1563 | |
1ac82ce6 | 1564 | /** Comparison operator for HLT component data types |
297174de | 1565 | * Invers of operator== |
1ac82ce6 | 1566 | * @ingroup alihlt_component_datatypes |
1567 | */ | |
8ede8717 | 1568 | inline bool operator!=( const AliHLTComponentDataType& dt1, const AliHLTComponentDataType& dt2 ) |
853121af | 1569 | { |
1570 | return !(dt1==dt2); | |
1571 | } | |
71d7c760 | 1572 | |
1ac82ce6 | 1573 | /** merge operator for HLT component data types and origins |
1574 | * @ingroup alihlt_component_datatypes | |
1575 | */ | |
69347e0d | 1576 | inline AliHLTComponentDataType operator|(const AliHLTComponentDataType srcdt, const char origin[kAliHLTComponentDataTypefOriginSize]) |
853121af | 1577 | { |
1578 | AliHLTComponentDataType dt=srcdt; | |
1579 | for ( int i = 0; i < kAliHLTComponentDataTypefOriginSize; i++ ) | |
1580 | dt.fOrigin[i]=origin[i]; | |
1581 | return dt; | |
1582 | } | |
32db4144 | 1583 | |
e5c0542d | 1584 | /** |
1585 | * Helper function to initialize a data type from an id char array and origin string. | |
1586 | * @return data type structure initialized with the specified id and origin | |
1587 | * @ingroup alihlt_component_datatypes | |
1588 | */ | |
1589 | inline AliHLTComponentDataType AliHLTComponentDataTypeInitializer(const char id[kAliHLTComponentDataTypefIDsize], const char* origin) | |
1590 | { | |
1591 | AliHLTComponentDataType dt=kAliHLTVoidDataType; | |
1592 | int i=0; | |
5fce88c6 | 1593 | for (i = 0; i < kAliHLTComponentDataTypefIDsize && id[i]!=0; i++) |
e5c0542d | 1594 | dt.fID[i]=id[i]; |
1595 | for (i = 0; i < kAliHLTComponentDataTypefOriginSize && origin[i]!=0; i++ ) | |
1596 | dt.fOrigin[i]=origin[i]; | |
1597 | return dt; | |
1598 | } | |
1599 | ||
1600 | /** | |
1601 | * Helper function to initialize a data type from a default data type and | |
1602 | * an origin string. Basically it merges the specified origin into the data | |
1603 | * type. | |
1604 | * @return data type structure initialized with the id from specified data type | |
1605 | * and origin | |
1606 | * @ingroup alihlt_component_datatypes | |
1607 | */ | |
1608 | inline AliHLTComponentDataType AliHLTComponentDataTypeInitializer(const AliHLTComponentDataType src, const char* origin) | |
1609 | { | |
1610 | return AliHLTComponentDataTypeInitializer(src.fID, origin); | |
1611 | } | |
1612 | ||
f23a6e1a | 1613 | #endif |