GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> EDS / dev > edsd / rhel5-64


Interface   Data Structures   File List   Data Fields   Globals  

EBF_tem.h File Reference

Describes the TEM data format from the event builder. More...

#include <PBI/Endianness.h>

Classes

struct  _EBF_tem
 Lays out the format of the TEM data block from the event builder. More...
struct  _EBF_temDiagGCRC_bf
 Layout of the GCRC diagnostic block as bit fields. More...
union  _EBF_temDiagGCRC
 Union of the bit-field representation of one TEM GCRC diagnostic word with an uninterpretted 16-bit representation. More...
struct  _EBF_temDiagGCCC_np
 Layout of one a GCCC as negative/positive pair of GCRCs. More...
union  _EBF_temDiagGCCC
 Union of all the different representations of the one diagnostic GCCC layer word. More...
struct  _EBF_temDiagCal
 The CAL portion of the TEM diagnostic block. More...
struct  _EBF_temDiagGTCC_bf
 Layout of the GCRC diagnostic block as bit fields. More...
union  _EBF_temDiagGTCC
 Union of the 16-bit and bit-field representations of the TEM GTCC diagnostic contribution. More...
struct  _EBF_temDiagGTCCpair
 Layouts of the 32-bit word representing the odd and even halves of either and X/Y hi/lo set of GTCCs. More...
union  _EBF_temDiagTkr
 Union of the various representations of the TKR GTCCs. More...
struct  _EBF_temDiag
 Lays out the TEM diagnostic block. More...

Typedefs

typedef struct _EBF_tem EBF_tem
 Typedef for struct _EBF_tem.
typedef struct _EBF_temDiagGCRC_bf EBF_temDiagGCRC_bf
 Typedef of struct _EBF_temDiagGCRC_bf.
typedef union _EBF_temDiagGCRC EBF_temDiagGCRC
 Typedef for union _EBF_temDiagGCRC.
typedef struct _EBF_temDiagGCCC_np EBF_temDiagGCCC_np
 Typedef for struct _EBF_temDiagGCCC_np.
typedef enum
_EBF_TEMDIAG_GCCC_END_K 
EBF_TEMDIAG_GCCC_END_K
 Typedef for enum _EBF_TEMDIAG_GCCC_END_K.
typedef union _EBF_temDiagGCCC EBF_temDiagGCCC
 Typedef for union _EBF_temDiagGCCC.
typedef struct _EBF_temDiagCal EBF_temDiagCal
 Typedef for struct _EBF_temDiagCal.
typedef struct _EBF_temDiagGTCC_bf EBF_temDiagGTCC_bf
 Typedef for struct _EBF_temDiagGTCC_bf.
typedef union _EBF_temDiagGTCC EBF_temDiagGTCC
 Typedef for union _EBF_temDiagGTCC.
typedef struct _EBF_temDiagGTCCpair EBF_temDiagGTCCpair
 Typedef for the struct _EBF_temDiagGTCCpair.
typedef enum
_EBF_TEMDIAG_GTCCPAIR_K 
EBF_TEMDIAG_GTCCPAIR_K
 Typedef for enum _EBF_TEMDIAG_GTCCPAIR_K.
typedef enum _EBF_TEMDIAG_GTCCOE_K EBF_TEMDIAG_GTCCOE_K
 Typedef for enum _EBF_TEMDIAG_GTCCOE_K.
typedef enum _EBF_TEMDIAG_GTCC_K EBF_TEMDIAG_GTCC_K
 Typedef for enum _EBF_TEMDIAG_GTCC_K.
typedef union _EBF_temDiagTkr EBF_temDiagTkr
 Typedef for union _EBF_temDiagTkr.
typedef struct _EBF_temDiag EBF_temDiag
 Typedef for struct _EBF_temDiag.

Enumerations

enum  _EBF_TEMDIAG_GCCC_END_K {
  EBF_TEMDIAG_GCCC_END_K_NEG = 0,
  EBF_TEMDIAG_GCCC_END_K_POS = 1
}
 Enumeration giving the index of positive and negative ends of a GCCC in a portable fashion. More...
enum  _EBF_TEMDIAG_GTCCPAIR_K {
  EBF_TEMDIAG_GTCCPAIR_K_XLO = 0,
  EBF_TEMDIAG_GTCCPAIR_K_XHI = 1,
  EBF_TEMDIAG_GTCCPAIR_K_YLO = 2,
  EBF_TEMDIAG_GTCCPAIR_K_YHI = 3
}
 Enumerates the order of the GTCC odd/even pairs in terms of XLO, XHI, YLO and YHI. More...
enum  _EBF_TEMDIAG_GTCC_OE_K {
  EBF_TEMDIAG_GTCCOE_K_ODD = 0,
  EBF_TEMDIAG_GTCCOE_K_EVEN = 1
}
 Defines the odd/even index, note that this is ENDIAN dependent. More...
enum  _EBF_TEMDIAG_GTCC_K {
  EBF_TEMDIAG_GTCC_K_XLO_ODD = 0,
  EBF_TEMDIAG_GTCC_K_XLO_EVEN = 1,
  EBF_TEMDIAG_GTCC_K_XHI_ODD = 2,
  EBF_TEMDIAG_GTCC_K_XHI_EVEN = 3,
  EBF_TEMDIAG_GTCC_K_YLO_ODD = 4,
  EBF_TEMDIAG_GTCC_K_YLO_EVEN = 5,
  EBF_TEMDIAG_GTCC_K_YHI_ODD = 6,
  EBF_TEMDIAG_GTCC_K_YHI_EVEN = 7
}
 Enumerates the order of the GTCC pairs in terms of X/Y LO/HI Odd/Event XHI. More...


Detailed Description

Describes the TEM data format from the event builder.

Author:
JJRussell - russell@slac.stanford.edu
  CVS $Id: EBF_tem.h,v 1.6 2011/03/25 22:16:54 russell Exp $

The TEM contributor consists of four major blocks
  1. CAL data
  2. TKR data
  3. TEM diagnostic data (only if requested)
  4. Error block (only if errors)
Since all but the TEM diagnostic block is variable length in nature, not much can be done in terms of a classic C structure. The diagnostic block is laid out here, but see EBF_cal.h, EBF_tkr.h for accessing these blocks once they have been located. The easiest way to locate these blocks is to use the services of EBF_dir.h.

Typedef Documentation

Typedef for struct _EBF_temDiag.

The TEM diagnostic block, if present, is located just after the tracker block. Unfortunately this makes accessing the diagnostic block dependent on the serially decoding the tracker.

Typedef for struct _EBF_temDiagGCCC_np.

There was a design choice to be made. Since it is not possible to make the 32-bit and 16-bit accesses physically the same on both big and little endian machines, the choice was to go with making the 32-bit accesses the same.

Typedef for struct _EBF_temDiagGTCC_bf.

This structure contains 9 bits, on for each GTRC serviced by a GTCC. Each bit represents the trigger request line with GTRC 0 in the least significant bit and GTRC 8 in the most significant bit

Typedef for the struct _EBF_temDiagGTCCpair.

There was a design choice to be made. Since it is not possible to make the 32-bit and 16-bit accesses physically the same on both big and little endian machines, the choice was to go with making the 32-bit accesses the same.

Typedef for union _EBF_temDiagTkr.

See EBF_TEMDIAG_GTCC_K and EBF_TEMDIAG_GTCCOE_K for a portable way to access the 16-bit values with a GTCC.
The track diagnostic block can be accessed as
  1. Odd/Even pairs, e.g. temDiagTkr->pairs[EBF_TEMDIAG_GTCCPAIRS_K_XLO];
  2. Individual odd or even GTCC, e.g. temDiagTkr->oe[EBF_TEMDIAG_GTCC_OE_XLO][EBF_TEMDIAG_GTCC_OE_K_ODD];
  3. Individual GTCC e.g. temDiagTkr->oe[EBF_TEMDIAG_GTCC_K_XLO_ODD];


Enumeration Type Documentation

Enumeration giving the index of positive and negative ends of a GCCC in a portable fashion.

Enumerator:
EBF_TEMDIAG_GCCC_END_K_NEG  GCRC at the negative end
EBF_TEMDIAG_GCCC_END_K_POS  GCRC at the positive end

Enumerates the order of the GTCC pairs in terms of X/Y LO/HI Odd/Event XHI.

Enumerator:
EBF_TEMDIAG_GTCC_K_XLO_ODD  GTCC 0 is XLO odd (6)
EBF_TEMDIAG_GTCC_K_XLO_EVEN  GTCC 1 is XLO even (3)
EBF_TEMDIAG_GTCC_K_XHI_ODD  GTCC 2 is XHI odd (7)
EBF_TEMDIAG_GTCC_K_XHI_EVEN  GTCC 3 is XHI even (2)
EBF_TEMDIAG_GTCC_K_YLO_ODD  GTCC 4 is XLO odd (5)
EBF_TEMDIAG_GTCC_K_YLO_EVEN  GTCC 5 is XLO even (0)
EBF_TEMDIAG_GTCC_K_YHI_ODD  GTCC 6 is XHI odd (4)
EBF_TEMDIAG_GTCC_K_YHI_EVEN  GTCC 7 is XHI even (1)

Defines the odd/even index, note that this is ENDIAN dependent.

Enumerator:
EBF_TEMDIAG_GTCCOE_K_ODD  Big endian, odd is index 0
EBF_TEMDIAG_GTCCOE_K_EVEN  Big endian, even is index 1

Enumerates the order of the GTCC odd/even pairs in terms of XLO, XHI, YLO and YHI.

Enumerator:
EBF_TEMDIAG_GTCCPAIR_K_XLO  GTCC pair 0 is odd/even XLO (6,3)
EBF_TEMDIAG_GTCCPAIR_K_XHI  GTCC pair 1 is odd/even XHI (7,2)
EBF_TEMDIAG_GTCCPAIR_K_YLO  GTCC pair 2 is odd/even YLO (5,0)
EBF_TEMDIAG_GTCCPAIR_K_YHI  GTCC pair 3 is odd/even YHI (4,1)


Generated on Fri Nov 30 09:26:02 2012 by  doxygen 1.5.8