1 #ifndef ALIHLTMUONCONSTANTS_H
2 #define ALIHLTMUONCONSTANTS_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 * @file AliHLTMUONConstants.h
10 * @author Indranil Das <indra.das@saha.ac.in>,
11 * Artur Szostak <artursz@iafrica.com>
13 * @brief Class containing various dimuon HLT constants used in the system.
16 // Forward declare structures.
18 struct AliHLTComponentDataType;
19 struct AliHLTMUONTriggerRecordStruct;
20 struct AliHLTMUONTrigRecInfoStruct;
21 struct AliHLTMUONTriggerChannelStruct;
22 struct AliHLTMUONRecHitStruct;
23 struct AliHLTMUONChannelStruct;
24 struct AliHLTMUONClusterStruct;
25 struct AliHLTMUONMansoTrackStruct;
26 struct AliHLTMUONMansoRoIStruct;
27 struct AliHLTMUONMansoCandidateStruct;
28 struct AliHLTMUONTrackDecisionStruct;
29 struct AliHLTMUONPairDecisionStruct;
33 * AliHLTMUONConstants contains a list of global dimuon HLT specific constants
34 * and constant structures used in the system.
35 * Static methods are provided to access these values.
37 class AliHLTMUONConstants
41 static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
43 return fgkNilTriggerRecordStruct;
46 static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
48 return fgkNilTrigRecInfoStruct;
51 static const AliHLTMUONTriggerChannelStruct& NilTriggerChannelStruct()
53 return fgkNilTriggerChannelStruct;
56 static const AliHLTMUONRecHitStruct& NilRecHitStruct()
58 return fgkNilRecHitStruct;
61 static const AliHLTMUONChannelStruct& NilChannelStruct()
63 return fgkNilChannelStruct;
66 static const AliHLTMUONClusterStruct& NilClusterStruct()
68 return fgkNilClusterStruct;
71 static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
73 return fgkNilMansoTrackStruct;
76 static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
78 return fgkNilMansoRoIStruct;
81 static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
83 return fgkNilMansoCandidateStruct;
86 static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
88 return fgkNilTrackDecisionStruct;
91 static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
93 return fgkNilPairDecisionStruct;
96 static const AliHLTComponentDataType& TriggerDDLRawDataType()
98 return fgkTriggerDDLRawDataType;
101 static const AliHLTComponentDataType& TrackingDDLRawDataType()
103 return fgkTrackingDDLRawDataType;
106 static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
108 return fgkTriggerRecordsBlockDataType;
111 static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
113 return fgkTrigRecsDebugBlockDataType;
116 static const AliHLTComponentDataType& TriggerChannelBlockDataType()
118 return fgkTriggerChannelBlockDataType;
121 static const AliHLTComponentDataType& RecHitsBlockDataType()
123 return fgkRecHitsBlockDataType;
126 static const AliHLTComponentDataType& ClusterBlockDataType()
128 return fgkClusterBlockDataType;
131 static const AliHLTComponentDataType& ChannelBlockDataType()
133 return fgkChannelBlockDataType;
136 static const AliHLTComponentDataType& MansoTracksBlockDataType()
138 return fgkMansoTracksBlockDataType;
141 static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
143 return fgkMansoCandidatesBlockDataType;
146 static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
148 return fgkSinglesDecisionBlockDataType;
151 static const AliHLTComponentDataType& PairsDecisionBlockDataType()
153 return fgkPairsDecisionBlockDataType;
156 static const char* RecHitsSourceId()
158 return fgkRecHitsSourceId;
161 static const char* MansoTrackerFSMId()
163 return fgkMansoTrackerFSMId;
168 // Should never have to create, destroy or copy this object.
169 AliHLTMUONConstants();
170 AliHLTMUONConstants(const AliHLTMUONConstants& obj);
171 ~AliHLTMUONConstants();
172 AliHLTMUONConstants& operator = (const AliHLTMUONConstants& obj);
174 // The following are null/nil structures that can also be used as sentinels:
175 static const AliHLTMUONTriggerRecordStruct fgkNilTriggerRecordStruct; // Nil trigger record.
176 static const AliHLTMUONTrigRecInfoStruct fgkNilTrigRecInfoStruct; // Nil trigger record debug information.
177 static const AliHLTMUONTriggerChannelStruct fgkNilTriggerChannelStruct; // Nil trigger chamber channel.
178 static const AliHLTMUONRecHitStruct fgkNilRecHitStruct; // Nil reconstructed hit.
179 static const AliHLTMUONChannelStruct fgkNilChannelStruct; // Nil tracking chamber channel.
180 static const AliHLTMUONClusterStruct fgkNilClusterStruct; // Nil tracking chamber cluster.
181 static const AliHLTMUONMansoTrackStruct fgkNilMansoTrackStruct; // Nil manso track.
182 static const AliHLTMUONMansoRoIStruct fgkNilMansoRoIStruct; // Nil manso region of interest.
183 static const AliHLTMUONMansoCandidateStruct fgkNilMansoCandidateStruct; // Nil manso candidate track.
184 static const AliHLTMUONTrackDecisionStruct fgkNilTrackDecisionStruct; // Nil decision for single track.
185 static const AliHLTMUONPairDecisionStruct fgkNilPairDecisionStruct; // Nil decision for track pair.
187 // HLT component input and output data block types:
188 static const AliHLTComponentDataType fgkTriggerDDLRawDataType; // DDL packed data block type from dimuon trigger stations.
189 static const AliHLTComponentDataType fgkTrackingDDLRawDataType; // DDL packed data block type from dimuon tracking stations.
190 static const AliHLTComponentDataType fgkTriggerRecordsBlockDataType; // Trigger records block type generated by trigger DDL translation components.
191 static const AliHLTComponentDataType fgkTrigRecsDebugBlockDataType; // Debugging information block type generated by trigger DDL translation components.
192 static const AliHLTComponentDataType fgkTriggerChannelBlockDataType; // Debugging information about the channels from the hardware trigger.
193 static const AliHLTComponentDataType fgkRecHitsBlockDataType; // Reconstructed hits block type generated by hit reconstruction components.
194 static const AliHLTComponentDataType fgkClusterBlockDataType; // Debugging information block type for reconstructed hit clusters.
195 static const AliHLTComponentDataType fgkChannelBlockDataType; // Debugging information block type for channels corresponding to clusters.
196 static const AliHLTComponentDataType fgkMansoTracksBlockDataType; // Manso tracks block type generated by Manso tracker components.
197 static const AliHLTComponentDataType fgkMansoCandidatesBlockDataType; // Debugging information about a track candidate generated by the Manso algorithm.
198 static const AliHLTComponentDataType fgkSinglesDecisionBlockDataType; // Trigger decision block type for single track decisions.
199 static const AliHLTComponentDataType fgkPairsDecisionBlockDataType; // Trigger decision block type for pairs of particles.
201 // Component ID names:
202 static const char* fgkRecHitsSourceId; // Reconstructed hit component name.
203 static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
206 #endif // ALIHLTMUONCONSTANTS_H