[Moller_analysis] [EXTERNAL] MOLLER raw data file size

Michael Gericke mgericke at physics.umanitoba.ca
Fri Sep 5 12:01:12 EDT 2025


Hi Paul,

Is the plan for the MOLLER data to write the raw data (as it comes from 
the ADC boards) to file in binary form,
or only the "condensed" root files?

Right now, including the total helicity window data (which I added to 
the firmware last night) as well as the block
data, the raw data files size for a 1 minute run is 445440000 bytes. 
This is for a reversal rate of 2 kHz and 4 blocks
per window. Each block of data within a given helicity window is a 
separate packet, which is written to file.

Each block includes 16x7 (16 channels times 7 data items) 64 bit data 
registers, plus a 4x64 bit packet header, including
block number, time stamp, and total sample count (over all 16 channels).

Within each block we have the following data items:

1) 64 bit sum of all samples per block for each of 16 channels
2) 64 bit sum-of-squares per block for each of 16 channels
3) 64 bit number of samples per block for each of 16 channels
4) 64 bit:  20 bit maximum + 20 bit minimum  sample values + 2 bit 
trigger state (both input trigger Lemo signals) + 22 bits empty/free per 
block for each of 16 channels
5) 64 bit running sum of all samples over the sequence of blocks in a 
helicity window for each of 16 channels
6) 64 bit running sum-of-squares over the sequence of blocks in a 
helicity window for each of 16 channels
7) 64 bit running sample number over the sequence of blocks in a 
helicity window for each of 16 channels

The running sums over all blocks per helicity window are cleared with 
each new trigger, but are kept for all
block packets rather than only sending the final values with the last 
block packet. I think doing the latter would
require a more complicated setup for the firmware with some sort of 
interleaved packet transmission (since they
would have different sizes).

I tested the transmission in longer runs last night and with regard to 
that there doesn't seem to be a problem (e.g. dead
time). From a data storage point of view this is a little wasteful, but 
we could throw away the intermediate running
values before writing it to file.

Right now, I am just dumping every packet as I receive it to a binary file.

Of course, if you change the number of blocks per window, the file size 
changes. Right now, the maximum number
of blocks that can be specified per helicity window is 16 (based on the 
8 bit register size). So if that were to be chosen
for some reason, it would increase the file size by a factor of 4 
relative to size I stated at the beginning.

Thanks,

Michael



More information about the Moller_analysis mailing list