]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCMonitorDateFormat.cxx
New method to get the ratio between the expected and actual cluster shape. Will be...
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitorDateFormat.cxx
CommitLineData
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 18Revision 1.1 2007/09/17 10:23:31 cvetan
19New 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>
26ClassImp(AliTPCMonitorDateFormat)
27//____________________________________________________________________________
28AliTPCMonitorDateFormat::AliTPCMonitorDateFormat(Char_t* data){
29 // Constructor
30 fdataPtr = data;
31 fsubEventPtr = data;
32 fcurrentPtr = data;
33 event = (struct eventHeaderStruct*) fdataPtr;
34}
35
36//____________________________________________________________________________
37AliTPCMonitorDateFormat::~AliTPCMonitorDateFormat()
38{
39 // Destructor
40}
41
42//____________________________________________________________________________
43Int_t AliTPCMonitorDateFormat::GetEventSize()
44{
45 // Return event size
46 return (Int_t)event->eventSize;
47}
48
49//____________________________________________________________________________
50Int_t AliTPCMonitorDateFormat::GetEventHeaderSize()
51{
52 // Return event header size
53 return (Int_t)event->eventHeadSize;
54}
55
56//____________________________________________________________________________
57Int_t AliTPCMonitorDateFormat::GetEventHeaderBaseSize()
58{
59 // Return event header base size
60 return (Int_t)EVENT_HEAD_BASE_SIZE;
61}
62
63//____________________________________________________________________________
64Int_t AliTPCMonitorDateFormat::GetEventID()
65{
66 // Return event ID
67 return (Int_t)EVENT_ID_GET_NB_IN_RUN(event->eventId);
68}
69
70//____________________________________________________________________________
71Int_t AliTPCMonitorDateFormat::GetEventLDC()
72{
73 // Return event LDC
74 return (Int_t)event->eventLdcId;
75}
76
77//____________________________________________________________________________
78Int_t AliTPCMonitorDateFormat::GetEventGDC()
79{
80 // return event GDC
81 return (Int_t)event->eventGdcId;
82}
83
84//____________________________________________________________________________
85Int_t AliTPCMonitorDateFormat::GetEventRunID()
86{
87 // Return run ID
88 return (Int_t)event->eventRunNb;
89}
90
91//____________________________________________________________________________
92Int_t AliTPCMonitorDateFormat::GetEventVersion()
93{
94 // Return event version
95 return (Int_t)event->eventVersion;
96}
97
98//____________________________________________________________________________
99Int_t AliTPCMonitorDateFormat::GetEventVersionMajor()
100{
101 // retrun event version (16-32 bit)
102 return (Int_t)(GetEventVersion()>>16);
103}
104
105//____________________________________________________________________________
106Int_t AliTPCMonitorDateFormat::GetEventVersionMinor()
107{
108 // return event version (0-15 bit)
109 return (Int_t)(GetEventVersion()&0x0000ffff);
110}
111
112//____________________________________________________________________________
113Bool_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//____________________________________________________________________________
125Bool_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//____________________________________________________________________________
137Bool_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//____________________________________________________________________________
149Bool_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//____________________________________________________________________________
161Bool_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//____________________________________________________________________________
173Bool_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//____________________________________________________________________________
186void 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//____________________________________________________________________________
199void AliTPCMonitorDateFormat::GotoNextSubEventHeader()
200{
201 // set subevent pointer to next sub event
202 fsubEventPtr += GetSubEventSize();
203 subEvent = (struct eventHeaderStruct*) (fsubEventPtr);
204}
205
206//____________________________________________________________________________
207Bool_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//____________________________________________________________________________
229Int_t AliTPCMonitorDateFormat::GetSubEventSize()
230{
231 // Return sub event size
232 return (Int_t)subEvent->eventSize;
233}
234
235//____________________________________________________________________________
236Int_t AliTPCMonitorDateFormat::GetSubEventHeaderSize()
237{
238 // Return sub event header size
239 return (Int_t)subEvent->eventHeadSize;
240}
241
242//____________________________________________________________________________
243Int_t AliTPCMonitorDateFormat::GetSubEventLDC()
244{
245 // Return sub event LDC
246 return (Int_t)subEvent->eventLdcId;
247}
248
249//____________________________________________________________________________
250Int_t AliTPCMonitorDateFormat::GetSubEventGDC()
251{
252 // return sub event GDC
253 return (Int_t)subEvent->eventGdcId;
254}
255
256
257//____________________________________________________________________________
258Bool_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//____________________________________________________________________________
270Bool_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//____________________________________________________________________________
282Bool_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//____________________________________________________________________________
294Bool_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//____________________________________________________________________________
306void AliTPCMonitorDateFormat::GotoFirstEquipment()
307{
308 // Set current pointer to first equipment
309 fcurrentPtr = fsubEventPtr + GetSubEventHeaderSize();
310 equipment = (struct equipmentHeaderStruct*) (fcurrentPtr);
311}
312
313//____________________________________________________________________________
314void AliTPCMonitorDateFormat::GotoNextEquipment()
315{
316 // Set current pointer to next equipment
317 fcurrentPtr += GetEquipmentSize();
318 equipment = (struct equipmentHeaderStruct*) (fcurrentPtr);
319}
320
321//____________________________________________________________________________
322Bool_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//____________________________________________________________________________
336Int_t AliTPCMonitorDateFormat::GetEquipmentSize()
337{
338 // Return equipment size
339 return (Int_t)equipment->equipmentSize;
340}
341
342//____________________________________________________________________________
343Int_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//____________________________________________________________________________
356Int_t AliTPCMonitorDateFormat::GetEquipmentType()
357{
358 // Return equipment type
359 return (Int_t)equipment->equipmentType;
360}
361
362//____________________________________________________________________________
363Int_t AliTPCMonitorDateFormat::GetEquipmentID()
364{
365 // Return equipment ID
366 return (Int_t)equipment->equipmentId;
367}
368
369//____________________________________________________________________________
370Int_t* AliTPCMonitorDateFormat::GetEquipmentTypeAttribute()
371{
372 // Return equipment type attribute
373 return (Int_t*)equipment->equipmentTypeAttribute;
374}
375
376//____________________________________________________________________________
377Int_t AliTPCMonitorDateFormat::GetEquipmentBasicSize()
378{
379 // Return equipment basic size
380 return (Int_t)equipment->equipmentBasicElementSize;
381}
382
383//____________________________________________________________________________
384Int_t AliTPCMonitorDateFormat::GetEquipmentHeaderSize()
385{
386 // Return equipment header size
387 return sizeof(struct equipmentHeaderStruct);
388}
389
390
391//____________________________________________________________________________
392Char_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//____________________________________________________________________________
407Int_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//____________________________________________________________________________
415Int_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