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;
207 // Should never have to create, destroy or copy this object.
208 AliHLTMUONConstants();
209 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
210 ~AliHLTMUONConstants();
211 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
213 // The following are null/nil structures that can also be used as sentinels:
214 static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record.
215 static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information.
216 static const AliHLTMUONTriggerChannelStruct fgkNilTriggerChannelStruct; // Nil trigger chamber channel.
217 static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit.
218 static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel.
219 static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster.
220 static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track.
221 static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest.
222 static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track.
223 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
224 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
226 // HLT component input and output data block types:
227 static const AliHLTComponentDataType fgkTriggerDDLRawDataType; // DDL packed data block type from dimuon trigger stations.
228 static const AliHLTComponentDataType fgkTrackingDDLRawDataType; // DDL packed data block type from dimuon tracking stations.
229 static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components.
230 static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components.
231 static const AliHLTComponentDataType fgkTriggerChannelBlockDataType; // Debugging information about the channels from the hardware trigger.
232 static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components.
233 static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters.
234 static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters.
235 static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components.
236 static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm.
237 static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
238 static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
240 // Component ID names:
241 static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging.
242 static const char* fgkTriggerRecordsSourceId; // Name of source component for trigger records for debugging.
243 static const char* fgkMansoTracksSourceId; // Name of source component for Manso tracks for debugging.
244 static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name.
245 static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name.
246 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
247 static const char* fgkDecisionComponentId; // dHLT decision component name.
250 #endif // ALIHLTMUONCONSTANTS_H