JLAB SRO Output

The jlabsro format writes packed binary frame records in the Jefferson Lab Streaming Readout (SRO) format. It is used when GEMC simulates time-ordered frame snapshots rather than individual events.


Configuration

gstreamer:
  - format: jlabsro
    filename: myrun
    type: stream

The type: stream sub-key is required; this format only supports frame-stream output.

Produces one .ev file per plugin instance:

myrun.ev


Frame record structure

Each frame record is a contiguous binary block consisting of:

  1. A packed DataFrameHeader (56 bytes):

    Field Type Description
    source_id uint32 Source identifier
    total_length uint32 Total frame length in bytes
    payload_length uint32 Payload length in bytes
    compressed_length uint32 Compressed length (0 = uncompressed)
    magic uint32 Format magic number
    format_version uint32 Format version
    flags uint32 Status flags
    record_counter uint64 Frame sequence number
    ts_sec uint64 Timestamp seconds
    ts_nsec uint64 Timestamp nanoseconds
  2. The frame payload: the integral payload words from the active sensitive detectors.

All fields are written in the byte order native to the host platform.


When to use JLAB SRO

Use this format when:

For standard event-based simulation, use csv, root, or hipo instead.