MiniballSort
Loading...
Searching...
No Matches
MbsFormat.hh
Go to the documentation of this file.
1// A class to store and rea MBS format data
2// Shamelessly stolen from Nigel Warr (IKP Koln)
3// who will disapprove of this poor implmentation
4//
5// Additional elements for MED files stolen from Marabou
6// written by Rudi Lutter
7
8#ifndef __MBSFORMAT_HH
9#define __MBSFORMAT_HH
10
11#include <TROOT.h>
12#include <iostream>
13#include <string>
14#include <cstring>
15#include <ctime>
16#include <cstdio>
17#include <sys/mman.h>
18#include <sys/socket.h>
19#include <netinet/in.h>
20#include <arpa/inet.h>
21#include <unistd.h>
22
23// MBS defines header
24#ifndef __MBSDEFINES_HH
25# include "MbsDefines.hh"
26#endif
27
28
29// String
30struct cv_string {
31 UShort_t string_l;
32 Char_t string[78];
33};
34
35// File header
36typedef struct s_filhe {
37 UInt_t l_dlen;
38 UShort_t i_type;
39 UShort_t i_subtype;
40 UShort_t i_used;
41 UShort_t i_frag;
42 UInt_t l_buf;
43 UInt_t l_evt;
45 UInt_t l_stime[2];
46 UInt_t l_free[4];
47 UShort_t i_label_l;
48 Char_t c_label[30];
49 UShort_t i_file_l;
50 Char_t c_file[86];
51 UShort_t i_user_l;
52 Char_t c_user[30];
53 Char_t s_time[24];
54 UShort_t i_run_l;
55 Char_t c_run[66];
56 UShort_t i_exp_l;
57 Char_t c_exp[66];
58 UInt_t l_lines;
59 struct cv_string s_strings[30];
60 void Show() const {
61 printf("File: dlen=%d type=[%d,%d] used=%d frag=%d buf=%d evt=%d current_i=%d stime=%d.%d free=(%d,%d,%d,%d)\n",
63 l_current_i, l_stime[0], l_stime[1], l_free[0], l_free[1],
64 l_free[2], l_free[3]);
65 printf("\tlabel=");
66 for (UInt_t i = 0; i < i_label_l; i++) printf("%c", c_label[i]);
67 printf("\n\tfile=");
68 for (UInt_t i = 0; i < i_file_l; i++) printf("%c", c_file[i]);
69 printf("\n\tuser=");
70 for (UInt_t i = 0; i < i_user_l; i++) printf("%c", c_user[i]);
71 printf("\n\ttime=%s\n\trun=", s_time);
72 for (UInt_t i = 0; i < i_run_l; i++) printf("%c", c_run[i]);
73 printf("\n\texp=");
74 for (UInt_t i = 0; i < i_exp_l; i++) printf("%c", c_exp[i]);
75 printf("\n");
76 };
78
79// Buffer header
80typedef struct s_bufhe {
81 UInt_t l_dlen;
82 UShort_t i_type;
83 UShort_t i_subtype;
84 UShort_t i_used;
85 UChar_t h_begin;
86 UChar_t h_end;
87 UInt_t l_buf;
88 UInt_t l_evt;
89 UInt_t l_current_i;
90 UInt_t l_time[2];
91 UInt_t l_free[4];
92 void Show() const {
93 time_t t = (time_t)l_time[0];
94 printf("Buffer: dlen=%d type=[%d,%d] used=%d begin=%d end=%d buf=%d evt=%d current_i=%d time=%d.%d free=(%d,%d,%d,%d) %s",
96 l_current_i, l_time[0], l_time[1], l_free[0], l_free[1],
97 l_free[2], l_free[3], ctime(&t));
98 };
100
101// Full event header
102typedef struct s_vehe {
103 UInt_t l_dlen;
104 UShort_t i_type;
105 UShort_t i_subtype;
106 UShort_t i_dummy;
107 UShort_t i_trigger;
108 UInt_t l_count;
109 void Show() const {
110 printf("Event dlen=%d type=[%d,%d] dummy=%d trigger=%d count=%d\n",
112 };
114
115// Main event header
116typedef struct s_evhe {
117 UInt_t l_dlen;
118 UShort_t i_type;
119 UShort_t i_subtype;
121
122// GSI VME event header
123typedef struct s_veshe {
124 UInt_t l_dlen;
125 UShort_t i_type;
126 UShort_t i_subtype;
127 UShort_t i_procid;
128 UChar_t h_control;
129 UChar_t h_subcrate;
131
132//-----------------------------------------------------------------------------
133// MBS Buffer Element class for MED files
135
136private:
137
138 unsigned int type;
139 std::string descr;
140 int hsize;
141 int dsize;
142 int hit;
143
144public:
145
146 // Default constructor
148 type = 0;
149 descr = "";
150 hsize = 0;
151 hit = 0;
152 };
153
154 // Setting onstructor
155 MBSBufferElem( unsigned int _type, std::string _descr, int _hsize, int _dsize ){
156 type = _type;
157 descr = _descr;
158 hsize = _hsize;
159 dsize = _dsize;
160 hit = 0;
161 };
162
163 // Destructor
165
166 // Setter functions
167 void SetType( unsigned int _type, std::string _descr, int _hsize, int _dsize ){
168 type = _type;
169 descr = _descr;
170 hsize = _hsize;
171 dsize = _dsize;
172 hit = 0;
173 };
174 void SetType( unsigned int _type, std::string _descr ){
175 type = _type;
176 descr = _descr;
177 hsize = sizeof(s_veshe);
178 dsize = sizeof(unsigned short);
179 hit = 0;
180 };
181
182 // Getter functions
183 std::string GetDescription() const { return descr; };
184 unsigned int GetType() const { return type; };
185 int GetHeaderSize() const { return hsize; };
186 int GetDataSize() const { return dsize; };
187
188 // Other functions
189 void IncrementHit(){ hit++; };
190 void ResetHits(){ hit = 0; };
191
192};
193
194//-----------------------------------------------------------------------------
195// MBS subevent class
197
198private:
199
200 std::vector<unsigned short> data;
201 unsigned int data_len;
202 unsigned long seventid;
203 unsigned char proctype;
204 unsigned char crateid;
205 unsigned short modid;
207
208public:
209
210 // Tracking data - 16-bit words
211 void AddData( short datum ){
212 data.push_back( datum );
213 };
214 short GetData( unsigned int i ) const {
215 if( i < data.size() ) return data.at(i);
216 return 0;
217 };
218 unsigned int GetNumberOfData() const { return data.size(); };
219
220 // Tracking data - 32-bit words
221 void AddData32( int datum ){
222 data.push_back( ( datum >> 16 ) & 0x0000ffff );
223 data.push_back( datum & 0x0000ffff );
224 };
225 int GetData32( unsigned int i ) const {
226 if( i < data.size()/2 )
227 return data.at(i*2+1) | (( data.at(i*2) << 16 ) & 0xffff0000);
228 return 0;
229 };
230 unsigned int GetNumberOfData32() const { return data.size()/2; };
231
232 // Getters
234 unsigned int GetSubEventType() const { return stype.GetType(); };
235 std::string GetSubEventDescription() const { return stype.GetDescription(); };
236 unsigned int GetSubEventDataSize() const { return stype.GetDataSize(); };
237 unsigned long GetSubEventID() const { return seventid; };
238 unsigned int GetDataLength() const { return data_len; };
239 unsigned char GetProcessorType() const { return proctype; };
240 unsigned char GetCrateID() const { return crateid; };
241 unsigned short GetModuleID() const { return modid; };
242
243 // Setters
244 void SetSubEventElement( MBSBufferElem _stype ){ stype = _stype; };
245 void SetSubEventID( unsigned long id ){ seventid = id; };
246 void SetDataLength( unsigned int len ){ data_len = len; };
247 void SetProcessorType( unsigned char ptype ){ proctype = ptype; };
248 void SetCrateID( unsigned char id ){ crateid = id; };
249 void SetModuleID( unsigned short id ){ modid = id; };
250
251 // Show function
252 inline void Show() const {
253 std::cout << "SubEventID: " << GetSubEventID();
254 std::cout << ", type = " << std::hex << GetSubEventType();
255 std::cout << ", length = " << std::dec << data_len;
256 std::cout << std::endl;
257 for( unsigned int i = 0; i < GetNumberOfData(); i++ )
258 std::cout << i << ": " << std::hex << GetData(i) << std::endl;
259 std::cout << std::dec << std::endl;
260 }
261
262};
263
264//-----------------------------------------------------------------------------
265// MBS event class
266class MBSEvent {
267
268private:
269
270 std::vector<MBSSubEvent> sevts;
271 std::vector<UInt_t> data;
272 ULong_t eventid;
273
274public:
275
276 // Get the trigger
277 UInt_t GetTrigger() const {
278 if( data.size() < 1 ) return(0);
279 return( data[0] >> 16 );
280 };
281
282 // Get the counter
283 UInt_t GetCount() const {
284 if( data.size() < 2 ) return(0);
285 return( data[1] );
286 };
287
288 // Get the number of actual 32-bit data words
289 size_t GetNData() const {
290 return( data.size() < 2 ? 0 : data.size() - 2 );
291 };
292
293 // Get the actual data (without the trigger and counter) as 32-bit words
294 const UInt_t *GetData() const {
295 if( data.size() < 2 ) return(nullptr);
296 return( &data[2] );
297 };
298
299 // Get event id
300 ULong_t GetEventID() const { return eventid; };
301
302 // set event id
303 void SetEventID( unsigned long long id ){ eventid = id; };
304
305 // Store the data - first the trigger, then the counter, then the actual
306 // event data
307 void Store( UInt_t datum ) {
308 data.push_back(datum);
309 };
310
311 // Store the subevent
313 sevts.push_back(_sevt);
314 };
315
316 // Get the sub events
317 unsigned int GetNumberOfSubEvents() const { return sevts.size(); };
318 const MBSSubEvent *GetSubEvent( unsigned int i ) const {
319 if( i < sevts.size() ) return &sevts[i];
320 else return nullptr;
321 };
322
323 // Clear the event
324 void Clear() {
325 sevts.clear();
326 data.clear();
327 };
328
329 // Show the contents of the event
330 void Show( UInt_t verbose = 0 ) const {
331 printf( "Event %d: trigger %d\n", GetCount(), GetTrigger() );
332 if( verbose < 1 ) return;
333 printf("\t");
334 for( UInt_t i = 0; i < GetNData(); i++ ) {
335 if( (i % 4) == 0 && i ) printf("\n\t");
336 printf("%08X ", GetData()[i]);
337 }
338 printf("\n");
339 };
340};
341
342//-----------------------------------------------------------------------------
343// MBS class
344class MBS {
345
346private:
347
348 std::string filename;
349 std::string server;
350 unsigned short port;
351 FILE *fp;
352 UInt_t socket_id;
356 UInt_t pos;
358 s_filhe *fh; // file header
359 s_bufhe *bh; // buffer header
360 s_evhe *eh; // event header
361 s_vehe *vh; // vme event header
362 s_evhe *sh; // sub event header
363 s_veshe *vsh; // vme sub event header
364 UInt_t used; // Bytes used in buffer including header
365 int evtsiz; // in bytes
366 long long start_ts = 0;
367 long long buf_ts;
368 bool running = false;
369 bool eof = false;
370 unsigned int trigger_id;
371
372 // For med files
378
379 // Buffer elements
380 std::vector<MBSBufferElem> buffer_types;
381 std::vector<MBSBufferElem> event_types;
382 std::vector<MBSBufferElem> sevent_types;
383 std::vector<MBSBufferElem> triggers;
384
385 const UChar_t *ptr;
386 size_t len;
387 Int_t elen;
388 Int_t slen;
389 Int_t vlen;
390 UInt_t etype;
391 UInt_t stype;
392 Int_t current;
393 UInt_t bufsize;
394 UChar_t byteorder;
395 UChar_t control;
396 UChar_t crateid;
397 UShort_t procid;
398
399public:
400
401 // Default constructor
402 MBS();
403
404 // Destructor
405 ~MBS(){};
406
407 // Open and close functions
408 void OpenLmdFile( std::string _filename );
409 void OpenMedFile( std::string _filename );
410 int OpenEventServer( std::string _server, unsigned short _port );
411 void CloseFile();
412 void CloseEventServer();
413
414 void SetBufferSize( unsigned int size ){ bufsize = size; };
415
416 // Get number of buffers
417 UInt_t GetNBuffers() const {
418 return( len ? len / bufsize - 1 : 0 );
419 };
420
421 // Get the buffer count
422 UInt_t GetBufferCount(){ return current_buffer; };
423
424 // Get the nth buffer
425 const UChar_t* GetBuffer( UInt_t i );
426
427 // Get the next buffer
428 const UChar_t* GetNextBuffer() {
429 return( GetBuffer(++current_buffer) );
430 };
431
432 // Get the next buffer from the stream
433 const UChar_t* GetBufferFromStream();
434
435 // Get the next event from file
436 const MBSEvent* GetNextLmdEvent();
437 const MBSEvent* GetNextMedEvent();
438
439 // Get the next event from stream
441
442 // Event types getter
443 int GetEventType(){ return current_etype->GetType(); };
444
445 // Check if it's running
446 bool IsRunning(){ return running; };
447 bool IsEof(){ return eof; };
448
449 // Byte order conversions
450 void ConvertEventHeader();
452 void CheckSubEventType();
453 void ConvertVmeHeader();
454 std::vector<short> GetByteSwapShort( char *in, int count, int bo ); // many values
455 short GetByteSwapShort( char *in, int bo ){
456 return GetByteSwapShort( in, 1, bo )[0];
457 return GetByteSwapShort( in, 1, bo )[0];
458 }; // just one value
459 std::vector<int> GetByteSwapInt( char *in, int count, int bo ); // many values
460 int GetByteSwapInt( char *in, int bo ){
461 return GetByteSwapInt( in, 1, bo )[0];
462 }; // just one value
463 std::string GetByteSwapString( char *in, int count, int bo );
464
465 // Show the file header
467 if(!fp) return;
468 fh = (s_filhe *)ptr;
469 fh->Show();
470 };
471
472 // Reset hit count at the start of the file
474 for( unsigned int i = 0; i < buffer_types.size(); i++ )
475 buffer_types[i].ResetHits();
476 for( unsigned int i = 0; i < event_types.size(); i++ )
477 event_types[i].ResetHits();
478 for( unsigned int i = 0; i < sevent_types.size(); i++ )
479 sevent_types[i].ResetHits();
480 for( unsigned int i = 0; i < triggers.size(); i++ )
481 triggers[i].ResetHits();
482 };
483
484};
485
486
487#endif
struct s_evhe s_evhe
struct s_vehe s_vehe
struct s_veshe s_veshe
struct s_filhe s_filhe
struct s_bufhe s_bufhe
void SetType(unsigned int _type, std::string _descr, int _hsize, int _dsize)
Definition MbsFormat.hh:167
int hsize
header size (bytes)
Definition MbsFormat.hh:140
unsigned int GetType() const
Definition MbsFormat.hh:184
MBSBufferElem(unsigned int _type, std::string _descr, int _hsize, int _dsize)
Definition MbsFormat.hh:155
std::string descr
description
Definition MbsFormat.hh:139
void ResetHits()
Definition MbsFormat.hh:190
void IncrementHit()
Definition MbsFormat.hh:189
int dsize
data size (bytes)
Definition MbsFormat.hh:141
int GetDataSize() const
Definition MbsFormat.hh:186
void SetType(unsigned int _type, std::string _descr)
Definition MbsFormat.hh:174
unsigned int type
element type
Definition MbsFormat.hh:138
int GetHeaderSize() const
Definition MbsFormat.hh:185
std::string GetDescription() const
Definition MbsFormat.hh:183
void SetEventID(unsigned long long id)
Definition MbsFormat.hh:303
void StoreSubEvent(MBSSubEvent _sevt)
Definition MbsFormat.hh:312
ULong_t eventid
Definition MbsFormat.hh:272
std::vector< UInt_t > data
Definition MbsFormat.hh:271
const MBSSubEvent * GetSubEvent(unsigned int i) const
Definition MbsFormat.hh:318
unsigned int GetNumberOfSubEvents() const
Definition MbsFormat.hh:317
void Store(UInt_t datum)
Definition MbsFormat.hh:307
size_t GetNData() const
Definition MbsFormat.hh:289
UInt_t GetTrigger() const
Definition MbsFormat.hh:277
ULong_t GetEventID() const
Definition MbsFormat.hh:300
void Clear()
Definition MbsFormat.hh:324
UInt_t GetCount() const
Definition MbsFormat.hh:283
std::vector< MBSSubEvent > sevts
Definition MbsFormat.hh:270
const UInt_t * GetData() const
Definition MbsFormat.hh:294
void Show(UInt_t verbose=0) const
Definition MbsFormat.hh:330
short GetData(unsigned int i) const
Definition MbsFormat.hh:214
MBSBufferElem stype
type class identifier
Definition MbsFormat.hh:206
void SetSubEventID(unsigned long id)
Definition MbsFormat.hh:245
unsigned int data_len
length of the sub event
Definition MbsFormat.hh:201
int GetData32(unsigned int i) const
Definition MbsFormat.hh:225
std::vector< unsigned short > data
Definition MbsFormat.hh:200
void SetSubEventElement(MBSBufferElem _stype)
Definition MbsFormat.hh:244
unsigned char GetProcessorType() const
Definition MbsFormat.hh:239
unsigned char crateid
crate number
Definition MbsFormat.hh:204
unsigned int GetDataLength() const
Definition MbsFormat.hh:238
MBSBufferElem GetSubEventElement() const
Definition MbsFormat.hh:233
unsigned int GetNumberOfData32() const
Definition MbsFormat.hh:230
unsigned short modid
module ID
Definition MbsFormat.hh:205
unsigned long GetSubEventID() const
Definition MbsFormat.hh:237
unsigned char GetCrateID() const
Definition MbsFormat.hh:240
unsigned int GetSubEventDataSize() const
Definition MbsFormat.hh:236
unsigned short GetModuleID() const
Definition MbsFormat.hh:241
void SetProcessorType(unsigned char ptype)
Definition MbsFormat.hh:247
void Show() const
Definition MbsFormat.hh:252
void SetDataLength(unsigned int len)
Definition MbsFormat.hh:246
unsigned char proctype
processor type
Definition MbsFormat.hh:203
unsigned long seventid
subevent counter
Definition MbsFormat.hh:202
void SetCrateID(unsigned char id)
Definition MbsFormat.hh:248
unsigned int GetSubEventType() const
Definition MbsFormat.hh:234
unsigned int GetNumberOfData() const
Definition MbsFormat.hh:218
std::string GetSubEventDescription() const
Definition MbsFormat.hh:235
void AddData(short datum)
Definition MbsFormat.hh:211
void SetModuleID(unsigned short id)
Definition MbsFormat.hh:249
void AddData32(int datum)
Definition MbsFormat.hh:221
UShort_t procid
Definition MbsFormat.hh:397
Int_t vlen
Definition MbsFormat.hh:389
UInt_t socket_id
Definition MbsFormat.hh:352
std::vector< short > GetByteSwapShort(char *in, int count, int bo)
Definition MbsFormat.cc:595
UChar_t byteorder
Definition MbsFormat.hh:394
void CloseFile()
Definition MbsFormat.cc:172
s_evhe * sh
Definition MbsFormat.hh:362
std::string server
Definition MbsFormat.hh:349
Int_t server_id
Definition MbsFormat.hh:353
MBSBufferElem * current_btype
Definition MbsFormat.hh:373
const MBSEvent * GetNextLmdEvent()
Definition MbsFormat.cc:235
s_filhe * fh
Definition MbsFormat.hh:358
void OpenLmdFile(std::string _filename)
Definition MbsFormat.cc:72
long long buf_ts
Definition MbsFormat.hh:367
UInt_t stype
Definition MbsFormat.hh:391
int GetEventType()
Definition MbsFormat.hh:443
const MBSEvent * GetNextMedEvent()
Definition MbsFormat.cc:300
void OpenMedFile(std::string _filename)
Definition MbsFormat.cc:113
MBSBufferElem * current_stype
Definition MbsFormat.hh:375
UInt_t current_subevt
Definition MbsFormat.hh:355
std::string GetByteSwapString(char *in, int count, int bo)
Definition MbsFormat.cc:696
UInt_t GetNBuffers() const
Definition MbsFormat.hh:417
MBS()
Definition MbsFormat.cc:4
void ConvertVmeHeader()
Definition MbsFormat.cc:581
UChar_t control
Definition MbsFormat.hh:395
int OpenEventServer(std::string _server, unsigned short _port)
Definition MbsFormat.cc:181
const UChar_t * GetNextBuffer()
Definition MbsFormat.hh:428
const UChar_t * ptr
Definition MbsFormat.hh:385
Int_t slen
Definition MbsFormat.hh:388
void SetBufferSize(unsigned int size)
Definition MbsFormat.hh:414
std::string filename
Definition MbsFormat.hh:348
bool running
Definition MbsFormat.hh:368
s_veshe * vsh
Definition MbsFormat.hh:363
short GetByteSwapShort(char *in, int bo)
Definition MbsFormat.hh:455
Int_t elen
Definition MbsFormat.hh:387
const UChar_t * GetBufferFromStream()
Definition MbsFormat.cc:225
const MBSEvent * GetNextEventFromStream()
Definition MbsFormat.cc:495
void ConvertEventHeader()
Definition MbsFormat.cc:543
Int_t current
Definition MbsFormat.hh:392
UInt_t pos
Definition MbsFormat.hh:356
bool eof
Definition MbsFormat.hh:369
MBSBufferElem * current_etype
Definition MbsFormat.hh:374
std::vector< MBSBufferElem > event_types
Definition MbsFormat.hh:381
~MBS()
Definition MbsFormat.hh:405
unsigned int trigger_id
Definition MbsFormat.hh:370
UInt_t bufsize
Definition MbsFormat.hh:393
bool IsEof()
Definition MbsFormat.hh:447
int evtsiz
Definition MbsFormat.hh:365
long long start_ts
Definition MbsFormat.hh:366
size_t len
Definition MbsFormat.hh:386
s_vehe * vh
Definition MbsFormat.hh:361
UInt_t etype
Definition MbsFormat.hh:390
UInt_t used
Definition MbsFormat.hh:364
MBSEvent evt
Definition MbsFormat.hh:357
unsigned short port
Definition MbsFormat.hh:350
s_bufhe * bh
Definition MbsFormat.hh:359
std::vector< MBSBufferElem > sevent_types
Definition MbsFormat.hh:382
void ConvertSubEventHeader()
Definition MbsFormat.cc:569
s_evhe * eh
Definition MbsFormat.hh:360
int GetByteSwapInt(char *in, int bo)
Definition MbsFormat.hh:460
UInt_t GetBufferCount()
Definition MbsFormat.hh:422
void ResetHitCount()
Definition MbsFormat.hh:473
void ShowFileHeader()
Definition MbsFormat.hh:466
MBSBufferElem * current_trigger
Definition MbsFormat.hh:376
FILE * fp
Definition MbsFormat.hh:351
std::vector< MBSBufferElem > buffer_types
Definition MbsFormat.hh:380
void CheckSubEventType()
Definition MbsFormat.cc:553
UInt_t current_buffer
Definition MbsFormat.hh:354
std::vector< MBSBufferElem > triggers
Definition MbsFormat.hh:383
MBSBufferElem * sevent_type_raw
Definition MbsFormat.hh:377
UChar_t crateid
Definition MbsFormat.hh:396
std::vector< int > GetByteSwapInt(char *in, int count, int bo)
Definition MbsFormat.cc:629
bool IsRunning()
Definition MbsFormat.hh:446
const UChar_t * GetBuffer(UInt_t i)
Definition MbsFormat.cc:508
void CloseEventServer()
Definition MbsFormat.cc:219
UShort_t string_l
Definition MbsFormat.hh:31
UInt_t l_evt
Number of fragments.
Definition MbsFormat.hh:88
UShort_t i_type
Type.
Definition MbsFormat.hh:82
UInt_t l_dlen
Length of data field in 16-bit words.
Definition MbsFormat.hh:81
UInt_t l_time[2]
64-bit timestamp since 1970
Definition MbsFormat.hh:90
UInt_t l_buf
Current buffer number.
Definition MbsFormat.hh:87
UChar_t h_end
Fragment at begin of buffer.
Definition MbsFormat.hh:86
void Show() const
Definition MbsFormat.hh:92
UChar_t h_begin
Fragment at end of buffer.
Definition MbsFormat.hh:85
UInt_t l_current_i
Index.
Definition MbsFormat.hh:89
UShort_t i_subtype
Subtype.
Definition MbsFormat.hh:83
UInt_t l_free[4]
Free.
Definition MbsFormat.hh:91
UShort_t i_used
Used length of data field in 16-bit words.
Definition MbsFormat.hh:84
UShort_t i_subtype
Subtype.
Definition MbsFormat.hh:119
UShort_t i_type
Type.
Definition MbsFormat.hh:118
UInt_t l_dlen
Length of data in 16-bit words.
Definition MbsFormat.hh:117
Char_t c_file[86]
Definition MbsFormat.hh:50
void Show() const
Definition MbsFormat.hh:60
UInt_t l_current_i
Definition MbsFormat.hh:44
UInt_t l_evt
Definition MbsFormat.hh:43
Char_t c_run[66]
Definition MbsFormat.hh:55
UShort_t i_subtype
Definition MbsFormat.hh:39
Char_t c_exp[66]
Definition MbsFormat.hh:57
UShort_t i_file_l
Definition MbsFormat.hh:49
struct cv_string s_strings[30]
Definition MbsFormat.hh:59
Char_t c_label[30]
Definition MbsFormat.hh:48
UInt_t l_free[4]
Definition MbsFormat.hh:46
UShort_t i_user_l
Definition MbsFormat.hh:51
UShort_t i_used
Definition MbsFormat.hh:40
UShort_t i_exp_l
Definition MbsFormat.hh:56
UShort_t i_type
Definition MbsFormat.hh:38
Char_t s_time[24]
Definition MbsFormat.hh:53
UShort_t i_frag
Definition MbsFormat.hh:41
UInt_t l_buf
Definition MbsFormat.hh:42
UShort_t i_run_l
Definition MbsFormat.hh:54
Char_t c_user[30]
Definition MbsFormat.hh:52
UInt_t l_lines
Definition MbsFormat.hh:58
UInt_t l_stime[2]
Definition MbsFormat.hh:45
UShort_t i_label_l
Definition MbsFormat.hh:47
UInt_t l_dlen
Definition MbsFormat.hh:37
UInt_t l_dlen
Length of data in 16-bit words.
Definition MbsFormat.hh:103
void Show() const
Definition MbsFormat.hh:109
UInt_t l_count
Event number.
Definition MbsFormat.hh:108
UShort_t i_subtype
Subtype.
Definition MbsFormat.hh:105
UShort_t i_type
Type.
Definition MbsFormat.hh:104
UShort_t i_dummy
Not used.
Definition MbsFormat.hh:106
UShort_t i_trigger
Trigger.
Definition MbsFormat.hh:107
UChar_t h_control
processor type
Definition MbsFormat.hh:128
UShort_t i_type
type
Definition MbsFormat.hh:125
UInt_t l_dlen
data length + 2 in words
Definition MbsFormat.hh:124
UChar_t h_subcrate
crate number
Definition MbsFormat.hh:129
UShort_t i_subtype
subtype
Definition MbsFormat.hh:126
UShort_t i_procid
processor ID
Definition MbsFormat.hh:127