00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef trgStructures_h
00027 #define trgStructures_h
00028 #define MAX_RAW_DATA_BLOCKS 11
00029 #define FORMAT_VERSION 0x13
00030 #define EVT_HEAD_LEN sizeof(TrgEvtHeader)
00031 #define EV_DESC_LEN sizeof(EvtDescData)
00032 #define L0DSM_DATA_LEN sizeof(L0_DSM_Data)
00033 #define RAW_DET_DATA_LEN sizeof(RawTrgDet)
00034 #define TRG_SUM_LEN sizeof(TrgSumData)
00035
00036 #define L1_DATA_LEN (EVT_HEAD_LEN+EV_DESC_LEN+TRG_SUM_LEN)
00037 #define TRG_EVT_LEN (L1_DATA_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
00038 #define TDI_EVT_LEN (EV_DESC_LEN+TRG_SUM_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
00039
00040 #define L0_SUM_LEN 148
00041 #define L1_SUM_LEN 132
00042 #define L2_SUM_LEN 116
00043 #define L0_REG_LEN 16
00044
00045 #define CTB_DATA_OFFSET 8
00046 #define RAW_CTB_LEN 256
00047 #define MWC_DATA_OFFSET 272
00048 #define RAW_MWC_LEN 128
00049 #define BEMC_DATA_OFFSET 408
00050 #define RAW_BEMC_LEN 128
00051
00052 #define ADD_BIT_PILEUP 0
00053 #define ADD_BIT_PRIORITY 1
00054 #define ADD_BIT_FORCE 5
00055 #define ADD_BIT_L2_5 6
00056 #define ADD_BIT_SIM 7
00057
00058
00059
00060
00061
00062
00063
00064
00065 typedef struct {
00066 unsigned short TrgDataBytes;
00067 unsigned short TrgFiller;
00068 unsigned short TCUdataBytes;
00069 unsigned char TrgDataFmtVer;
00070 char TCUEvtDesc;
00071 unsigned short TrgSumBytes;
00072 unsigned short TrgSumHeader;
00073 unsigned short L0SumBytes;
00074 unsigned short L0SumHeader;
00075 unsigned short L1SumBytes;
00076 unsigned short L1SumHeader;
00077 unsigned short L2SumBytes;
00078 unsigned short L2SumHeader;
00079 unsigned short L0RegBytes;
00080 unsigned short L0RegHeader;
00081 unsigned short RawDetBytes;
00082 char RawDetHeader[2];
00083 unsigned short CTBdataBytes;
00084 char CTBdataHeader[2];
00085 unsigned short MWCdataBytes;
00086 char MWCdataHeader[2];
00087 unsigned short EMCdataBytes;
00088 char EMCdataHeader[2];
00089 } trgDataHeaders;
00090
00091
00092
00093 typedef struct {
00094 unsigned short TrgDataBytes;
00095 unsigned short TrgFiller;
00096 } TrgEvtHeader;
00097
00098
00099
00100 typedef union {
00101 struct {
00102 unsigned short TrgToken;
00103 unsigned short TrgActionWd;
00104 } FIFO1;
00105 unsigned int fifo1;
00106 } Info1;
00107
00108
00109 typedef union {
00110 struct {
00111 unsigned short DSMInput;
00112 unsigned short DSMAddress;
00113 } FIFO2;
00114 unsigned int fifo2;
00115 } Info2;
00116
00117
00118 typedef union {
00119 struct {
00120 unsigned char DetectorBusy;
00121 unsigned char addBits;
00122 unsigned short TriggerWd;
00123 } FIFO3;
00124 unsigned int fifo3;
00125 } Info3;
00126
00127
00128
00129 typedef struct {
00130 unsigned short TCUdataBytes;
00131 char TCUEvtDesc;
00132 unsigned char TrgDataFmtVer;
00133 unsigned int bunchXing_hi;
00134 unsigned int bunchXing_lo;
00135 Info1 TCU1;
00136 Info2 TCU2;
00137 Info3 TCU3;
00138 unsigned short npre;
00139 unsigned short npost;
00140 } EvtDescData;
00141
00142
00143
00144
00145
00146 typedef struct {
00147 unsigned short CPA[32];
00148 unsigned short quadDSM[8];
00149 unsigned short lastDSM[8];
00150 unsigned char ZDC[16];
00151 unsigned short BCdata[16];
00152 } L0_DSM_Data;
00153
00154
00155
00156 typedef struct {
00157 unsigned short TrgSumBytes;
00158 unsigned short TrgSumHeader;
00159 unsigned int L1Sum[2];
00160 unsigned int L2Sum[2];
00161 unsigned short L0SumBytes;
00162 unsigned short L0SumHeader;
00163 L0_DSM_Data DSM;
00164 unsigned short L1SumBytes;
00165 unsigned short L1SumHeader;
00166 unsigned int L1Result[32];
00167 unsigned short L2SumBytes;
00168 unsigned short L2SumHeader;
00169 unsigned int L2Result[28];
00170 unsigned short L0RegBytes;
00171 unsigned short L0RegHeader;
00172 unsigned short Mult_Reg[3];
00173 unsigned short ZDC_Reg[2];
00174 unsigned short Spare_Reg;
00175 } TrgSumData;
00176
00177
00178
00179 typedef struct {
00180 TrgEvtHeader TrgHead;
00181 EvtDescData EvtDesc;
00182 TrgSumData TrgSum;
00183 } L1dataType;
00184
00185
00186
00187 typedef struct {
00188 unsigned short RawDetBytes;
00189 char RawDetHeader[2];
00190 unsigned short CTBdataBytes;
00191 char CTBdataHeader[2];
00192 unsigned char CTB[256];
00193 unsigned short MWCdataBytes;
00194 char MWCdataHeader[2];
00195 unsigned int MWCfiller;
00196 unsigned char MWC[128];
00197 unsigned short EMCdataBytes;
00198 char EMCdataHeader[2];
00199 unsigned int EMCfiller;
00200 unsigned char BEMC[128];
00201 } RawTrgDet;
00202
00203
00204
00205 struct TrgDataType {
00206 TrgEvtHeader TrgHead;
00207 EvtDescData EvtDesc;
00208 TrgSumData TrgSum;
00209 RawTrgDet RAW[MAX_RAW_DATA_BLOCKS];
00210 } ;
00211
00212 #endif