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 AliHLTMUONTriggerChannelStruct;
36 struct AliHLTMUONRecHitStruct;
37 struct AliHLTMUONChannelStruct;
38 struct AliHLTMUONClusterStruct;
39 struct AliHLTMUONMansoTrackStruct;
40 struct AliHLTMUONMansoRoIStruct;
41 struct AliHLTMUONMansoCandidateStruct;
42 struct AliHLTMUONTrackDecisionStruct;
43 struct AliHLTMUONPairDecisionStruct;
47 * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
48 * and constant structures used in the system.
49 * Static methods are provided to access these values.
51 class AliHLTMUONConstants
55 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
57 return fgkNilTriggerRecordStruct;
60 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
62 return fgkNilTrigRecInfoStruct;
65 static const AliHLTMUONTriggerChannelStruct& NilTriggerChannelStruct()
67 return fgkNilTriggerChannelStruct;
70 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
72 return fgkNilRecHitStruct;
75 static const AliHLTMUONChannelStruct& NilChannelStruct()
77 return fgkNilChannelStruct;
80 static const AliHLTMUONClusterStruct& NilClusterStruct()
82 return fgkNilClusterStruct;
85 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
87 return fgkNilMansoTrackStruct;
90 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
92 return fgkNilMansoRoIStruct;
95 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
97 return fgkNilMansoCandidateStruct;
100 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
102 return fgkNilTrackDecisionStruct;
105 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
107 return fgkNilPairDecisionStruct;
110 static const AliHLTComponentDataType& TriggerDDLRawDataType()
112 return fgkTriggerDDLRawDataType;
115 static const AliHLTComponentDataType& TrackingDDLRawDataType()
117 return fgkTrackingDDLRawDataType;
120 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
122 return fgkTriggerRecordsBlockDataType;
125 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
127 return fgkTrigRecsDebugBlockDataType;
130 static const AliHLTComponentDataType& TriggerChannelBlockDataType()
132 return fgkTriggerChannelBlockDataType;
135 static const AliHLTComponentDataType& RecHitsBlockDataType()
137 return fgkRecHitsBlockDataType;
140 static const AliHLTComponentDataType& ClusterBlockDataType()
142 return fgkClusterBlockDataType;
145 static const AliHLTComponentDataType& ChannelBlockDataType()
147 return fgkChannelBlockDataType;
150 static const AliHLTComponentDataType& MansoTracksBlockDataType()
152 return fgkMansoTracksBlockDataType;
155 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
157 return fgkMansoCandidatesBlockDataType;
160 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
162 return fgkSinglesDecisionBlockDataType;
165 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
167 return fgkPairsDecisionBlockDataType;
170 static const char* RecHitsSourceId()
172 return fgkRecHitsSourceId;
175 static const char* TriggerRecordsSourceId()
177 return fgkTriggerRecordsSourceId;
180 static const char* MansoTracksSourceId()
182 return fgkMansoTracksSourceId;
185 static const char* TriggerReconstructorId()
187 return fgkTriggerReconstructorId;
190 static const char* HitReconstructorId()
192 return fgkHitReconstructorId;
195 static const char* MansoTrackerFSMId()
197 return fgkMansoTrackerFSMId;
200 static const char* DecisionComponentId()
202 return fgkDecisionComponentId;
205 static const char* TriggerCalibratorId()
207 return fgkTriggerCalibratorId;
210 static const char* TrackerCalibratorId()
212 return fgkTrackerCalibratorId;
215 static const char* EmptyEventFilterComponentId()
217 return fgkEmptyEventFilterComponentId;
222 // Should never have to create, destroy or copy this object.
223 AliHLTMUONConstants();
224 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
225 ~AliHLTMUONConstants();
226 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
228 // The following are null/nil structures that can also be used as sentinels:
229 static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record.
230 static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information.
231 static const AliHLTMUONTriggerChannelStruct fgkNilTriggerChannelStruct; // Nil trigger chamber channel.
232 static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit.
233 static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel.
234 static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster.
235 static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track.
236 static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest.
237 static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track.
238 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
239 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
241 // HLT component input and output data block types:
242 static const AliHLTComponentDataType fgkTriggerDDLRawDataType; // DDL packed data block type from dimuon trigger stations.
243 static const AliHLTComponentDataType fgkTrackingDDLRawDataType; // DDL packed data block type from dimuon tracking stations.
244 static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components.
245 static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components.
246 static const AliHLTComponentDataType fgkTriggerChannelBlockDataType; // Debugging information about the channels from the hardware trigger.
247 static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components.
248 static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters.
249 static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters.
250 static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components.
251 static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm.
252 static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
253 static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
255 // Component ID names:
256 static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging.
257 static const char* fgkTriggerRecordsSourceId; // Name of source component for trigger records for debugging.
258 static const char* fgkMansoTracksSourceId; // Name of source component for Manso tracks for debugging.
259 static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name.
260 static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name.
261 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
262 static const char* fgkDecisionComponentId; // dHLT decision component name.
263 static const char* fgkTriggerCalibratorId; // Trigger calibration component name.
264 static const char* fgkTrackerCalibratorId; // Tracking stations calibration component name.
265 static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component.
268 #endif // ALIHLTMUONCONSTANTS_H