First there is the Event Builder header for each trigger frame
- Event Builder Header 0 (32-bits)
- 31:00 = Event Counter (starting from 1)
- Event Builder Header 1/2 (64-bits)
- 23:00 = Timestamp bits 23:0
- 55:32 = Timestamp bits 47:24
- A 48-bit running counter gets reset to 0 at the start of each run
- This number will be the same across all DPMs for a given trigger event
- Event Builder Header 3 (32-bits)
- 31:08 = 0x000000 - Event Builder software will overwrite this with the total event size in bytes
- 07:00 = 0x0000 (for now)RCE Address
Then there are a variable number of MultiSamples which are the 6 samples plus location information which make up a waveform:
- MuliSample n (128 bits)
- Word 0 (32-bits)
- 31:16 = Sample 1
- 15:00 = Sample 0
- Word 1 (32-bits)
- 31:16 = Sample 3
- 15:00 = Sample 2
- Word 2 (32-bits)
- 31:16 = Sample 5
- 15:00 = Sample 4
- Word 3 (32-bits)
- 07:00 = RCE Address
- 15:08 = FEB Address
- 22:16 = APV Channel (0-127)
- 25:23 = APV # (0-4)
- 27:26 = Hybrid Address (0-3)
- 28 = ReadError
- 29 = Tail (always 0)
- 30 = Head (always 0)
- 31 = Filter flag
At the end of the frame is the Event Builder tail:
- Event Builder Tail - (128-bits)
- 27: FIFO backup error (Should only see skip counts if this is 1)
- 26: ApvBufferAddressSyncError - APV frames didn't have the same addresses
- 23:12: SkipCount - Number of MultiSamples that got dumped due to FIFO backup
- 11:00: Number of MultiSamples (M)
- 127:27: Unused