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 = 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

 

  • No labels