]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONConstants.h
Fixes for coverity
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONConstants.h
CommitLineData
26a4668d 1#ifndef ALIHLTMUONCONSTANTS_H
2#define ALIHLTMUONCONSTANTS_H
e6357f88 3/**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * All rights reserved. *
6 * *
7 * Primary Authors: *
8 * Indranil Das <indra.das@saha.ac.in> *
9 * Artur Szostak <artursz@iafrica.com> *
10 * *
11 * Permission to use, copy, modify and distribute this software and its *
12 * documentation strictly for non-commercial purposes is hereby granted *
13 * without fee, provided that the above copyright notice appears in all *
14 * copies and that both the copyright notice and this permission notice *
15 * appear in the supporting documentation. The authors make no claims *
16 * about the suitability of this software for any purpose. It is *
17 * provided "as is" without express or implied warranty. *
18 **************************************************************************/
26a4668d 19
1d8ae082 20// $Id$
26a4668d 21
22/**
23 * @file AliHLTMUONConstants.h
24 * @author Indranil Das <indra.das@saha.ac.in>,
25 * Artur Szostak <artursz@iafrica.com>
4d76a068 26 * @date 17 May 2007
26a4668d 27 * @brief Class containing various dimuon HLT constants used in the system.
28 */
29
33b1e2f2 30#include "TObject.h"
31
b12fe461 32// Forward declare structures.
33extern "C" {
34struct AliHLTComponentDataType;
35struct AliHLTMUONTriggerRecordStruct;
36struct AliHLTMUONTrigRecInfoStruct;
b12fe461 37struct AliHLTMUONRecHitStruct;
38struct AliHLTMUONChannelStruct;
39struct AliHLTMUONClusterStruct;
40struct AliHLTMUONMansoTrackStruct;
41struct AliHLTMUONMansoRoIStruct;
42struct AliHLTMUONMansoCandidateStruct;
a8982f78 43struct AliHLTMUONTrackStruct;
b12fe461 44struct AliHLTMUONTrackDecisionStruct;
45struct AliHLTMUONPairDecisionStruct;
46} // extern "C"
26a4668d 47
48/**
49 * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
50 * and constant structures used in the system.
51 * Static methods are provided to access these values.
52 */
53class AliHLTMUONConstants
54{
55public:
56
c8ec7c7e 57 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
58 {
59 return fgkNilTriggerRecordStruct;
60 }
61
62 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
63 {
64 return fgkNilTrigRecInfoStruct;
65 }
66
26a4668d 67 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
68 {
69 return fgkNilRecHitStruct;
70 }
71
910807dd 72 static const AliHLTMUONChannelStruct& NilChannelStruct()
26a4668d 73 {
910807dd 74 return fgkNilChannelStruct;
26a4668d 75 }
76
910807dd 77 static const AliHLTMUONClusterStruct& NilClusterStruct()
26a4668d 78 {
910807dd 79 return fgkNilClusterStruct;
26a4668d 80 }
81
90a74d7a 82 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
83 {
84 return fgkNilMansoTrackStruct;
85 }
86
87 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
88 {
89 return fgkNilMansoRoIStruct;
90 }
91
92 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
93 {
94 return fgkNilMansoCandidateStruct;
95 }
96
a8982f78 97 static const AliHLTMUONTrackStruct& NilTrackStruct()
98 {
99 return fgkNilTrackStruct;
100 }
101
90a74d7a 102 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
103 {
104 return fgkNilTrackDecisionStruct;
105 }
106
107 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
108 {
109 return fgkNilPairDecisionStruct;
110 }
111
668eee9f 112 // Returns the raw data type for MUON DDLs. To figure out if the DDL format
113 // will be for a tracking DDL or trigger DDL one needs to also check the
114 // sepcification word of the input data block. If one of the first 20 least
115 // significant bits are set then it is a tracker DDL otherwise if it is
116 // the 21st or 22nd bit then it is from the muon trigger.
117 static const AliHLTComponentDataType& DDLRawDataType()
26a4668d 118 {
668eee9f 119 return fgkDDLRawDataType;
26a4668d 120 }
121
910807dd 122 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
26a4668d 123 {
910807dd 124 return fgkTriggerRecordsBlockDataType;
26a4668d 125 }
126
910807dd 127 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
26a4668d 128 {
910807dd 129 return fgkTrigRecsDebugBlockDataType;
26a4668d 130 }
131
910807dd 132 static const AliHLTComponentDataType& RecHitsBlockDataType()
133 {
134 return fgkRecHitsBlockDataType;
135 }
136
137 static const AliHLTComponentDataType& ClusterBlockDataType()
138 {
139 return fgkClusterBlockDataType;
26a4668d 140 }
141
910807dd 142 static const AliHLTComponentDataType& ChannelBlockDataType()
26a4668d 143 {
910807dd 144 return fgkChannelBlockDataType;
26a4668d 145 }
146
147 static const AliHLTComponentDataType& MansoTracksBlockDataType()
148 {
149 return fgkMansoTracksBlockDataType;
150 }
151
90a74d7a 152 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
26a4668d 153 {
90a74d7a 154 return fgkMansoCandidatesBlockDataType;
910807dd 155 }
156
a8982f78 157 static const AliHLTComponentDataType& TracksBlockDataType()
158 {
159 return fgkTracksBlockDataType;
160 }
161
90a74d7a 162 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
910807dd 163 {
90a74d7a 164 return fgkSinglesDecisionBlockDataType;
26a4668d 165 }
166
90a74d7a 167 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
26a4668d 168 {
90a74d7a 169 return fgkPairsDecisionBlockDataType;
26a4668d 170 }
649ab027 171
73ed798e 172 static const AliHLTComponentDataType& RootifiedEventDataType()
173 {
174 return fgkRootifiedEventDataType;
175 }
176
649ab027 177 static const AliHLTComponentDataType& ESDDataType()
178 {
179 return fgkESDDataType;
180 }
17d68f2a 181
182 static const AliHLTComponentDataType& ClusterStoreDataType()
183 {
184 return fgkClusterStoreDataType;
185 }
a63da6d6 186
187 static const AliHLTComponentDataType& HistogramDataType()
188 {
189 return fgkHistogramDataType;
190 }
b12fe461 191
192 static const char* RecHitsSourceId()
193 {
194 return fgkRecHitsSourceId;
195 }
6cde4e61 196
e6357f88 197 static const char* TriggerRecordsSourceId()
198 {
199 return fgkTriggerRecordsSourceId;
200 }
201
887a669c 202 static const char* TracksSourceId()
e6357f88 203 {
887a669c 204 return fgkTracksSourceId;
205 }
206
207 static const char* DigitPublisherId()
208 {
209 return fgkDigitPublisherId;
e6357f88 210 }
211
212 static const char* TriggerReconstructorId()
213 {
214 return fgkTriggerReconstructorId;
215 }
216
217 static const char* HitReconstructorId()
218 {
219 return fgkHitReconstructorId;
220 }
221
6cde4e61 222 static const char* MansoTrackerFSMId()
223 {
224 return fgkMansoTrackerFSMId;
225 }
e6357f88 226
52c6d8aa 227 static const char* FullTrackerId()
228 {
229 return fgkFullTrackerId;
230 }
231
e6357f88 232 static const char* DecisionComponentId()
233 {
234 return fgkDecisionComponentId;
235 }
8134dd2e 236
649ab027 237 static const char* ESDMakerId()
238 {
239 return fgkESDMakerId;
240 }
241
450e0b36 242 static const char* RootifierComponentId()
8134dd2e 243 {
450e0b36 244 return fgkRootifierComponentId;
8134dd2e 245 }
0528e93a 246
247 static const char* EmptyEventFilterComponentId()
248 {
249 return fgkEmptyEventFilterComponentId;
250 }
c9537879 251
dba14d7d 252 static const char* DataCheckerComponentId()
253 {
254 return fgkDataCheckerComponentId;
255 }
256
17d68f2a 257 static const char* ClusterFinderId()
258 {
259 return fgkClusterFinderId;
260 }
261
a63da6d6 262 static const char* RawDataHistogrammerId()
263 {
264 return fgkRawDataHistogrammerId;
265 }
f064ef44 266
267 static const char* ClusterHistogrammerId()
268 {
269 return fgkClusterHistogrammerId;
270 }
a63da6d6 271
2b7af22a 272 static const char* TriggerReconstructorCDBPath()
273 {
274 return fgkTriggerReconstructorCDBPath;
275 }
276
887a669c 277 static const char* HitReconstructorCDBPath()
278 {
279 return fgkHitReconstructorCDBPath;
280 }
281
282 static const char* MansoTrackerFSMCDBPath()
283 {
284 return fgkMansoTrackerFSMCDBPath;
285 }
286
c9537879 287 static const char* DecisionComponentCDBPath()
288 {
289 return fgkDecisionComponentCDBPath;
290 }
0999b15c 291
bc5cb6d6 292 static const char* FieldIntegralsCDBPath()
293 {
294 return fgkFieldIntegralsCDBPath;
295 }
296
c6bc1026 297 /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
298 static double DefaultNonBendingReso() { return 0.144; }
0999b15c 299
c6bc1026 300 /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
301 static double DefaultBendingReso() { return 0.01; }
26a4668d 302
303private:
90a74d7a 304
b12fe461 305 // Should never have to create, destroy or copy this object.
213499f0 306 AliHLTMUONConstants() {}
b12fe461 307 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
213499f0 308 virtual ~AliHLTMUONConstants() {}
b12fe461 309 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
c8ec7c7e 310
213499f0 311
b12fe461 312 // The following are null/nil structures that can also be used as sentinels:
313 static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record.
314 static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information.
b12fe461 315 static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit.
316 static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel.
317 static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster.
318 static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track.
319 static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest.
320 static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track.
a8982f78 321 static const AliHLTMUONTrackStruct fgkNilTrackStruct; // Nil track structure.
b12fe461 322 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
323 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
324
325 // HLT component input and output data block types:
668eee9f 326 static const AliHLTComponentDataType fgkDDLRawDataType; // DDL packed data block type from dimuon spectrometer.
b12fe461 327 static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components.
328 static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components.
b12fe461 329 static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components.
330 static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters.
331 static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters.
332 static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components.
333 static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm.
a8982f78 334 static const AliHLTComponentDataType fgkTracksBlockDataType; // Full tracks block type generated by the tracker components.
b12fe461 335 static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
336 static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
73ed798e 337 static const AliHLTComponentDataType fgkRootifiedEventDataType; // An AliHLTMUONEvent ROOT object.
649ab027 338 static const AliHLTComponentDataType fgkESDDataType; // The ESD data type with origin equal to MUON.
17d68f2a 339 static const AliHLTComponentDataType fgkClusterStoreDataType; // Offline algorithm cluster store object.
a63da6d6 340 static const AliHLTComponentDataType fgkHistogramDataType; // TH1/2/3 histogram type.
b12fe461 341
342 // Component ID names:
e6357f88 343 static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging.
344 static const char* fgkTriggerRecordsSourceId; // Name of source component for trigger records for debugging.
887a669c 345 static const char* fgkTracksSourceId; // Name of source component for tracks for debugging.
346 static const char* fgkDigitPublisherId; // Component name for publishing DDL streams from digits.
e6357f88 347 static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name.
348 static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name.
6cde4e61 349 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
52c6d8aa 350 static const char* fgkFullTrackerId; // Full tracker implementation component name.
e6357f88 351 static const char* fgkDecisionComponentId; // dHLT decision component name.
649ab027 352 static const char* fgkESDMakerId; // Name of ESD maker component which converts dHLT data to AliESDEvent classes.
450e0b36 353 static const char* fgkRootifierComponentId; // The name of the event filter debugging component.
0528e93a 354 static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component.
dba14d7d 355 static const char* fgkDataCheckerComponentId; // Name of data checking component for debugging.
17d68f2a 356 static const char* fgkClusterFinderId; // Name of cluster finder implementing offline algorithms.
a63da6d6 357 static const char* fgkRawDataHistogrammerId; // Raw data histogrammer component name.
f064ef44 358 static const char* fgkClusterHistogrammerId; // Cluster data histogrammer component name.
c9537879 359
360 // CDB path entries to configuration information.
2b7af22a 361 static const char* fgkTriggerReconstructorCDBPath; // Path to CDB entry for the trigger reconstruction component.
887a669c 362 static const char* fgkHitReconstructorCDBPath; // Path to CDB entry for the hit reconstruction component.
363 static const char* fgkMansoTrackerFSMCDBPath; // Path to CDB entry for the Manso FSM tracker component.
c9537879 364 static const char* fgkDecisionComponentCDBPath; // Path to CDB entry for trigger decision component.
bc5cb6d6 365 static const char* fgkFieldIntegralsCDBPath; // Path to CDB entry for magnetic field integrals.
33b1e2f2 366
367 ClassDef(AliHLTMUONConstants, 0); // Interface class to dHLT constants.
26a4668d 368};
369
370#endif // ALIHLTMUONCONSTANTS_H