]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/AliHLTMUONConstants.h
3f3bdeb6b0fb91f489edc2e994d0781979ca81e6
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONConstants.h
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                               */
5
6 /* $Id$ */
7
8 /**
9  * @file   AliHLTMUONConstants.h
10  * @author Indranil Das <indra.das@saha.ac.in>,
11  *         Artur Szostak <artursz@iafrica.com>
12  * @date   
13  * @brief  Class containing various dimuon HLT constants used in the system.
14  */
15
16 // Forward declare structures.
17 extern "C" {
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;
30 } // extern "C"
31
32 /**
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.
36  */
37 class AliHLTMUONConstants
38 {
39 public:
40
41         static const AliHLTMUONTriggerRecordStruct& NilTriggerRecordStruct()
42         {
43                 return fgkNilTriggerRecordStruct;
44         }
45
46         static const AliHLTMUONTrigRecInfoStruct& NilTrigRecInfoStruct()
47         {
48                 return fgkNilTrigRecInfoStruct;
49         }
50
51         static const AliHLTMUONTriggerChannelStruct& NilTriggerChannelStruct()
52         {
53                 return fgkNilTriggerChannelStruct;
54         }
55
56         static const AliHLTMUONRecHitStruct& NilRecHitStruct()
57         {
58                 return fgkNilRecHitStruct;
59         }
60
61         static const AliHLTMUONChannelStruct& NilChannelStruct()
62         {
63                 return fgkNilChannelStruct;
64         }
65
66         static const AliHLTMUONClusterStruct& NilClusterStruct()
67         {
68                 return fgkNilClusterStruct;
69         }
70
71         static const AliHLTMUONMansoTrackStruct& NilMansoTrackStruct()
72         {
73                 return fgkNilMansoTrackStruct;
74         }
75
76         static const AliHLTMUONMansoRoIStruct& NilMansoRoIStruct()
77         {
78                 return fgkNilMansoRoIStruct;
79         }
80
81         static const AliHLTMUONMansoCandidateStruct& NilMansoCandidateStruct()
82         {
83                 return fgkNilMansoCandidateStruct;
84         }
85
86         static const AliHLTMUONTrackDecisionStruct& NilTrackDecisionStruct()
87         {
88                 return fgkNilTrackDecisionStruct;
89         }
90
91         static const AliHLTMUONPairDecisionStruct& NilPairDecisionStruct()
92         {
93                 return fgkNilPairDecisionStruct;
94         }
95
96         static const AliHLTComponentDataType& TriggerDDLRawDataType()
97         {
98                 return fgkTriggerDDLRawDataType;
99         }
100
101         static const AliHLTComponentDataType& TrackingDDLRawDataType()
102         {
103                 return fgkTrackingDDLRawDataType;
104         }
105
106         static const AliHLTComponentDataType& TriggerRecordsBlockDataType()
107         {
108                 return fgkTriggerRecordsBlockDataType;
109         }
110
111         static const AliHLTComponentDataType& TrigRecsDebugBlockDataType()
112         {
113                 return fgkTrigRecsDebugBlockDataType;
114         }
115
116         static const AliHLTComponentDataType& TriggerChannelBlockDataType()
117         {
118                 return fgkTriggerChannelBlockDataType;
119         }
120
121         static const AliHLTComponentDataType& RecHitsBlockDataType()
122         {
123                 return fgkRecHitsBlockDataType;
124         }
125
126         static const AliHLTComponentDataType& ClusterBlockDataType()
127         {
128                 return fgkClusterBlockDataType;
129         }
130
131         static const AliHLTComponentDataType& ChannelBlockDataType()
132         {
133                 return fgkChannelBlockDataType;
134         }
135
136         static const AliHLTComponentDataType& MansoTracksBlockDataType()
137         {
138                 return fgkMansoTracksBlockDataType;
139         }
140
141         static const AliHLTComponentDataType& MansoCandidatesBlockDataType()
142         {
143                 return fgkMansoCandidatesBlockDataType;
144         }
145
146         static const AliHLTComponentDataType& SinglesDecisionBlockDataType()
147         {
148                 return fgkSinglesDecisionBlockDataType;
149         }
150
151         static const AliHLTComponentDataType& PairsDecisionBlockDataType()
152         {
153                 return fgkPairsDecisionBlockDataType;
154         }
155         
156         static const char* RecHitsSourceId()
157         {
158                 return fgkRecHitsSourceId;
159         }
160         
161         static const char* MansoTrackerFSMId()
162         {
163                 return fgkMansoTrackerFSMId;
164         }
165
166 private:
167
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);
173         
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.
186
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.
200         
201         // Component ID names:
202         static const char* fgkRecHitsSourceId; // Reconstructed hit component name.
203         static const char* fgkMansoTrackerFSMId; // Manso tracker FSM implementation component name.
204 };
205
206 #endif // ALIHLTMUONCONSTANTS_H