00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _TRG_STRUCTURES_H_
00019 #define _TRG_STRUCTURES_H_
00020
00021
00022
00023 #ifndef uint
00024 #define uint unsigned int
00025 #endif
00026
00027 #ifndef ushort
00028 #define ushort unsigned short
00029 #endif
00030
00031 #ifndef ulong
00032 #define ulong unsigned long
00033 #endif
00034
00035 typedef unsigned char BYTE;
00036 typedef unsigned int WORD;
00037
00038 #define MAX_RAW_DATA_BLOCKS 11
00039
00040 #define FORMAT_VERSION 0x12
00041 #define EVT_HEAD_LEN sizeof(TrgEvtHeader)
00042 #define EV_DESC_LEN sizeof(EvtDescData)
00043 #define L0DSM_DATA_LEN sizeof(L0_DSM_Data)
00044 #define RAW_DET_DATA_LEN sizeof(RawTrgDet)
00045 #define TRG_SUM_LEN sizeof(TrgSumData)
00046
00047 #define L1_DATA_LEN (EVT_HEAD_LEN+EV_DESC_LEN+TRG_SUM_LEN)
00048
00049 #define TRG_EVT_LEN (L1_DATA_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
00050 #define TDI_EVT_LEN (EV_DESC_LEN+TRG_SUM_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
00051
00052 #define CTB_DATA_OFFSET 8
00053 #define RAW_CTB_LEN 256
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063 typedef struct {
00064 unsigned short TrgDataBytes;
00065 unsigned short TrgFiller;
00066 unsigned short TCUdataBytes;
00067 BYTE TrgDataFmtVer;
00068 char TCUEvtDesc;
00069 unsigned short TrgSumBytes;
00070 char TrgSumHeader[2];
00071 unsigned short L0SumBytes;
00072 char L0SumHeader[2];
00073 unsigned short L1SumBytes;
00074 char L1SumHeader[2];
00075 unsigned short L2SumBytes;
00076 char L2SumHeader[2];
00077 unsigned short L0RegBytes;
00078 char L0RegHeader[2];
00079 unsigned short RawDetBytes;
00080 char RawDetHeader[2];
00081 unsigned short CTBdataBytes;
00082 char CTBdataHeader[2];
00083 unsigned short MWCdataBytes;
00084 char MWCdataHeader[2];
00085 unsigned short EMCdataBytes;
00086 char EMCdataHeader[2];
00087 } trgDataHeaders;
00088
00089
00090
00091 typedef struct {
00092 unsigned short TrgDataBytes;
00093 unsigned short TrgFiller;
00094 } TrgEvtHeader;
00095
00096
00097
00098 typedef union {
00099 struct {
00100 unsigned short DetectorsIn;
00101 BYTE TRG_DAQ_cmd;
00102 BYTE empty8 ;
00103 } FIFO1;
00104 unsigned long fifo1;
00105 } Info1;
00106
00107 typedef union {
00108 struct {
00109 unsigned short token ;
00110 unsigned short empty16 ;
00111 } FIFO2;
00112 unsigned long fifo;
00113 } Info2;
00114
00115
00116 typedef union {
00117 struct {
00118 unsigned short DSMInput;
00119 unsigned short ExternalBusy;
00120 } FIFO3;
00121 unsigned long fifo;
00122 } Info3;
00123
00124 typedef union {
00125 struct {
00126 unsigned short ModifiedBusy;
00127 unsigned short PhysicsWord ;
00128 } FIFO4;
00129 unsigned long fifo;
00130 } Info4;
00131
00132 typedef union {
00133 struct {
00134 unsigned short TriggerWd ;
00135 unsigned short addBits;
00136 } FIFO5;
00137 unsigned long fifo;
00138 } Info5;
00139
00140 typedef union {
00141 struct {
00142 unsigned short DSMAddress ;
00143 unsigned short ContaminationBusy ;
00144 } FIFO6;
00145 unsigned long fifo;
00146 } Info6;
00147
00148
00149
00150 typedef struct {
00151 unsigned short TCUdataBytes;
00152 char TCUEvtDesc;
00153 BYTE TrgDataFmtVer;
00154 uint bunchXing_hi;
00155 uint bunchXing_lo;
00156 Info1 TCU1;
00157 Info2 TCU2;
00158 Info5 TCU5;
00159 ushort npre;
00160 ushort npost;
00161 } EvtDescData;
00162
00163
00164
00165
00166
00167 typedef struct {
00168 ushort CPA[32];
00169 ushort quadDSM[8];
00170 ushort lastDSM[8];
00171 BYTE ZDC[16];
00172 ushort BCdata[16];
00173 } L0_DSM_Data;
00174
00175
00176
00177
00178 typedef struct {
00179 unsigned short TrgSumBytes;
00180 char TrgSumHeader[2];
00181 uint L1Sum[2];
00182 uint L2Sum[2];
00183 unsigned short L0SumBytes;
00184 char L0SumHeader[2];
00185 L0_DSM_Data DSM;
00186 unsigned short L1SumBytes;
00187 char L1SumHeader[2];
00188 uint L1Result[32];
00189 unsigned short L2SumBytes;
00190 char L2SumHeader[2];
00191 uint L2Result[28];
00192 unsigned short L0RegBytes;
00193 char L0RegHeader[2];
00194 unsigned short Mult_Reg[3];
00195 unsigned short ZDC_Reg[2];
00196 unsigned short Spare_Reg ;
00197 } TrgSumData;
00198
00199
00200
00201
00202 typedef struct {
00203 TrgEvtHeader TrgHead;
00204 EvtDescData EvtDesc;
00205 TrgSumData TrgSum;
00206 } L1dataType;
00207
00208
00209
00210 typedef struct {
00211 unsigned short RawDetBytes;
00212 char RawDetHeader[2];
00213 unsigned short CTBdataBytes;
00214 char CTBdataHeader[2];
00215 BYTE CTB[256];
00216 unsigned short MWCdataBytes;
00217 char MWCdataHeader[2];
00218 unsigned long MWCfiller;
00219 BYTE MWC[128];
00220 unsigned short EMCdataBytes;
00221 char EMCdataHeader[2];
00222 unsigned long EMCfiller;
00223 } RawTrgDet;
00224
00225
00226
00227 typedef struct {
00228 TrgEvtHeader TrgHead;
00229 EvtDescData EvtDesc;
00230 TrgSumData TrgSum;
00231 RawTrgDet raw[MAX_RAW_DATA_BLOCKS];
00232 } TrgDataType;
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244 #endif