]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONConstants.h
Making important updates to the internal data structures:
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONConstants.h
CommitLineData
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.
31extern "C" {
32struct AliHLTComponentDataType;
33struct AliHLTMUONTriggerRecordStruct;
34struct AliHLTMUONTrigRecInfoStruct;
b12fe461 35struct AliHLTMUONRecHitStruct;
36struct AliHLTMUONChannelStruct;
37struct AliHLTMUONClusterStruct;
38struct AliHLTMUONMansoTrackStruct;
39struct AliHLTMUONMansoRoIStruct;
40struct AliHLTMUONMansoCandidateStruct;
41struct AliHLTMUONTrackDecisionStruct;
42struct 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 */
50class AliHLTMUONConstants
51{
52public:
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
229private:
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