Data from the July 16 2025 Advanced Accelerator Diagnostics Collaboration run at the SLAC NLCTA
Data files
Feb 26, 2026 version files 18.52 GB
-
NLCTA_public.zip
18.52 GB
-
README.md
4.84 KB
Abstract
An integrated detection system, comprised of a thin diamond sensor incorporated into a compact signal loop, coupled in turn to an application-specific integrated circuit readout chip, has been tested for the first time, using picosecond-duration electron pulses from the NLCTA accelerator at the SLAC National Accelerator Laboratory. For readout frame rates as high as 120 kHz, the detection system is shown to achieve a linear dynamic range of greater than 10 bits and a bandwidth of 4-5 GHz, with no ringing seen on the tail of the output pulse. This dataset captures results that demonstrate this system to be the best-performing multi-GHz ionizing particle detection system achieved to date.
Access this dataset on Dryad https://doi.org/10.5061/dryad.0rxwdbsfh; file NLCTA_public.zip
We have submitted our raw data from the run of a high-bandwidth ionizing particle detection system. The data was from the characterization of the system using short (picosecond) bursts of high-energy (40 MeV) electrons produced by the Next Linear Collider Test Accelerator (NLCTA) at the SLAC National Accelerator Laboratory. Each burst produces an event inside the detection system, and many (hundreds) of bursts (collected into a dataset called a "run") are recorded for a number of setting of the detection system control parameters. From this data, the system performance can be determined.
The recorded data is, for each event, the output of a 45-element switched capacitor array, with a sampling frequency of 36.9 Gs/s (36.9 billion sample per second, for a period of approximately 1.25 nanoseconds).
Description of the data and file structure
A list of the runs, including the detection system settings used during the run, is provided below. For each run, a signal file is stored in .h5 format. For each event in the run, this signal file contains two columns of data: one is time, and the other the voltage output by each capacitor in the switched capacitor array as the voltage levels are clocked out, one by one. For most (but not all) runs, as indicated below, a second file is stored: that of the level of the clock signal that indicates when the system output should transition to the next capacitor in the array. The format is again time in one column and voltage (the clock level) in the other column.
In the raw data available here, the runs are labeled by run number, as described below, with a .sig suffix for signal and .clk suffix for clock. Detection system settings are distinguished by the bias voltage applied to the diamond sensor that senses the passing of the electron beam, and the frequency of the readout clock. For "pedestal" runs, the beam was stoppered, so that the response of the system to a no-signal condition could be recorded.
Run 00000,00001,00002
Diamond bias +100
Clock frequency 2 Mz
Run 00003
PEDESTAL NO BEAM
Diamond bias +100
Clock frequency 2 Mz
Run 00004,00005,00006
Diamond bias +50
Clock frequency 2 Mz
Run 00007,00008,A00009,A00010,A00011
Diamond bias +150
Clock frequency 2 Mz
Run A00012
PEDESTAL - no beam
Diamond bias +150
Clock frequency 2 Mz
Run A00013,A00014,A00015,A00016,A00017, [A00018,A00019,A00020 signal only - no clock!]
Diamond bias +200
Clock frequency 2 Mz
Run A00021
PEDESTAL (no beam)
Diamond bias +50
Clock frequency 2 Mz
Run [No clock saved] A00022,A00023,A00024
Diamond bias +50
Clock frequency 2 Mz
Run [No clock saved] A00025,A00026,A00027
Diamond bias +100
Clock frequency 2 Mz
Run A00028 [no clock]
PESDESTAL: no beam
Diamond bias +100
Clock frequency 2 Mz
Run A00029 [with clock]
Diamond bias -100
Clock frequency 2 Mz
Run A00030
PESDESTAL: no beam
Diamond bias -100
Clock frequency 2 Mz
Run A00031,A00032,A00033 [with clock]
Diamond bias +200
Clock frequency 4 Mz
Run A00034
PESDESTAL: no beam
Diamond bias +200
Clock frequency 4 Mz
Run A00035
PESDESTAL: no beam
Diamond bias +200
Clock frequency 6 Mz
Run A00036,A00037,A00038 [with clock]
Diamond bias +200
Clock frequency 6 Mz
Sharing/Access information
This is the sole source for accessing the data of this study.
The data derives from the test beam run performed at the SLAC SLNCAT on July 16 2025.
Code/Software
The follow Python code snippet, and included documentation, should help in opening and interpreting the .h5 data files. Note that the comment character "#" has been replaced by "!" to avoid conflicting with the format of the README file. Anyone using the code should replace "!" with "#".
! Only need h5py and numpy -- Pandas used for our analysis
import pandas as pd
import numpy as np
import h5py
! Data is stored in "/Waveforms/Channel 3" for clock files
! Or "/Waveforms/Channel 4" for asic output
! If unsure, printing hierarchical file structure will make structure clear
path = f"./NLCTA_200V/Pedestal/CLKA00021.h5"
with h5py.File(path, 'r') as file:
file.visit(lambda x: print (x))
! When structure is known, access data by indexing file then converting to 2D array
with h5py.File(path, 'r') as file:
data_dir = file['Waveforms']['Channel 3']
data = [data_dir[key][:] for key in data_dir.keys()]
! Load into DataFrame if desired
clock = pd.DataFrame({'Waveform': data}, index=np.arange(len(data)))
! Alternatively, for both clock and asic output files
with h5py.File(path, 'r') as file:
wfm_dir = file['Waveforms']
data_dir = wfm_dir[list(wfm_dir.keys())[0]]
data = [data_dir[key][:] for key in data_dir.keys()]
