TAXI Data Structure¶
The data written by the TAXI system is in a custom binary format that is not immediately transferable to the I3 dataclasses. Along with meta-data, the waveforms read out from the radio antennas are stores in one large chunk and need to be augmented before use.
Overview of Antenna Readout¶
Each arm/channel of each antenna is read out by four ring buffers and will result in one of three cases.
Each buffer is recording time sequentially and ~4us of time is recorded, known as “fully-cascaded” readout
Pairs of buffers read the same time interval and two copies of ~2us is recorded, known as “semi-cascaded” readout
Four copies of the same ~1us is recorded, known as “non-cascaded” readout
Along with each readout, an “ROI” value is recorded which informs which physical capacitor in the ring corresponds to the first time bin. This is used for unspooling the data and have the waveforms start at the correct physical time.
A timestamp is also included in the data from White Rabbit.
Finally, a Serdes delay is included. This quantity indicates which time bin in the waveform cooresponds to the external trigger from the scintillator panels. Because this quantity is not written to the binary file, it must be collected externally.
Binary File Contents¶
While the contents of a binary file is not something that all but the most experienced users should touch, it can be instructive to understand for debugging perposes. The binary files contain lines with nine words per line. Each line contains either a piece of meta-data, or a waveform amplitude of a ring-buffer and the first word indicates what the contents of the line mean.
0x1000
- headers (event counter x2) (event length) (real time counter x 4) (DS4 ROI)0x3000
- timing meta-info (channel timing x 8)0x4000
- samples (ch0)(ch1)…(ch8)0x4010
- same as above for second drs40x4100
- same as above for thrid drs40xA000
- cascading meta-info (starting ch, chip1) (starting ch, chip2) (starting ch, chip3) (N/A) (ROI, chip1) (ROI, chip2) (ROI, chip3)
An event is a packet of these values which is parsed using parse_bin_file
in icecube.taxi_reader.taxi_tools
.