]>
Commit | Line | Data |
---|---|---|
48265b32 | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | ||
16 | /* | |
17 | $Log$ | |
33dc3c99 | 18 | Revision 1.1 2007/09/17 10:23:31 cvetan |
19 | New TPC monitoring package from Stefan Kniege. The monitoring package can be started by running TPCMonitor.C macro located in macros folder. | |
20 | ||
48265b32 | 21 | */ |
22 | ||
23 | #include "AliTPCMonitorDateFormat.h" | |
33dc3c99 | 24 | #include "event.h" |
48265b32 | 25 | #include <iostream> |
26 | ClassImp(AliTPCMonitorDateFormat) | |
27 | //____________________________________________________________________________ | |
28 | AliTPCMonitorDateFormat::AliTPCMonitorDateFormat(Char_t* data){ | |
29 | // Constructor | |
30 | fdataPtr = data; | |
31 | fsubEventPtr = data; | |
32 | fcurrentPtr = data; | |
33 | event = (struct eventHeaderStruct*) fdataPtr; | |
34 | } | |
35 | ||
36 | //____________________________________________________________________________ | |
37 | AliTPCMonitorDateFormat::~AliTPCMonitorDateFormat() | |
38 | { | |
39 | // Destructor | |
40 | } | |
41 | ||
42 | //____________________________________________________________________________ | |
43 | Int_t AliTPCMonitorDateFormat::GetEventSize() | |
44 | { | |
45 | // Return event size | |
46 | return (Int_t)event->eventSize; | |
47 | } | |
48 | ||
49 | //____________________________________________________________________________ | |
50 | Int_t AliTPCMonitorDateFormat::GetEventHeaderSize() | |
51 | { | |
52 | // Return event header size | |
53 | return (Int_t)event->eventHeadSize; | |
54 | } | |
55 | ||
56 | //____________________________________________________________________________ | |
57 | Int_t AliTPCMonitorDateFormat::GetEventHeaderBaseSize() | |
58 | { | |
59 | // Return event header base size | |
60 | return (Int_t)EVENT_HEAD_BASE_SIZE; | |
61 | } | |
62 | ||
63 | //____________________________________________________________________________ | |
64 | Int_t AliTPCMonitorDateFormat::GetEventID() | |
65 | { | |
66 | // Return event ID | |
67 | return (Int_t)EVENT_ID_GET_NB_IN_RUN(event->eventId); | |
68 | } | |
69 | ||
70 | //____________________________________________________________________________ | |
71 | Int_t AliTPCMonitorDateFormat::GetEventLDC() | |
72 | { | |
73 | // Return event LDC | |
74 | return (Int_t)event->eventLdcId; | |
75 | } | |
76 | ||
77 | //____________________________________________________________________________ | |
78 | Int_t AliTPCMonitorDateFormat::GetEventGDC() | |
79 | { | |
80 | // return event GDC | |
81 | return (Int_t)event->eventGdcId; | |
82 | } | |
83 | ||
84 | //____________________________________________________________________________ | |
85 | Int_t AliTPCMonitorDateFormat::GetEventRunID() | |
86 | { | |
87 | // Return run ID | |
88 | return (Int_t)event->eventRunNb; | |
89 | } | |
90 | ||
91 | //____________________________________________________________________________ | |
92 | Int_t AliTPCMonitorDateFormat::GetEventVersion() | |
93 | { | |
94 | // Return event version | |
95 | return (Int_t)event->eventVersion; | |
96 | } | |
97 | ||
98 | //____________________________________________________________________________ | |
99 | Int_t AliTPCMonitorDateFormat::GetEventVersionMajor() | |
100 | { | |
101 | // retrun event version (16-32 bit) | |
102 | return (Int_t)(GetEventVersion()>>16); | |
103 | } | |
104 | ||
105 | //____________________________________________________________________________ | |
106 | Int_t AliTPCMonitorDateFormat::GetEventVersionMinor() | |
107 | { | |
108 | // return event version (0-15 bit) | |
109 | return (Int_t)(GetEventVersion()&0x0000ffff); | |
110 | } | |
111 | ||
112 | //____________________________________________________________________________ | |
113 | Bool_t AliTPCMonitorDateFormat::IsEventSuperEvent() | |
114 | { | |
115 | // Check if event ist super event | |
116 | Bool_t retval; | |
117 | if(TEST_SYSTEM_ATTRIBUTE( event->eventTypeAttribute, ATTR_SUPER_EVENT ) == 1) | |
118 | retval = true; | |
119 | else | |
120 | retval = false; | |
121 | return retval; | |
122 | } | |
123 | ||
124 | //____________________________________________________________________________ | |
125 | Bool_t AliTPCMonitorDateFormat::IsEventStartOfRun() | |
126 | { | |
127 | // Check if event ist Start of Run | |
128 | Bool_t retval; | |
129 | if(event->eventType == START_OF_RUN) | |
130 | retval = true; | |
131 | else | |
132 | retval = false; | |
133 | return retval; | |
134 | } | |
135 | ||
136 | //____________________________________________________________________________ | |
137 | Bool_t AliTPCMonitorDateFormat::IsEventEndOfRun() | |
138 | { | |
139 | // Check if event is End of Run | |
140 | Bool_t retval; | |
141 | if(event->eventType == END_OF_RUN) | |
142 | retval = true; | |
143 | else | |
144 | retval = false; | |
145 | return retval; | |
146 | } | |
147 | ||
148 | //____________________________________________________________________________ | |
149 | Bool_t AliTPCMonitorDateFormat::IsEventPhysicsEvent() | |
150 | { | |
151 | // Check if event is Physics event | |
152 | Bool_t retval; | |
153 | if(event->eventType == PHYSICS_EVENT) | |
154 | retval = true; | |
155 | else | |
156 | retval = false; | |
157 | return retval; | |
158 | } | |
159 | ||
160 | //____________________________________________________________________________ | |
161 | Bool_t AliTPCMonitorDateFormat::IsEventSwapped() | |
162 | { | |
163 | // Check if event is swapped | |
164 | Bool_t retval; | |
165 | if(TEST_SYSTEM_ATTRIBUTE( event->eventTypeAttribute, ATTR_EVENT_SWAPPED ) == 1) | |
166 | retval = true; | |
167 | else | |
168 | retval = false; | |
169 | return retval; | |
170 | } | |
171 | ||
172 | //____________________________________________________________________________ | |
173 | Bool_t AliTPCMonitorDateFormat::IsEventWrongEndian() | |
174 | { | |
175 | // Check endian | |
176 | Bool_t retval; | |
177 | if(EVENT_MAGIC_NUMBER == event->eventMagic) | |
178 | retval = false; | |
179 | else | |
180 | retval = true; | |
181 | return retval; | |
182 | } | |
183 | ||
184 | ||
185 | //____________________________________________________________________________ | |
186 | void AliTPCMonitorDateFormat::GotoSubEventHeader() | |
187 | { | |
188 | // Set subevent Pointer to sub event | |
189 | if(IsEventSuperEvent() ==true){ | |
190 | fsubEventPtr = fdataPtr+GetEventHeaderSize(); | |
191 | subEvent = (struct eventHeaderStruct*) (fsubEventPtr); | |
192 | }else{ | |
193 | fsubEventPtr = fdataPtr; | |
194 | subEvent = (struct eventHeaderStruct*) (fsubEventPtr); | |
195 | } | |
196 | } | |
197 | ||
198 | //____________________________________________________________________________ | |
199 | void AliTPCMonitorDateFormat::GotoNextSubEventHeader() | |
200 | { | |
201 | // set subevent pointer to next sub event | |
202 | fsubEventPtr += GetSubEventSize(); | |
203 | subEvent = (struct eventHeaderStruct*) (fsubEventPtr); | |
204 | } | |
205 | ||
206 | //____________________________________________________________________________ | |
207 | Bool_t AliTPCMonitorDateFormat::IsLastSubEventHeader() | |
208 | { | |
209 | // Check if sub event is last sub event | |
210 | Bool_t retval; | |
211 | Int_t position; | |
212 | if(IsEventSuperEvent() ==true){ | |
213 | position = fsubEventPtr - fdataPtr; | |
214 | if( (position+GetSubEventSize()) < GetEventSize() ) | |
215 | retval = false; | |
216 | else | |
217 | retval = true; | |
218 | }else{ | |
219 | position = fsubEventPtr - fdataPtr; | |
220 | if( (position+GetSubEventSize()) < GetEventSize() ) | |
221 | retval = false; | |
222 | else | |
223 | retval = true; | |
224 | } | |
225 | return retval; | |
226 | } | |
227 | ||
228 | //____________________________________________________________________________ | |
229 | Int_t AliTPCMonitorDateFormat::GetSubEventSize() | |
230 | { | |
231 | // Return sub event size | |
232 | return (Int_t)subEvent->eventSize; | |
233 | } | |
234 | ||
235 | //____________________________________________________________________________ | |
236 | Int_t AliTPCMonitorDateFormat::GetSubEventHeaderSize() | |
237 | { | |
238 | // Return sub event header size | |
239 | return (Int_t)subEvent->eventHeadSize; | |
240 | } | |
241 | ||
242 | //____________________________________________________________________________ | |
243 | Int_t AliTPCMonitorDateFormat::GetSubEventLDC() | |
244 | { | |
245 | // Return sub event LDC | |
246 | return (Int_t)subEvent->eventLdcId; | |
247 | } | |
248 | ||
249 | //____________________________________________________________________________ | |
250 | Int_t AliTPCMonitorDateFormat::GetSubEventGDC() | |
251 | { | |
252 | // return sub event GDC | |
253 | return (Int_t)subEvent->eventGdcId; | |
254 | } | |
255 | ||
256 | ||
257 | //____________________________________________________________________________ | |
258 | Bool_t AliTPCMonitorDateFormat::IsSubEventSuperEvent() | |
259 | { | |
260 | // Check if sub event is super event | |
261 | Bool_t retval; | |
262 | if(TEST_SYSTEM_ATTRIBUTE( subEvent->eventTypeAttribute, ATTR_SUPER_EVENT ) == 1) | |
263 | retval = true; | |
264 | else | |
265 | retval = false; | |
266 | return retval; | |
267 | } | |
268 | ||
269 | //____________________________________________________________________________ | |
270 | Bool_t AliTPCMonitorDateFormat::IsSubEventStartOfRun() | |
271 | { | |
272 | // Check if sub event is start of run | |
273 | Bool_t retval; | |
274 | if(subEvent->eventType == START_OF_RUN) | |
275 | retval = true; | |
276 | else | |
277 | retval = false; | |
278 | return retval; | |
279 | } | |
280 | ||
281 | //____________________________________________________________________________ | |
282 | Bool_t AliTPCMonitorDateFormat::IsSubEventEndOfRun() | |
283 | { | |
284 | // Check if sub event is end of run | |
285 | Bool_t retval; | |
286 | if(subEvent->eventType == END_OF_RUN) | |
287 | retval = true; | |
288 | else | |
289 | retval = false; | |
290 | return retval; | |
291 | } | |
292 | ||
293 | //____________________________________________________________________________ | |
294 | Bool_t AliTPCMonitorDateFormat::IsSubEventPhysicsEvent() | |
295 | { | |
296 | // Check if sub event is physics event | |
297 | Bool_t retval; | |
298 | if(subEvent->eventType == PHYSICS_EVENT) | |
299 | retval = true; | |
300 | else | |
301 | retval = false; | |
302 | return retval; | |
303 | } | |
304 | ||
305 | //____________________________________________________________________________ | |
306 | void AliTPCMonitorDateFormat::GotoFirstEquipment() | |
307 | { | |
308 | // Set current pointer to first equipment | |
309 | fcurrentPtr = fsubEventPtr + GetSubEventHeaderSize(); | |
310 | equipment = (struct equipmentHeaderStruct*) (fcurrentPtr); | |
311 | } | |
312 | ||
313 | //____________________________________________________________________________ | |
314 | void AliTPCMonitorDateFormat::GotoNextEquipment() | |
315 | { | |
316 | // Set current pointer to next equipment | |
317 | fcurrentPtr += GetEquipmentSize(); | |
318 | equipment = (struct equipmentHeaderStruct*) (fcurrentPtr); | |
319 | } | |
320 | ||
321 | //____________________________________________________________________________ | |
322 | Bool_t AliTPCMonitorDateFormat::IsLastEquipment() | |
323 | { | |
324 | // Check if equipment is last equipment | |
325 | Bool_t retval; | |
326 | Int_t position; | |
327 | position = fcurrentPtr - fsubEventPtr; | |
328 | if( (position+GetEquipmentSize()) < GetSubEventSize() ) | |
329 | retval = false; | |
330 | else | |
331 | retval = true; | |
332 | return retval; | |
333 | } | |
334 | ||
335 | //____________________________________________________________________________ | |
336 | Int_t AliTPCMonitorDateFormat::GetEquipmentSize() | |
337 | { | |
338 | // Return equipment size | |
339 | return (Int_t)equipment->equipmentSize; | |
340 | } | |
341 | ||
342 | //____________________________________________________________________________ | |
343 | Int_t AliTPCMonitorDateFormat::GetPayloadSize() | |
344 | { | |
345 | // Return payload slze | |
346 | Int_t retval = 0; | |
347 | if(GetEventVersion() < 196610){ | |
348 | retval = (Int_t)equipment->equipmentSize; | |
349 | }else{ | |
350 | retval = (Int_t)equipment->equipmentSize - GetEquipmentHeaderSize(); | |
351 | } | |
352 | return retval; | |
353 | } | |
354 | ||
355 | //____________________________________________________________________________ | |
356 | Int_t AliTPCMonitorDateFormat::GetEquipmentType() | |
357 | { | |
358 | // Return equipment type | |
359 | return (Int_t)equipment->equipmentType; | |
360 | } | |
361 | ||
362 | //____________________________________________________________________________ | |
363 | Int_t AliTPCMonitorDateFormat::GetEquipmentID() | |
364 | { | |
365 | // Return equipment ID | |
366 | return (Int_t)equipment->equipmentId; | |
367 | } | |
368 | ||
369 | //____________________________________________________________________________ | |
370 | Int_t* AliTPCMonitorDateFormat::GetEquipmentTypeAttribute() | |
371 | { | |
372 | // Return equipment type attribute | |
373 | return (Int_t*)equipment->equipmentTypeAttribute; | |
374 | } | |
375 | ||
376 | //____________________________________________________________________________ | |
377 | Int_t AliTPCMonitorDateFormat::GetEquipmentBasicSize() | |
378 | { | |
379 | // Return equipment basic size | |
380 | return (Int_t)equipment->equipmentBasicElementSize; | |
381 | } | |
382 | ||
383 | //____________________________________________________________________________ | |
384 | Int_t AliTPCMonitorDateFormat::GetEquipmentHeaderSize() | |
385 | { | |
386 | // Return equipment header size | |
387 | return sizeof(struct equipmentHeaderStruct); | |
388 | } | |
389 | ||
390 | ||
391 | //____________________________________________________________________________ | |
392 | Char_t *AliTPCMonitorDateFormat::GetFirstDataPointer() | |
393 | { | |
394 | // Return data pointer (after equipment header) | |
395 | Char_t *datapointer; | |
396 | if(GetEventVersion() < 196610){ | |
397 | fcurrentPtr += GetEquipmentHeaderSize(); | |
398 | datapointer = fcurrentPtr; | |
399 | }else{ | |
400 | datapointer = fcurrentPtr + GetEquipmentHeaderSize(); | |
401 | } | |
402 | return datapointer; | |
403 | ||
404 | } | |
405 | ||
406 | //____________________________________________________________________________ | |
407 | Int_t AliTPCMonitorDateFormat::GetPosition() | |
408 | { | |
409 | // Return current position relative to start of event | |
410 | Int_t retval = (Int_t) (fcurrentPtr - fdataPtr); | |
411 | return retval; | |
412 | } | |
413 | ||
414 | //____________________________________________________________________________ | |
415 | Int_t AliTPCMonitorDateFormat::GetPositionSubEvent() | |
416 | { | |
417 | // Return subevent position relative to start of event | |
418 | Int_t retval = (Int_t) (fsubEventPtr - fdataPtr); | |
419 | return retval; | |
420 | } | |
421 |