]>
Commit | Line | Data |
---|---|---|
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 | |
20 | /* $Id$ */ | |
21 | ||
22 | /** | |
23 | * @file AliHLTMUONConstants.h | |
24 | * @author Indranil Das <indra.das@saha.ac.in>, | |
25 | * Artur Szostak <artursz@iafrica.com> | |
26 | * @date | |
27 | * @brief Class containing various dimuon HLT constants used in the system. | |
28 | */ | |
29 | ||
b12fe461 | 30 | // Forward declare structures. |
31 | extern "C" { | |
32 | struct AliHLTComponentDataType; | |
33 | struct AliHLTMUONTriggerRecordStruct; | |
34 | struct AliHLTMUONTrigRecInfoStruct; | |
b12fe461 | 35 | struct AliHLTMUONRecHitStruct; |
36 | struct AliHLTMUONChannelStruct; | |
37 | struct AliHLTMUONClusterStruct; | |
38 | struct AliHLTMUONMansoTrackStruct; | |
39 | struct AliHLTMUONMansoRoIStruct; | |
40 | struct AliHLTMUONMansoCandidateStruct; | |
41 | struct AliHLTMUONTrackDecisionStruct; | |
42 | struct AliHLTMUONPairDecisionStruct; | |
43 | } // extern "C" | |
26a4668d | 44 | |
45 | /** | |
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. | |
49 | */ | |
50 | class AliHLTMUONConstants | |
51 | { | |
52 | public: | |
53 | ||
c8ec7c7e | 54 | static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct() |
55 | { | |
56 | return fgkNilTriggerRecordStruct; | |
57 | } | |
58 | ||
59 | static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct() | |
60 | { | |
61 | return fgkNilTrigRecInfoStruct; | |
62 | } | |
63 | ||
26a4668d | 64 | static const AliHLTMUONRecHitStruct& NilRecHitStruct() |
65 | { | |
66 | return fgkNilRecHitStruct; | |
67 | } | |
68 | ||
910807dd | 69 | static const AliHLTMUONChannelStruct& NilChannelStruct() |
26a4668d | 70 | { |
910807dd | 71 | return fgkNilChannelStruct; |
26a4668d | 72 | } |
73 | ||
910807dd | 74 | static const AliHLTMUONClusterStruct& NilClusterStruct() |
26a4668d | 75 | { |
910807dd | 76 | return fgkNilClusterStruct; |
26a4668d | 77 | } |
78 | ||
90a74d7a | 79 | static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct() |
80 | { | |
81 | return fgkNilMansoTrackStruct; | |
82 | } | |
83 | ||
84 | static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct() | |
85 | { | |
86 | return fgkNilMansoRoIStruct; | |
87 | } | |
88 | ||
89 | static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct() | |
90 | { | |
91 | return fgkNilMansoCandidateStruct; | |
92 | } | |
93 | ||
94 | static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct() | |
95 | { | |
96 | return fgkNilTrackDecisionStruct; | |
97 | } | |
98 | ||
99 | static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct() | |
100 | { | |
101 | return fgkNilPairDecisionStruct; | |
102 | } | |
103 | ||
668eee9f | 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() | |
26a4668d | 110 | { |
668eee9f | 111 | return fgkDDLRawDataType; |
26a4668d | 112 | } |
113 | ||
910807dd | 114 | static const AliHLTComponentDataType& TriggerRecordsBlockDataType() |
26a4668d | 115 | { |
910807dd | 116 | return fgkTriggerRecordsBlockDataType; |
26a4668d | 117 | } |
118 | ||
910807dd | 119 | static const AliHLTComponentDataType& TrigRecsDebugBlockDataType() |
26a4668d | 120 | { |
910807dd | 121 | return fgkTrigRecsDebugBlockDataType; |
26a4668d | 122 | } |
123 | ||
910807dd | 124 | static const AliHLTComponentDataType& RecHitsBlockDataType() |
125 | { | |
126 | return fgkRecHitsBlockDataType; | |
127 | } | |
128 | ||
129 | static const AliHLTComponentDataType& ClusterBlockDataType() | |
130 | { | |
131 | return fgkClusterBlockDataType; | |
26a4668d | 132 | } |
133 | ||
910807dd | 134 | static const AliHLTComponentDataType& ChannelBlockDataType() |
26a4668d | 135 | { |
910807dd | 136 | return fgkChannelBlockDataType; |
26a4668d | 137 | } |
138 | ||
139 | static const AliHLTComponentDataType& MansoTracksBlockDataType() | |
140 | { | |
141 | return fgkMansoTracksBlockDataType; | |
142 | } | |
143 | ||
90a74d7a | 144 | static const AliHLTComponentDataType& MansoCandidatesBlockDataType() |
26a4668d | 145 | { |
90a74d7a | 146 | return fgkMansoCandidatesBlockDataType; |
910807dd | 147 | } |
148 | ||
90a74d7a | 149 | static const AliHLTComponentDataType& SinglesDecisionBlockDataType() |
910807dd | 150 | { |
90a74d7a | 151 | return fgkSinglesDecisionBlockDataType; |
26a4668d | 152 | } |
153 | ||
90a74d7a | 154 | static const AliHLTComponentDataType& PairsDecisionBlockDataType() |
26a4668d | 155 | { |
90a74d7a | 156 | return fgkPairsDecisionBlockDataType; |
26a4668d | 157 | } |
b12fe461 | 158 | |
159 | static const char* RecHitsSourceId() | |
160 | { | |
161 | return fgkRecHitsSourceId; | |
162 | } | |
6cde4e61 | 163 | |
e6357f88 | 164 | static const char* TriggerRecordsSourceId() |
165 | { | |
166 | return fgkTriggerRecordsSourceId; | |
167 | } | |
168 | ||
887a669c | 169 | static const char* TracksSourceId() |
e6357f88 | 170 | { |
887a669c | 171 | return fgkTracksSourceId; |
172 | } | |
173 | ||
174 | static const char* DigitPublisherId() | |
175 | { | |
176 | return fgkDigitPublisherId; | |
e6357f88 | 177 | } |
178 | ||
179 | static const char* TriggerReconstructorId() | |
180 | { | |
181 | return fgkTriggerReconstructorId; | |
182 | } | |
183 | ||
184 | static const char* HitReconstructorId() | |
185 | { | |
186 | return fgkHitReconstructorId; | |
187 | } | |
188 | ||
6cde4e61 | 189 | static const char* MansoTrackerFSMId() |
190 | { | |
191 | return fgkMansoTrackerFSMId; | |
192 | } | |
e6357f88 | 193 | |
194 | static const char* DecisionComponentId() | |
195 | { | |
196 | return fgkDecisionComponentId; | |
197 | } | |
8134dd2e | 198 | |
450e0b36 | 199 | static const char* RootifierComponentId() |
8134dd2e | 200 | { |
450e0b36 | 201 | return fgkRootifierComponentId; |
8134dd2e | 202 | } |
0528e93a | 203 | |
204 | static const char* EmptyEventFilterComponentId() | |
205 | { | |
206 | return fgkEmptyEventFilterComponentId; | |
207 | } | |
c9537879 | 208 | |
dba14d7d | 209 | static const char* DataCheckerComponentId() |
210 | { | |
211 | return fgkDataCheckerComponentId; | |
212 | } | |
213 | ||
887a669c | 214 | static const char* HitReconstructorCDBPath() |
215 | { | |
216 | return fgkHitReconstructorCDBPath; | |
217 | } | |
218 | ||
219 | static const char* MansoTrackerFSMCDBPath() | |
220 | { | |
221 | return fgkMansoTrackerFSMCDBPath; | |
222 | } | |
223 | ||
c9537879 | 224 | static const char* DecisionComponentCDBPath() |
225 | { | |
226 | return fgkDecisionComponentCDBPath; | |
227 | } | |
26a4668d | 228 | |
229 | private: | |
90a74d7a | 230 | |
b12fe461 | 231 | // Should never have to create, destroy or copy this object. |
26a4668d | 232 | AliHLTMUONConstants(); |
b12fe461 | 233 | AliHLTMUONConstants(const AliHLTMUONConstants& obj); |
26a4668d | 234 | ~AliHLTMUONConstants(); |
b12fe461 | 235 | AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj); |
c8ec7c7e | 236 | |
b12fe461 | 237 | // The following are null/nil structures that can also be used as sentinels: |
238 | static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record. | |
239 | static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information. | |
b12fe461 | 240 | static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit. |
241 | static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel. | |
242 | static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster. | |
243 | static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track. | |
244 | static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest. | |
245 | static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track. | |
246 | static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track. | |
247 | static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair. | |
248 | ||
249 | // HLT component input and output data block types: | |
668eee9f | 250 | static const AliHLTComponentDataType fgkDDLRawDataType; // DDL packed data block type from dimuon spectrometer. |
b12fe461 | 251 | static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components. |
252 | static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components. | |
b12fe461 | 253 | static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components. |
254 | static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters. | |
255 | static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters. | |
256 | static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components. | |
257 | static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm. | |
258 | static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions. | |
259 | static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles. | |
260 | ||
261 | // Component ID names: | |
e6357f88 | 262 | static const char* fgkRecHitsSourceId; // Name of source component for reconstructed hits for debugging. |
263 | static const char* fgkTriggerRecordsSourceId; // Name of source component for trigger records for debugging. | |
887a669c | 264 | static const char* fgkTracksSourceId; // Name of source component for tracks for debugging. |
265 | static const char* fgkDigitPublisherId; // Component name for publishing DDL streams from digits. | |
e6357f88 | 266 | static const char* fgkTriggerReconstructorId; // Trigger record reconstructor component name. |
267 | static const char* fgkHitReconstructorId; // Centre of gravity cluster finder component name. | |
6cde4e61 | 268 | static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name. |
e6357f88 | 269 | static const char* fgkDecisionComponentId; // dHLT decision component name. |
450e0b36 | 270 | static const char* fgkRootifierComponentId; // The name of the event filter debugging component. |
0528e93a | 271 | static const char* fgkEmptyEventFilterComponentId; // The name of the event filter debugging component. |
dba14d7d | 272 | static const char* fgkDataCheckerComponentId; // Name of data checking component for debugging. |
c9537879 | 273 | |
274 | // CDB path entries to configuration information. | |
887a669c | 275 | static const char* fgkHitReconstructorCDBPath; // Path to CDB entry for the hit reconstruction component. |
276 | static const char* fgkMansoTrackerFSMCDBPath; // Path to CDB entry for the Manso FSM tracker component. | |
c9537879 | 277 | static const char* fgkDecisionComponentCDBPath; // Path to CDB entry for trigger decision component. |
26a4668d | 278 | }; |
279 | ||
280 | #endif // ALIHLTMUONCONSTANTS_H |