]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCMonitorDateFormat.cxx
The package was overwriting the rootcint flags. This was fixed by applying the necess...
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitorDateFormat.cxx
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$
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
21 */ 
22
23 #include "AliTPCMonitorDateFormat.h"
24 #include "event.h"
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