]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/MUON/AliHLTMUONConstants.h
Fixing generation of trigger record structure.
[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;
35struct AliHLTMUONTriggerChannelStruct;
36struct AliHLTMUONRecHitStruct;
37struct AliHLTMUONChannelStruct;
38struct AliHLTMUONClusterStruct;
39struct AliHLTMUONMansoTrackStruct;
40struct AliHLTMUONMansoRoIStruct;
41struct AliHLTMUONMansoCandidateStruct;
42struct AliHLTMUONTrackDecisionStruct;
43struct AliHLTMUONPairDecisionStruct;
44} // extern "C"
26a4668d 45
46/**
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.
50 */
51class AliHLTMUONConstants
52{
53public:
54
c8ec7c7e 55 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
56 {
57 return fgkNilTriggerRecordStruct;
58 }
59
60 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
61 {
62 return fgkNilTrigRecInfoStruct;
63 }
64
65 static const AliHLTMUONTriggerChannelStruct& NilTriggerChannelStruct()
66 {
67 return fgkNilTriggerChannelStruct;
68 }
69
26a4668d 70 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
71 {
72 return fgkNilRecHitStruct;
73 }
74
910807dd 75 static const AliHLTMUONChannelStruct& NilChannelStruct()
26a4668d 76 {
910807dd 77 return fgkNilChannelStruct;
26a4668d 78 }
79
910807dd 80 static const AliHLTMUONClusterStruct& NilClusterStruct()
26a4668d 81 {
910807dd 82 return fgkNilClusterStruct;
26a4668d 83 }
84
90a74d7a 85 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
86 {
87 return fgkNilMansoTrackStruct;
88 }
89
90 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
91 {
92 return fgkNilMansoRoIStruct;
93 }
94
95 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
96 {
97 return fgkNilMansoCandidateStruct;
98 }
99
100 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
101 {
102 return fgkNilTrackDecisionStruct;
103 }
104
105 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
106 {
107 return fgkNilPairDecisionStruct;
108 }
109
b12fe461 110 static const AliHLTComponentDataType& TriggerDDLRawDataType()
26a4668d 111 {
b12fe461 112 return fgkTriggerDDLRawDataType;
26a4668d 113 }
114
b12fe461 115 static const AliHLTComponentDataType& TrackingDDLRawDataType()
26a4668d 116 {
b12fe461 117 return fgkTrackingDDLRawDataType;
26a4668d 118 }
119
910807dd 120 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
26a4668d 121 {
910807dd 122 return fgkTriggerRecordsBlockDataType;
26a4668d 123 }
124
910807dd 125 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
26a4668d 126 {
910807dd 127 return fgkTrigRecsDebugBlockDataType;
26a4668d 128 }
129
910807dd 130 static const AliHLTComponentDataType& TriggerChannelBlockDataType()
26a4668d 131 {
910807dd 132 return fgkTriggerChannelBlockDataType;
133 }
134
135 static const AliHLTComponentDataType& RecHitsBlockDataType()
136 {
137 return fgkRecHitsBlockDataType;
138 }
139
140 static const AliHLTComponentDataType& ClusterBlockDataType()
141 {
142 return fgkClusterBlockDataType;
26a4668d 143 }
144
910807dd 145 static const AliHLTComponentDataType& ChannelBlockDataType()
26a4668d 146 {
910807dd 147 return fgkChannelBlockDataType;
26a4668d 148 }
149
150 static const AliHLTComponentDataType& MansoTracksBlockDataType()
151 {
152 return fgkMansoTracksBlockDataType;
153 }
154
90a74d7a 155 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
26a4668d 156 {
90a74d7a 157 return fgkMansoCandidatesBlockDataType;
910807dd 158 }
159
90a74d7a 160 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
910807dd 161 {
90a74d7a 162 return fgkSinglesDecisionBlockDataType;
26a4668d 163 }
164
90a74d7a 165 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
26a4668d 166 {
90a74d7a 167 return fgkPairsDecisionBlockDataType;
26a4668d 168 }
b12fe461 169
170 static const char* RecHitsSourceId()
171 {
172 return fgkRecHitsSourceId;
173 }
6cde4e61 174
e6357f88 175 static const char* TriggerRecordsSourceId()
176 {
177 return fgkTriggerRecordsSourceId;
178 }
179
180 static const char* MansoTracksSourceId()
181 {
182 return fgkMansoTracksSourceId;
183 }
184
185 static const char* TriggerReconstructorId()
186 {
187 return fgkTriggerReconstructorId;
188 }
189
190 static const char* HitReconstructorId()
191 {
192 return fgkHitReconstructorId;
193 }
194
6cde4e61 195 static const char* MansoTrackerFSMId()
196 {
197 return fgkMansoTrackerFSMId;
198 }
e6357f88 199
200 static const char* DecisionComponentId()
201 {
202 return fgkDecisionComponentId;
203 }
26a4668d 204
205private:
90a74d7a 206
b12fe461 207 // Should never have to create, destroy or copy this object.
26a4668d 208 AliHLTMUONConstants();
b12fe461 209 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
26a4668d 210 ~AliHLTMUONConstants();
b12fe461 211 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
c8ec7c7e 212
b12fe461 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.
225
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.
239
240 // Component ID names:
e6357f88 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.
6cde4e61 246 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
e6357f88 247 static const char* fgkDecisionComponentId; // dHLT decision component name.
26a4668d 248};
249
250#endif // ALIHLTMUONCONSTANTS_H