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.
30 // Forward declare structures.
32 struct AliHLTComponentDataType;
33 struct AliHLTMUONTriggerRecordStruct;
34 struct AliHLTMUONTrigRecInfoStruct;
35 struct AliHLTMUONRecHitStruct;
36 struct AliHLTMUONChannelStruct;
37 struct AliHLTMUONClusterStruct;
38 struct AliHLTMUONMansoTrackStruct;
39 struct AliHLTMUONMansoRoIStruct;
40 struct AliHLTMUONMansoCandidateStruct;
41 struct AliHLTMUONTrackDecisionStruct;
42 struct AliHLTMUONPairDecisionStruct;
46 * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
47 * and constant structures used in the system.
48 * Static methods are provided to access these values.
50 class AliHLTMUONConstants
54 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
56 return fgkNilTriggerRecordStruct;
59 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
61 return fgkNilTrigRecInfoStruct;
64 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
66 return fgkNilRecHitStruct;
69 static const AliHLTMUONChannelStruct& NilChannelStruct()
71 return fgkNilChannelStruct;
74 static const AliHLTMUONClusterStruct& NilClusterStruct()
76 return fgkNilClusterStruct;
79 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
81 return fgkNilMansoTrackStruct;
84 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
86 return fgkNilMansoRoIStruct;
89 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
91 return fgkNilMansoCandidateStruct;
94 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
96 return fgkNilTrackDecisionStruct;
99 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
101 return fgkNilPairDecisionStruct;
104 // Returns the raw data type for MUON DDLs. To figure out if the DDL format
105 // will be for a tracking DDL or trigger DDL one needs to also check the
106 // sepcification word of the input data block. If one of the first 20 least
107 // significant bits are set then it is a tracker DDL otherwise if it is
108 // the 21st or 22nd bit then it is from the muon trigger.
109 static const AliHLTComponentDataType& DDLRawDataType()
111 return fgkDDLRawDataType;
114 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
116 return fgkTriggerRecordsBlockDataType;
119 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
121 return fgkTrigRecsDebugBlockDataType;
124 static const AliHLTComponentDataType& RecHitsBlockDataType()
126 return fgkRecHitsBlockDataType;
129 static const AliHLTComponentDataType& ClusterBlockDataType()
131 return fgkClusterBlockDataType;
134 static const AliHLTComponentDataType& ChannelBlockDataType()
136 return fgkChannelBlockDataType;
139 static const AliHLTComponentDataType& MansoTracksBlockDataType()
141 return fgkMansoTracksBlockDataType;
144 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
146 return fgkMansoCandidatesBlockDataType;
149 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
151 return fgkSinglesDecisionBlockDataType;
154 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
156 return fgkPairsDecisionBlockDataType;
159 static const AliHLTComponentDataType& ESDDataType()
161 return fgkESDDataType;
164 static const char* RecHitsSourceId()
166 return fgkRecHitsSourceId;
169 static const char* TriggerRecordsSourceId()
171 return fgkTriggerRecordsSourceId;
174 static const char* TracksSourceId()
176 return fgkTracksSourceId;
179 static const char* DigitPublisherId()
181 return fgkDigitPublisherId;
184 static const char* TriggerReconstructorId()
186 return fgkTriggerReconstructorId;
189 static const char* HitReconstructorId()
191 return fgkHitReconstructorId;
194 static const char* MansoTrackerFSMId()
196 return fgkMansoTrackerFSMId;
199 static const char* DecisionComponentId()
201 return fgkDecisionComponentId;
204 static const char* ESDMakerId()
206 return fgkESDMakerId;
209 static const char* RootifierComponentId()
211 return fgkRootifierComponentId;
214 static const char* EmptyEventFilterComponentId()
216 return fgkEmptyEventFilterComponentId;
219 static const char* DataCheckerComponentId()
221 return fgkDataCheckerComponentId;
224 static const char* TriggerReconstructorCDBPath()
226 return fgkTriggerReconstructorCDBPath;
229 static const char* HitReconstructorCDBPath()
231 return fgkHitReconstructorCDBPath;
234 static const char* MansoTrackerFSMCDBPath()
236 return fgkMansoTrackerFSMCDBPath;
239 static const char* DecisionComponentCDBPath()
241 return fgkDecisionComponentCDBPath;
246 // Should never have to create, destroy or copy this object.
247 AliHLTMUONConstants();
248 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
249 ~AliHLTMUONConstants();
250 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
252 // The following are null/nil structures that can also be used as sentinels:
253 static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record.
254 static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information.
255 static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit.
256 static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel.
257 static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster.
258 static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track.
259 static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest.
260 static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track.
261 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
262 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
264 // HLT component input and output data block types:
265 static const AliHLTComponentDataType fgkDDLRawDataType; // DDL packed data block type from dimuon spectrometer.
266 static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components.
267 static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components.
268 static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components.
269 static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters.
270 static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters.
271 static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components.
272 static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm.
273 static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
274 static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
275 static const AliHLTComponentDataType fgkESDDataType; // The ESD data type with origin equal to MUON.
277 // Component ID names:
278 static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging.
279 static const char* fgkTriggerRecordsSourceId; // Name of source component for trigger records for debugging.
280 static const char* fgkTracksSourceId; // Name of source component for tracks for debugging.
281 static const char* fgkDigitPublisherId; // Component name for publishing DDL streams from digits.
282 static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name.
283 static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name.
284 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
285 static const char* fgkDecisionComponentId; // dHLT decision component name.
286 static const char* fgkESDMakerId; // Name of ESD maker component which converts dHLT data to AliESDEvent classes.
287 static const char* fgkRootifierComponentId; // The name of the event filter debugging component.
288 static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component.
289 static const char* fgkDataCheckerComponentId; // Name of data checking component for debugging.
291 // CDB path entries to configuration information.
292 static const char* fgkTriggerReconstructorCDBPath; // Path to CDB entry for the trigger reconstruction component.
293 static const char* fgkHitReconstructorCDBPath; // Path to CDB entry for the hit reconstruction component.
294 static const char* fgkMansoTrackerFSMCDBPath; // Path to CDB entry for the Manso FSM tracker component.
295 static const char* fgkDecisionComponentCDBPath; // Path to CDB entry for trigger decision component.
298 #endif // ALIHLTMUONCONSTANTS_H