GET library
GETMetaFrame.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETMetaFrame.hh
3  *
4  * Include file defining GET data format frames.
5  */
6 //======================================================================
7 
8 #ifndef GET_META_FRAME_HH
9 #define GET_META_FRAME_HH
10 
11 //----------------------------------------------------------------------
12 
13 /*! \union GETFrameItem
14  * Description of a GET data item.
15  */
16 typedef union
17 {
18  byte raw[4]; ///< Bytes value
19 
20  struct
21  {
22  u_int sample:12; ///< Data sample value (0-4095)
23  u_int unused:2; ///< Unused bits
24  u_int buckIdx:9; ///< Time bucket (0-511)
25  u_int chanIdx:7; ///< Channel number (0-67)
26  u_int agetIdx:2; ///< AGet chip (0-3)
27 
28  } data; ///< Bits decomposition of the data
29 
30 } GETFrameItem;
31 
32 //----------------------------------------------------------------------
33 
34 /*! \union GETFrameHeaderId
35  * Identification part of the CoBo data frame header.
36  */
37 typedef union
38 {
39  byte raw[28]; ///< Header data as bytes array
40 
41  struct
42  {
43  u_int metaType:8; ///< Type of data (block size)
44  u_int frameSize:24; ///< Total frame size in blocks (including header)
45  // ---- 32 bits cut
46  u_int dataSource:8; ///< data source idetifier (detector id)
47  u_int frameType:16; ///< GET data frame
48  u_int revision:8; ///< Data format revision
49  // ---- 32 bits cut
50  u_int headerSize:16; ///< Number of header block units (N x 64 bytes)
51  u_int itemSize:16; ///< Size of data items
52  // ---- 32 bits cut
53  u_int nItems:32; ///< Number of items in the frame
54  // ---- 32 bits cut
55  u_int eventTimeLo:16; ///< Time stamp
56  u_int eventTimeMe:16; ///< Time stamp
57  // ---- 32 bits cut
58  u_int eventTimeHi:16; ///< Time stamp
59  u_int eventIdLo:16; ///< Event number
60  // ---- 32 bits cut
61  u_int eventIdHi:16; ///< Event number
62  u_int coboId:8; ///< CoBo id number
63  u_int asadId:8; ///< AsAd id number
64 
65  } data; ///< Elements decomposition of the header data (at bytes level).
67 
68 
69 //----------------------------------------------------------------------
70 #endif
Definition: GETMetaFrame.hh:16
Definition: GETMetaFrame.hh:37