StRoot
1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
RTS
include
TRG
trgStructures_v22.h
1
/*
2
* Header Name: trgStructures.h
3
* Header Number: x.y
4
* Package Name: All
5
* Created: z. milosevich 06Dec99
6
* Description: Global trigger structure header file.
7
* Contains definitions of trigger data structures
8
* History:
9
*
10
* 06Dec99 zm Created so offline can use and after modification for mod 8 DMA reads
11
* 08Dec99 zm Changed Event Descriptor Structure to previous length
12
* 03Feb00 zm Changed "ushort ZDCDSM[8]" to "BYTE ZDC[16]" in L0_DSM_Data structure
13
* 22Jul00 egj Added L0RegBytes and L0RegHeader to trgDataHeaders and TrgSumData.
14
* Also added Mult_Reg, ZDC_Reg and Spare_Reg to TrgSumData, making a
15
* total of 16 extra bytes. I compensated for this by removing 16 bytes,
16
* (4 uints) from L2Result, wich is currently unused.
17
* 08Dec00 JMN Changed char hdr[2] in TrgSummary to unsigned short, which is packed
18
* 25Feb01 JMN Redesigned and expanded abbreviations to full.
19
* 12Mar01 JMN Added additional changes from ZM
20
* 30May01 JMN NBNBNBNB Changed FORMAT version from 0x12 to 0x13
21
* 02Jun01 zm defined bit 6 in addBits info FIFO3 for L2.5 abort
22
* 27Jun01 JMN Added definition of number of bytes used in trigger summary headers
23
* 28Jun01 JMN Added definition of ADD_BITs
24
* 10Apr02 zm basic strawman for new structures with new TCU and added detectors
25
* 22May02 zm removed references to current non-existent trigger event header
26
* 24May02 zm incorporated eleanor's comments
27
* 24May02 zm the L0_DSM_Data instance changed from DSM to DSMdata to be able to compile on linux
28
* 19Jun02 zm removed or commented out references to TrgEvtHeader
29
* 05Aug02 JMN changes in event descriptor - moved filler word to end
30
* 15Aug02 HjC correct bytes for FPD
31
* 21Nov02 zm corrections based on eleanor's email: L0 layout for bunch xing,
32
* special and fpd elements; fpd broken down for east/west nort/south
33
* vs top/bottom and layer 1 or 0;
34
* also finished XXX_DATA_OFFSET and RAW_XXX_LEN for passing data from
35
* dsm
36
* 30Aug03 JMN Added RAW_MAX_LEN being maximum length possible in chain block transfer
37
* 14Sep03 JMN Added new dsmMemcpy2Buf
38
* 02Nov03 JMN Modified dsmMemcpy2Buf to ensure dsmData is 8-byte aligned.
39
* 04Nov03 EGJ Modified RawTrgDet to add in ZDCSMD[32]
40
* 28Oct04 JMN Modified RawTrgDet to increased BBC storage from 80 to 96
41
* Format version changed from 0x21 to 0x22
42
* 14Nov05 JMN Added source NodeID as first word of data buffer to L2
43
* 16Mar06 CWP Added offsets into L2Result
44
*/
45
46
#ifndef trgStructures_h
47
#define trgStructures_h
48
49
#define MAX_L0_DATA_BLOCKS 11
/* Maximum number of L0 Data Blocks: current + npre + npost */
50
#define MAX_RAW_DATA_BLOCKS 11
/* Maximum number of Raw Data Blocks: current + npre + npost */
51
#define FORMAT_VERSION 0x22
/* Format Version number for trigger data */
52
#define EV_DESC_LEN sizeof(EvtDescData)
/* Number of bytes in event descriptor */
53
#define L0DSM_DATA_LEN sizeof(L0_DSM_Data)
/* Size of data block in L0 DSM Tree */
54
#define RAW_DET_DATA_LEN sizeof(RawTrgDet)
/* Size of Raw Detector Data from CTB, MWC with headers */
55
#define TRG_SUM_LEN sizeof(TrgSumData)
/* Number of bytes in the trigger summary for DAQ with headers */
56
57
#define L1_DATA_LEN (EV_DESC_LEN+TRG_SUM_LEN)
/* Size of data passed from L1ANA to L2 */
58
#define TRG_EVT_LEN (L1_DATA_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
/* Max size of a trigger event */
59
#define TDI_EVT_LEN (EV_DESC_LEN+TRG_SUM_LEN+(MAX_RAW_DATA_BLOCKS*RAW_DET_DATA_LEN))
/* size of event sent to TDI */
60
61
#define L0_SUM_LEN 148
/* Number of bytes in L0 Summary + Header */
62
#define L1_SUM_LEN 132
/* Number of bytes in L1 Summary + Header */
63
#define L2_SUM_LEN 116
/* Number of bytes in L2 Summary + Header */
64
#define L0_REG_LEN 16
/* Number of bytes in L0 Register + Header */
65
66
#define RAW_MAX_LEN 272
/* Maximum length of any Chain Block Transfer */
67
//#define CTB_DATA_OFFSET 8 /* Number of bytes CTB Raw data is offset in raw trigger structure */
68
//#define RAW_CTB_LEN 256 /* Number of bytes in raw CTB DSMs */
69
//#define MWC_DATA_OFFSET 272 /* Number of bytes MWC Raw data is offset in raw trigger structure */
70
//#define RAW_MWC_LEN 128 /* Number of bytes in raw CTB DSMs */
71
//#define BCE_DATA_OFFSET 408 /* Number of bytes BMC Raw data is offset in raw trigger structure */
72
//#define RAW_BCE_LEN 240
73
//#define BCW_DATA_OFFSET 648
74
//#define RAW_BCW_LEN 240
75
//#define BC1_DATA_OFFSET 888
76
//#define RAW_BC1_LEN 96
77
//#define EEC_DATA_OFFSET 992
78
//#define RAW_EEC_LEN 176
79
//#define FPE_DATA_OFFSET 1176 /* everything after this will have to be re-done */
80
//#define RAW_FPE_LEN 208
81
//#define FPW_DATA_OFFSET 1384
82
//#define RAW_FPW_LEN 208
83
//#define BBC_DATA_OFFSET 1600
84
//#define RAW_BBC_LEN 176 /* Number of bytes in BBC and ZDC raw data structures */
85
86
#define L2RESULTS_OFFSET_TRG 0
87
#define L2RESULTS_OFFSET_EMC_CHECK 1
88
#define L2RESULTS_OFFSET_JPSI 2
89
#define L2RESULTS_OFFSET_UPS 8
90
#define L2RESULTS_OFFSET_DIJET 14
91
#define L2RESULTS_OFFSET_EMC_PED 19
92
#define L2RESULTS_OFFSET_PIG 20
93
94
#define ADD_BIT_PILEUP 0
/* Contamination/Pileup bit in event descriptor add-bits */
95
#define ADD_BIT_FORCE 5
/* Force store of this event */
96
#define ADD_BIT_L2_5 6
/* Level 2.5 abort */
97
#define ADD_BIT_SIM 7
/* Simulated event - used by DAQ */
98
99
/********** Trigger Structures ***********/
100
101
/* Event Descriptor Data Structures */
102
103
104
typedef
struct
{
105
unsigned
short
TCUdataBytes;
106
char
TCUEvtDesc;
107
unsigned
char
TrgDataFmtVer;
108
unsigned
int
bunchXing_hi;
109
unsigned
int
bunchXing_lo;
/* Two parts of RHIC bunch crossing number */
110
unsigned
short
actionWdDetectorBitMask;
/* from Fifo 1 */
111
unsigned
char
actionWdTrgCommand;
/* from Fifo 1 */
112
unsigned
char
actionWdDaqCommand;
/* from Fifo 1 */
113
unsigned
short
TrgToken;
/* from Fifo 2 */
114
unsigned
short
addBits;
/* from Fifo 2 - bit 0=Contamination; bit 6=L2.5 abort; bit 7=1 is fake data */
115
unsigned
short
DSMInput;
/* from Fifo 3 */
116
unsigned
short
externalBusy;
/* from Fifo 3 */
117
unsigned
short
modifiedBusyStatus;
/* from Fifo 4 */
118
unsigned
short
physicsWord;
/* from Fifo 4 */
119
unsigned
short
TriggerWord;
/* from Fifo 5 */
120
unsigned
short
DSMAddress;
/* from Fifo 6 */
121
unsigned
short
contaminationBusyStatus;
/* from Fifo 6 */
122
unsigned
short
npre;
/* pre value for detector raw data */
123
unsigned
short
npost;
/* post value for detector raw data */
124
unsigned
short
dummy;
/* dummy - filler */
125
}
EvtDescData
;
/* 40 bytes total */
126
127
/* Trigger Summary Data Structures */
128
129
/* L0 DSM data structures */
130
131
typedef
struct
{
132
unsigned
short
CPA[32];
/* Contents of 4 CTB+MWC DSM Input Buffers (IB's) - coarse pixel array*/
133
unsigned
short
quadDSM[8];
/* Contents of 1 CTB+MWC DSM IB - outputs of previous 4 */
134
unsigned
short
lastDSM[8];
/* Contents of last DSM IB - results of all DSM trees */
135
unsigned
short
VTX[8];
/* Separate ZDC and BBC DSMs have been replaced with this one */
136
unsigned
short
EMC[8];
/* Contents of 1 EMC IB - results of separate BEMC and EEMC DSMs */
137
unsigned
short
BCdata[16];
/* Contents of 2 Bunch Crossing DSMs IB's */
138
unsigned
short
specialTriggers[8];
/* Contents of 1 Special Trigger DSM - all the special trigger requests */
139
unsigned
short
FPD[8];
/* Contents of 1 FPD IB - we are installing this DSM this year but it */
140
}
L0_DSM_Data
;
/* 192 bytes total */
141
142
143
/* Summary data */
144
145
typedef
struct
{
146
unsigned
short
TrgSumBytes;
147
unsigned
short
TrgSumHeader;
148
unsigned
int
L1Sum[2];
/* L1 Summary */
149
unsigned
int
L2Sum[2];
/* L2 Summary */
150
unsigned
short
L0SumBytes;
151
unsigned
short
L0SumHeader;
152
L0_DSM_Data
DSMdata;
/* L0 DSM Data from DSM Tree */
153
unsigned
short
L1SumBytes;
154
unsigned
short
L1SumHeader;
155
unsigned
int
L1Result[32];
/* Result from L1 CPU */
156
unsigned
short
L2SumBytes;
157
unsigned
short
L2SumHeader;
158
unsigned
int
L2Result[32];
/* Result from L2 CPU */
159
}
TrgSumData
;
/* 480 bytes total */
160
161
/* Data structure passed between L1ANA and L2 */
162
163
typedef
struct
{
164
EvtDescData
EvtDesc;
/* L1 Event Descriptor Data */
165
TrgSumData
TrgSum;
/* Summary data */
166
}
L1dataType
;
/* 520 bytes */
167
168
/* Raw Trigger Detector data structures */
169
170
typedef
struct
{
171
unsigned
short
RawDetBytes;
172
char
RawDetHeader[2];
173
unsigned
short
CTBdataBytes;
174
char
CTBdataHeader[2];
175
unsigned
char
CTB[256];
/* CTB raw data */
176
unsigned
short
MWCdataBytes;
177
char
MWCdataHeader[2];
178
unsigned
int
MWCfiller;
/* Dummy to bring header to mod 8 */
179
unsigned
char
MWC[128];
/* MWC raw data */
180
unsigned
short
BEMCdataBytes;
181
char
BEMCdataHeader[2];
182
unsigned
int
BEMCfiller;
/* Dummy to bring header to mod 8 */
183
unsigned
char
BEMCEast[240];
/* next year there will be 15 DSMs covering the East half, all in one crate */
184
unsigned
char
BEMCWest[240];
/* this year there will be 15 DSMs covering the West half, all in one crate */
185
unsigned
short
BEMClayer1[48];
/* there will be 6 DSMs at layer1 even if only 3 of them have input this year*/
186
unsigned
short
EEMCdataBytes;
187
char
EEMCdataHeader[2];
188
unsigned
int
EEMCfiller;
/* Dummy to bring header to mod 8 */
189
unsigned
short
EEMClayer1[16];
/* the two layer1 DSMs are at the LHS of the crate so they get read first */
190
unsigned
char
EEMC[144];
/* next there are the 9 layer0 DSMs, of which only 4-5 have input this year */
191
unsigned
short
FPDdataBytes;
192
char
FPDdataHeader[2];
193
unsigned
int
FPDfiller;
/* Dummy to bring header to mod 8 */
194
unsigned
char
FPDEastNSLayer0[112];
/* fpd east north/south layer 0 */
195
unsigned
short
FPDEastNSLayer1[8];
/* fpd east north/south layer 1 */
196
unsigned
char
FPDEastTBLayer0[64];
/* fpd east top/bottom layer 0 */
197
unsigned
short
FPDEastTBLayer1[8];
/* fpd east north/south layer 1 */
198
unsigned
char
FPDWestNSLayer0[112];
/* fpd east north/south layer 0 */
199
unsigned
short
FPDWestNSLayer1[8];
/* fpd east north/south layer 1 */
200
unsigned
char
FPDWestTBLayer0[64];
/* fpd east north/south layer 0 */
201
unsigned
short
FPDWestTBLayer1[8];
/* fpd east north/south layer 1 */
202
unsigned
short
BBCdataBytes;
203
char
BBCdataHeader[2];
204
unsigned
int
BBCfiller;
/* Dummy to bring header to mod 8 */
205
unsigned
char
BBC[96];
/* increased from 80 to 96 for the addition of a DSM after layer 0 DSMs */
206
unsigned
short
BBClayer1[16];
/* this is the layer1 DSM that feeds the VTX DSM */
207
unsigned
char
ZDCSMD[32];
/* this is the 2 layer0 DSM for the ZDC SMD detector */
208
unsigned
char
ZDC[16];
/* this is the original ZDC DSM */
209
unsigned
short
ZDClayer1[8];
/* this is the new layer1 ZDC DSM that also feeds the VTX DSM */
210
}
RawTrgDet
;
/* 1792 bytes total */
211
212
/* Trigger Event Structure */
213
214
typedef
struct
{
215
EvtDescData
EvtDesc;
/* L1 Event Descriptor Data : 40 bytes */
216
TrgSumData
TrgSum;
/* Summary data: 480 bytes */
217
RawTrgDet
rawTriggerDet[MAX_RAW_DATA_BLOCKS];
/* Raw Detector Data with pre and post History: 11*1792 bytes */
218
}
TrgDataType
;
/* 20232 bytes */
219
220
/* Data block for DSMs and L1 to pass to L2 via myriMemcpy2 */
221
222
typedef
struct
{
223
int
src_nodeId;
/* Source nodeId */
224
int
cur_token;
225
int
Npre,Npost;
226
unsigned
int
localClock;
/* Local DSM clock */
227
int
numGroup;
/* Number of DSMs in first group */
228
int
numDSM;
/* Total number of DSMs */
229
int
dummy;
/* Ensure alignment of long long */
230
long
long
dsmData[RAW_MAX_LEN*MAX_RAW_DATA_BLOCKS/8];
/* Make this 8-byte aligned */
231
}
dsmMemcpy2Buf
;
232
233
#endif
dsmMemcpy2Buf
Definition:
trgStructures_21.h:211
EvtDescData
Definition:
trgStructures-Jan2002.h:150
TrgSumData
Definition:
trgStructures-Jan2002.h:178
L0_DSM_Data
Definition:
trgStructures-Jan2002.h:167
TrgDataType
Definition:
trgStructures-Jan2002.h:227
RawTrgDet
Definition:
trgStructures-Jan2002.h:210
L1dataType
Definition:
trgStructures-Jan2002.h:202
Generated by
1.8.5