Adding first version of FMD HLT code. (From Hans Hjersing Dalsgaard)
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataTypes.cxx
1 // $Id$
2
3 /**************************************************************************
4  * This file is property of and copyright by the ALICE HLT Project        * 
5  * ALICE Experiment at CERN, All rights reserved.                         *
6  *                                                                        *
7  * Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no>        *
8  *                  Timm Steinbeck <timm@kip.uni-heidelberg.de>           *
9  *                  Jochen Thaeder <thaeder@kip.uni-heidelberg.de>        *
10  *                  for The ALICE HLT Project.                            *
11  *                                                                        *
12  * Permission to use, copy, modify and distribute this software and its   *
13  * documentation strictly for non-commercial purposes is hereby granted   *
14  * without fee, provided that the above copyright notice appears in all   *
15  * copies and that both the copyright notice and this permission notice   *
16  * appear in the supporting documentation. The authors make no claims     *
17  * about the suitability of this software for any purpose. It is          *
18  * provided "as is" without express or implied warranty.                  *
19  **************************************************************************/
20
21 /** @file   AliHLTDataTypes.cxx
22     @author Matthias Richter, Timm Steinbeck, Jochen Thaeder
23     @date   
24     @brief  Implementation of data types. */
25
26 #include "AliHLTDataTypes.h"
27
28 // those types can not be implemented in the header files as rootcint
29 // can not cope with the type id and origin defines.
30 //
31 // change Aug 01 2008
32 // some compilers can not cope with the fomerly used initialization of the
33 // default data type variable by using the operator | like e.g
34 //   const AliHLTComponentDataType kAliHLTDataTypeComponentTable = (AliHLTComponentDataType) {
35 //     sizeof(AliHLTComponentDataType),
36 //     kAliHLTComponentTableDataTypeID,
37 //     kAliHLTDataOriginAny
38 //   }|kAliHLTDataOriginPrivate;
39 // Mainly the compined type cast and utilization of the operator| is the problem.
40 // An initializer function has been defined in order to work around this issue.
41
42 /** multiple output data types */
43 const char kAliHLTMultipleDataTypeIDstring[8] = {'M','U','L','T','I','P','L','E'};
44 const AliHLTComponentDataType kAliHLTMultipleDataType =  AliHLTComponentDataTypeInitializer(kAliHLTMultipleDataTypeIDstring, kAliHLTDataOriginPrivate);
45
46 /** data to file exchange subscriber */
47 const char kAliHLTFXSCalibDataTypeIDstring[8] = kAliHLTFXSCalibDataTypeID;
48 const AliHLTComponentDataType kAliHLTDataTypeFXSCalib = AliHLTComponentDataTypeInitializer(kAliHLTFXSCalibDataTypeIDstring, kAliHLTDataOriginOut);
49
50 /** DDL list data type */
51 const char kAliHLTDDLDataTypeIDstring[8] = kAliHLTDDLDataTypeID;
52 const AliHLTComponentDataType kAliHLTDataTypeDDL = AliHLTComponentDataTypeInitializer(kAliHLTDDLDataTypeIDstring, kAliHLTDataOriginOut);
53
54 /** SOR data type */
55 const char kAliHLTSORDataTypeIDstring[8] = kAliHLTSORDataTypeID;
56 const AliHLTComponentDataType kAliHLTDataTypeSOR = AliHLTComponentDataTypeInitializer(kAliHLTSORDataTypeIDstring, kAliHLTDataOriginPrivate);
57
58 /** EOR data type */
59 const char kAliHLTEORDataTypeIDstring[8] = kAliHLTEORDataTypeID;
60 const AliHLTComponentDataType kAliHLTDataTypeEOR = AliHLTComponentDataTypeInitializer(kAliHLTEORDataTypeIDstring, kAliHLTDataOriginPrivate);
61
62 /** run type data block */
63 const char kAliHLTRunTypeDataTypeIDstring[8] = kAliHLTRunTypeDataTypeID;
64 const AliHLTComponentDataType kAliHLTDataTypeRunType = AliHLTComponentDataTypeInitializer(kAliHLTRunTypeDataTypeIDstring, kAliHLTDataOriginPrivate);
65
66 /** Event type specification */
67 const char kAliHLTEventDataTypeIDstring[8] = kAliHLTEventDataTypeID;
68 const AliHLTComponentDataType kAliHLTDataTypeEvent = AliHLTComponentDataTypeInitializer(kAliHLTEventDataTypeIDstring, kAliHLTDataOriginPrivate);
69
70 /** Configuration event data type */
71 const char kAliHLTComConfDataTypeIDstring[8] = kAliHLTComConfDataTypeID;
72 const AliHLTComponentDataType kAliHLTDataTypeComConf = AliHLTComponentDataTypeInitializer(kAliHLTComConfDataTypeIDstring, kAliHLTDataOriginPrivate);
73
74 /** DCS value update event */
75 const char kAliHLTUpdtDCSDataTypeIDstring[8] = kAliHLTUpdtDCSDataTypeID;
76 const AliHLTComponentDataType kAliHLTDataTypeUpdtDCS = AliHLTComponentDataTypeInitializer(kAliHLTUpdtDCSDataTypeIDstring, kAliHLTDataOriginPrivate);
77
78 /** RAW DDL data specification, data publisher will set type id and origin correctly */
79 const char kAliHLTDDLRawDataTypeIDstring[8] = kAliHLTDDLRawDataTypeID;
80 const AliHLTComponentDataType kAliHLTDataTypeDDLRaw = AliHLTComponentDataTypeInitializer(kAliHLTDDLRawDataTypeIDstring, kAliHLTDataOriginAny);
81
82 /** ESD data specification */
83 const char kAliHLTESDObjectDataTypeIDstring[8] = kAliHLTESDObjectDataTypeID;
84 const AliHLTComponentDataType kAliHLTDataTypeESDObject = AliHLTComponentDataTypeInitializer(kAliHLTESDObjectDataTypeIDstring, kAliHLTDataOriginAny);
85
86 /** ESD tree data specification */
87 const char kAliHLTESDTreeDataTypeIDstring[8] = kAliHLTESDTreeDataTypeID;
88 const AliHLTComponentDataType kAliHLTDataTypeESDTree = AliHLTComponentDataTypeInitializer(kAliHLTESDTreeDataTypeIDstring, kAliHLTDataOriginAny);
89
90 /** AliRoot TreeD data specification */
91 const char kAliHLTTreeDDataTypeIDstring[8] = kAliHLTTreeDDataTypeID;
92 const AliHLTComponentDataType kAliHLTDataTypeAliTreeD = AliHLTComponentDataTypeInitializer(kAliHLTTreeDDataTypeIDstring, kAliHLTDataOriginAny);
93
94 /** AliRoot TreeR data specification */
95 const char kAliHLTTreeRDataTypeIDstring[8] = kAliHLTTreeRDataTypeID;
96 const AliHLTComponentDataType kAliHLTDataTypeAliTreeR = AliHLTComponentDataTypeInitializer(kAliHLTTreeRDataTypeIDstring, kAliHLTDataOriginAny);
97
98 /** 16 bit Hardware address selection data specification, origin is 'any' */
99 const char kAliHLTHwAddr16DataTypeIDstring[8] = kAliHLTHwAddr16DataTypeID;
100 const AliHLTComponentDataType kAliHLTDataTypeHwAddr16 = AliHLTComponentDataTypeInitializer(kAliHLTHwAddr16DataTypeIDstring, kAliHLTDataOriginAny);
101
102 /** Event statistics */
103 const char kAliHLTEventStatisticsDataTypeIDstring[8] = kAliHLTEventStatisticsDataTypeID;
104 const AliHLTComponentDataType kAliHLTDataTypeEventStatistics = AliHLTComponentDataTypeInitializer(kAliHLTEventStatisticsDataTypeIDstring, kAliHLTDataOriginAny);
105
106 /** Event summary */
107 const char kAliHLTEventSummaryDataTypeIDstring[8] = kAliHLTEventSummaryDataTypeID;
108 const AliHLTComponentDataType kAliHLTDataTypeEventSummary = AliHLTComponentDataTypeInitializer(kAliHLTEventSummaryDataTypeIDstring, kAliHLTDataOriginOut);
109
110 /** Run statistics */
111 const char kAliHLTRunStatisticsDataTypeIDstring[8] = kAliHLTRunStatisticsDataTypeID;
112 const AliHLTComponentDataType kAliHLTDataTypeRunStatistics = AliHLTComponentDataTypeInitializer(kAliHLTRunStatisticsDataTypeIDstring, kAliHLTDataOriginAny);
113
114 /** Run summary */
115 const char kAliHLTRunSummaryDataTypeIDstring[8] = kAliHLTRunSummaryDataTypeID;
116 const AliHLTComponentDataType kAliHLTDataTypeRunSummary = AliHLTComponentDataTypeInitializer(kAliHLTRunSummaryDataTypeIDstring, kAliHLTDataOriginOut);
117
118 /** Component statistics */
119 const char  kAliHLTComponentStatisticsDataTypeIDstring[8] = kAliHLTComponentStatisticsDataTypeID;
120 const AliHLTComponentDataType kAliHLTDataTypeComponentStatistics = AliHLTComponentDataTypeInitializer(kAliHLTComponentStatisticsDataTypeIDstring, kAliHLTDataOriginPrivate);
121
122 /** Component table */
123 const char kAliHLTComponentTableDataTypeIDstring[8] = kAliHLTComponentTableDataTypeID;
124 const AliHLTComponentDataType kAliHLTDataTypeComponentTable = AliHLTComponentDataTypeInitializer(kAliHLTComponentTableDataTypeIDstring, kAliHLTDataOriginPrivate);
125
126 /** general ROOT TObject */
127 const char kAliHLTTObjectDataTypeIDstring[8] = kAliHLTTObjectDataTypeID;
128 const AliHLTComponentDataType kAliHLTDataTypeTObject = AliHLTComponentDataTypeInitializer(kAliHLTTObjectDataTypeIDstring, kAliHLTDataOriginAny);
129
130 /** ROOT TObjArray */
131 const char kAliHLTTObjArrayDataTypeIDstring[8] = kAliHLTTObjArrayDataTypeID;
132 const AliHLTComponentDataType kAliHLTDataTypeTObjArray = AliHLTComponentDataTypeInitializer(kAliHLTTObjArrayDataTypeIDstring, kAliHLTDataOriginAny);
133
134 /** ROOT TTree */
135 const char kAliHLTTTreeDataTypeIDstring[8] = kAliHLTTTreeDataTypeID;
136 const AliHLTComponentDataType kAliHLTDataTypeTTree = AliHLTComponentDataTypeInitializer(kAliHLTTTreeDataTypeIDstring, kAliHLTDataOriginAny);
137
138 /** ROOT TH1 (can be used for all histograms, they derive from TH1) */
139 const char kAliHLTHistogramDataTypeIDstring[8] = kAliHLTHistogramDataTypeID;
140 const AliHLTComponentDataType kAliHLTDataTypeHistogram = AliHLTComponentDataTypeInitializer(kAliHLTHistogramDataTypeIDstring, kAliHLTDataOriginAny);
141
142 /** ROOT TNtuple */
143 const char kAliHLTTNtupleDataTypeIDstring[8] = kAliHLTTNtupleDataTypeID;
144 const AliHLTComponentDataType kAliHLTDataTypeTNtuple = AliHLTComponentDataTypeInitializer(kAliHLTTNtupleDataTypeIDstring, kAliHLTDataOriginAny);
145
146 /** Array of HLT Tracks (AliHLTTracksData) */
147 const char kAliHLTTrackDataTypeIDstring[8] = kAliHLTTrackDataTypeID;
148 const AliHLTComponentDataType kAliHLTTrack = AliHLTComponentDataTypeInitializer(kAliHLTTrackDataTypeIDstring, kAliHLTDataOriginAny);
149
150 /** TClonesArray of AliExternalTrackParam */
151 const char kAliHLTExternalTrackParamDataTypeIDstring[8] = kAliHLTExternalTrackParamDataTypeID;
152 const AliHLTComponentDataType kAliHLTDataTypeExternalTrackParam = AliHLTComponentDataTypeInitializer(kAliHLTExternalTrackParamDataTypeIDstring, kAliHLTDataOriginAny);
153
154 //////////////////////////////////////////////////////////////////////////
155 //
156 // Data origin variables, to be used with the operator|
157 //
158 // AliHLTComponentDataType dt;
159 // dt = kAliHLTDataTypeDDLRaw | gkAliHLTDataOriginTPC;
160 //
161 //////////////////////////////////////////////////////////////////////////
162
163 /** HLT out */
164 const char kAliHLTDataOriginOut[kAliHLTComponentDataTypefOriginSize]     = {'H','L','T',' '};
165
166 /** HLT/PubSub private internal */
167 const char kAliHLTDataOriginPrivate[kAliHLTComponentDataTypefOriginSize] = {'P','R','I','V'};
168
169 /** TPC */
170 const char kAliHLTDataOriginTPC[kAliHLTComponentDataTypefOriginSize]     = {'T','P','C',' '};
171
172 /** PHOS */
173 const char kAliHLTDataOriginPHOS[kAliHLTComponentDataTypefOriginSize]    = {'P','H','O','S'};
174
175 /** FMD */
176 const char kAliHLTDataOriginFMD[kAliHLTComponentDataTypefOriginSize]     = {'F','M','D',' '};
177
178 /** MUON */
179 const char kAliHLTDataOriginMUON[kAliHLTComponentDataTypefOriginSize]    = {'M','U','O','N'};
180
181 /** TRD */
182 const char kAliHLTDataOriginTRD[kAliHLTComponentDataTypefOriginSize]     = {'T','R','D',' '};
183
184 /** ITS */
185 const char kAliHLTDataOriginITS[kAliHLTComponentDataTypefOriginSize]     = {'I','T','S',' '};
186
187 /** ITS-SPD */
188 const char kAliHLTDataOriginITSSPD[kAliHLTComponentDataTypefOriginSize]  = {'I','S','P','D'};
189
190 /** ITS-SDD */
191 const char kAliHLTDataOriginITSSDD[kAliHLTComponentDataTypefOriginSize]  = {'I','S','D','D'};
192
193 /** ITS-SSD */
194 const char kAliHLTDataOriginITSSSD[kAliHLTComponentDataTypefOriginSize]  = {'I','S','S','D'};
195
196 /** Sample */
197 const char kAliHLTDataOriginSample[kAliHLTComponentDataTypefOriginSize]  = {'S','M','P','L'};
198
199 /** EMCAL */
200 const char kAliHLTDataOriginEMCAL[kAliHLTComponentDataTypefOriginSize]   = {'E','M','C','L'};