[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ADC125 data format, 2nd try --- and FDC hit limit
Hall D Electronics:
Hi,
Since I had obviously given little consideration to the event size in
my 1st attempt to define a data format for the 125MSPS ADC board
(emailed to Elliot, Dave, Chris on 5/9/07), I have completely reworked
it for compact/minimal form. I have included in on the portal as part of
GlueX-doc-855.
All interested parties, please examine and complain if there are any
problems. This document will be used in designing the FPGA's (not yet,
but someday soon I hope).
The executive summary of byte counts:
- Every board generates a 4 byte header for every event.
- Every hit generates a 6 byte record including channel number, pulse
time, and pulse amplitude. If there were multiple, distinguishable
pulses in the window for a given channel, and the algorithm was set up
to deal with this, there will be 6 bytes for each of them. Could be from
two events, or could be a scraggily pulse.
- Every module with one or more hits will generate on average 6 more
bytes of header/trailer.
So, if the FDC has N cathode-strip-clusters of M strips >ZS each, the
FDC data volume will be 512+N*M*6+N*6, assuming that most clusters don't
split across ADC boards and most boards don't see >1 cluster. This is
probably true, but depends on details of cable map, of course, and other
things.
For <50 bytes average per event per board (--> VME running 160 MB/s @
200 kHz trigger rate), we need roughly <785 average FDC hits. That's
assuming a strip cluster size of 4. This is somewhat of a margin above
Dave's simulated hit counts presented yesterday, but not a lot. If
on-board cathode position fitting were developed (a large effort I'm
sure, but probably possible), it would raise the limit at least by a
factor of 2-3. Probably should be considered a fallback option, pending
tests with full-scale FDC.
Gerard
p.s. If it is required to enlarge the trigger timestamp (10 bits) or the
event number (7 bits) that's fine but will certainly imply 8 bytes used
for every board, i.e., 1024 bytes of FDC header data.
p.p.s. A hit which the algorithm identifies as exceptional (weird pulse
shape, for instance) can either be dropped or reported in raw mode.
Additionally some small fraction of events (0.1% ??) should be triggered
for raw-mode readout to check & calibrate the algorithms. Raw-mode will
add 2 bytes per sample point per hit, e.g. probably 40-80 bytes per hit.