1 #ifndef ALIHLTMUONCONSTANTS_H
2 #define ALIHLTMUONCONSTANTS_H
3 /**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * All rights reserved. *
8 * Indranil Das <indra.das@saha.ac.in> *
9 * Artur Szostak <artursz@iafrica.com> *
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 **************************************************************************/
23 * @file AliHLTMUONConstants.h
24 * @author Indranil Das <indra.das@saha.ac.in>,
25 * Artur Szostak <artursz@iafrica.com>
27 * @brief Class containing various dimuon HLT constants used in the system.
32 // Forward declare structures.
34 struct AliHLTComponentDataType;
35 struct AliHLTMUONTriggerRecordStruct;
36 struct AliHLTMUONTrigRecInfoStruct;
37 struct AliHLTMUONRecHitStruct;
38 struct AliHLTMUONChannelStruct;
39 struct AliHLTMUONClusterStruct;
40 struct AliHLTMUONMansoTrackStruct;
41 struct AliHLTMUONMansoRoIStruct;
42 struct AliHLTMUONMansoCandidateStruct;
43 struct AliHLTMUONTrackStruct;
44 struct AliHLTMUONTrackDecisionStruct;
45 struct AliHLTMUONPairDecisionStruct;
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.
53 class AliHLTMUONConstants
57 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
59 return fgkNilTriggerRecordStruct;
62 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
64 return fgkNilTrigRecInfoStruct;
67 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
69 return fgkNilRecHitStruct;
72 static const AliHLTMUONChannelStruct& NilChannelStruct()
74 return fgkNilChannelStruct;
77 static const AliHLTMUONClusterStruct& NilClusterStruct()
79 return fgkNilClusterStruct;
82 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
84 return fgkNilMansoTrackStruct;
87 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
89 return fgkNilMansoRoIStruct;
92 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
94 return fgkNilMansoCandidateStruct;
97 static const AliHLTMUONTrackStruct& NilTrackStruct()
99 return fgkNilTrackStruct;
102 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
104 return fgkNilTrackDecisionStruct;
107 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
109 return fgkNilPairDecisionStruct;
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()
119 return fgkDDLRawDataType;
122 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
124 return fgkTriggerRecordsBlockDataType;
127 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
129 return fgkTrigRecsDebugBlockDataType;
132 static const AliHLTComponentDataType& RecHitsBlockDataType()
134 return fgkRecHitsBlockDataType;
137 static const AliHLTComponentDataType& ClusterBlockDataType()
139 return fgkClusterBlockDataType;
142 static const AliHLTComponentDataType& ChannelBlockDataType()
144 return fgkChannelBlockDataType;
147 static const AliHLTComponentDataType& MansoTracksBlockDataType()
149 return fgkMansoTracksBlockDataType;
152 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
154 return fgkMansoCandidatesBlockDataType;
157 static const AliHLTComponentDataType& TracksBlockDataType()
159 return fgkTracksBlockDataType;
162 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
164 return fgkSinglesDecisionBlockDataType;
167 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
169 return fgkPairsDecisionBlockDataType;
172 static const AliHLTComponentDataType& RootifiedEventDataType()
174 return fgkRootifiedEventDataType;
177 static const AliHLTComponentDataType& ESDDataType()
179 return fgkESDDataType;
182 static const AliHLTComponentDataType& ClusterStoreDataType()
184 return fgkClusterStoreDataType;
187 static const AliHLTComponentDataType& HistogramDataType()
189 return fgkHistogramDataType;
192 static const char* RecHitsSourceId()
194 return fgkRecHitsSourceId;
197 static const char* TriggerRecordsSourceId()
199 return fgkTriggerRecordsSourceId;
202 static const char* TracksSourceId()
204 return fgkTracksSourceId;
207 static const char* DigitPublisherId()
209 return fgkDigitPublisherId;
212 static const char* TriggerReconstructorId()
214 return fgkTriggerReconstructorId;
217 static const char* HitReconstructorId()
219 return fgkHitReconstructorId;
222 static const char* MansoTrackerFSMId()
224 return fgkMansoTrackerFSMId;
227 static const char* FullTrackerId()
229 return fgkFullTrackerId;
232 static const char* DecisionComponentId()
234 return fgkDecisionComponentId;
237 static const char* ESDMakerId()
239 return fgkESDMakerId;
242 static const char* RootifierComponentId()
244 return fgkRootifierComponentId;
247 static const char* EmptyEventFilterComponentId()
249 return fgkEmptyEventFilterComponentId;
252 static const char* DataCheckerComponentId()
254 return fgkDataCheckerComponentId;
257 static const char* ClusterFinderId()
259 return fgkClusterFinderId;
262 static const char* RawDataHistogrammerId()
264 return fgkRawDataHistogrammerId;
267 static const char* ClusterHistogrammerId()
269 return fgkClusterHistogrammerId;
272 static const char* TriggerReconstructorCDBPath()
274 return fgkTriggerReconstructorCDBPath;
277 static const char* HitReconstructorCDBPath()
279 return fgkHitReconstructorCDBPath;
282 static const char* MansoTrackerFSMCDBPath()
284 return fgkMansoTrackerFSMCDBPath;
287 static const char* DecisionComponentCDBPath()
289 return fgkDecisionComponentCDBPath;
292 static const char* FieldIntegralsCDBPath()
294 return fgkFieldIntegralsCDBPath;
297 /// Returns the typical X (non-bending plane) resolution of the hit reconstruction (units = cm).
298 static double DefaultNonBendingReso() { return 0.144; }
300 /// Returns the typical Y (bending plane) resolution of the hit reconstruction (units = cm).
301 static double DefaultBendingReso() { return 0.01; }
305 // Should never have to create, destroy or copy this object.
306 AliHLTMUONConstants() {}
307 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
308 virtual ~AliHLTMUONConstants() {}
309 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
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.
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.
321 static const AliHLTMUONTrackStruct fgkNilTrackStruct; // Nil track structure.
322 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
323 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
325 // HLT component input and output data block types:
326 static const AliHLTComponentDataType fgkDDLRawDataType; // DDL packed data block type from dimuon spectrometer.
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.
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.
334 static const AliHLTComponentDataType fgkTracksBlockDataType; // Full tracks block type generated by the tracker components.
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.
337 static const AliHLTComponentDataType fgkRootifiedEventDataType; // An AliHLTMUONEvent ROOT object.
338 static const AliHLTComponentDataType fgkESDDataType; // The ESD data type with origin equal to MUON.
339 static const AliHLTComponentDataType fgkClusterStoreDataType; // Offline algorithm cluster store object.
340 static const AliHLTComponentDataType fgkHistogramDataType; // TH1/2/3 histogram type.
342 // Component ID names:
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.
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.
347 static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name.
348 static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name.
349 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
350 static const char* fgkFullTrackerId; // Full tracker implementation component name.
351 static const char* fgkDecisionComponentId; // dHLT decision component name.
352 static const char* fgkESDMakerId; // Name of ESD maker component which converts dHLT data to AliESDEvent classes.
353 static const char* fgkRootifierComponentId; // The name of the event filter debugging component.
354 static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component.
355 static const char* fgkDataCheckerComponentId; // Name of data checking component for debugging.
356 static const char* fgkClusterFinderId; // Name of cluster finder implementing offline algorithms.
357 static const char* fgkRawDataHistogrammerId; // Raw data histogrammer component name.
358 static const char* fgkClusterHistogrammerId; // Cluster data histogrammer component name.
360 // CDB path entries to configuration information.
361 static const char* fgkTriggerReconstructorCDBPath; // Path to CDB entry for the trigger reconstruction component.
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.
364 static const char* fgkDecisionComponentCDBPath; // Path to CDB entry for trigger decision component.
365 static const char* fgkFieldIntegralsCDBPath; // Path to CDB entry for magnetic field integrals.
367 ClassDef(AliHLTMUONConstants, 0); // Interface class to dHLT constants.
370 #endif // ALIHLTMUONCONSTANTS_H