DOI: 10.5281/zenodo.15166670
title: Supporting data for "A Prototype Atom Interferometer to Detect Dark Matter and Gravitational Waves"

description: Summary

This is an archived copy of the data and code used to produce the results presented in the work "A Prototype Atom Interferometer to Detect Dark Matter and Gravitational Waves", stored on Zenodo under DOI:10.5281/zenodo.15166670.

This repository contains the experimental code that produced the interferometry data presented in this work, as well as the raw data created by that experiment. The Imperial laboratory uses ARTIQ as an experimental control platform: to reproduce our experiment, you need to know the git commit of the repository (icl_experiments) containing the experiment running at a given moment, which is recorded in the raw dataset.

Data - 000034056-DifferentialClockInterferometryWithNoiseFrag.h5

The data presented here was RID34056, output as an HDF5 binary file, included in this repository.

Within this file, the dataset "ndscan.rid_34056.points.axis_0" contains the applied, deterministic phase step

$\phi$

whereas "ndscan.rid_34056.points.axis_1" contains the standard deviation of the distribution from which an additional, random phase is drawn, expressed as multiples of $2\pi$. This value is 0 for the "Low Laser Noise" dataset and 2 for the "High Laser Noise" dataset.

 

Also in this dataset are:

channel_atom_number_forward: The total fluorescence collected from both atomic states in the readout phase, background-corrected, in the lower dipole trap. This is proportional to atom-number, and was converted to atom number through a calibration performed using absorption spectroscopy.

channel_atom_number_backward: The same but for the upper dipole trap which experiences the biasing additional Stark shift.

channel_excitation_fraction_forward: The deduced excitation fraction of atoms in the lower trap after the interferometry sequence.

channel_excitation_fraction_backward: The deduced excitation fraction of atoms in the upper, Stark-shifted trap after the interferometry sequence.

channel_random_phase_one / channel_random_phase_two: The randomised phase steps applied to the second and third interferometry pulses. These quantities were not used in the data analysis which was performed blind to these steps, but are recorded none-the-less.

channel_rigol_counter_frequency, channel_xxx_IJDx_relocker_num_relocks: Monitor channels for laser locks. If these deviate from their modal values, a glitch has occurred: such datapoints were discarded from the analysis.

Code - icl_experiments

The full icl_experiments repository is available open-source at https://gitlab.com/aion-physics/code/artiq/experiment-repositories/icl_experiments. For this work, commit 5a4fa941fbbc53d9684549adba3e69da85111f38 was used.

In this archived repository, only the files relevant to the presented experiment are retained. The experiment run was repository/clock_interferometry/clock_interferometry_from_xodt.py/DifferentialClockInterferometryWithNoise, with parameters summarised in the dataset file and duplicated here:



Experiment: repository/clock_interferometry/clock_interferometry_from_xodt.py/DifferentialClockInterferometryWithNoise
Run time: 2024-12-13 20:10:03.601739
Git hash: 5a4fa941fbbc53d9684549adba3e69da85111f38

Scan settings
=============

 - Axes:
   - Phase step in interferometry sequence (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.phase_step@*):
     0.0 to 1.0, 100 points
   - Std. dev. of phase step 1 in turns (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.phase_step_std@*):
     list: [[0, 2]]
 - Number of repeats: 2147483647
 - Randomise order globally: True


Overrides
=========

 - 689 injection AOM nominal static frequency: 365.3443 MHz
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.injection_aom_static_frequency@*)
 - Blue MOT loading time: 1000.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.blue_loading_time@*)
 - Load via magnetic trap instead of blue MOT: False
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.magnetic_trap_loading_bool@*)
 - True = sr87, false = sr88: True
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.sr87@*)
 - Delay after experiment before imaging: 6.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_after_experiment@*)
 - Time to hold final dipole trap before experiment: 0.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.dipole_hold_time@*)
 - Time to delay experiment after dipole trap: 0.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.dipole_pre_experiment_delay@*)
 - Time in lattice before the spin polarization pulse: 20.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_before_spinpol_pulse@*)
 - Duration of the spin polarizing pulse: 20.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.duration_spinpol_pulse@*)
 - Time in lattice after the spin polarization pulse: 0.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_after_spinpol_pulse@*)
 - Bias field for optical pumping x: 0.31 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.bias_x_for_pumping@*)
 - Bias field for optical pumping y: 0.491 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.bias_y_for_pumping@*)
 - Bias field for optical pumping z: -0.69 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.bias_z_for_pumping@*)
 - Start value for chamber_2_mot_current: 10.0 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.chamber_2_red_narrowband_mot_current_start@*)
 - End value for chamber_2_mot_current: 10.0 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.chamber_2_red_narrowband_mot_current_end@*)
 - Bias current for narrowband MOT - X: 0.5 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.narrowband_bias_x@*)
 - Bias current for narrowband MOT - Y: 0.041 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.narrowband_bias_y@*)
 - Bias current for narrowband MOT - Z: -1.2 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.narrowband_bias_z@*)
 - Multiple of nominal setpoint at start of ramp for suservo_aom_singlepass_689_up: 3.5
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.red_narrowband_mot_689_up_start@*)
 - Multiple of nominal setpoint at end of ramp for suservo_aom_singlepass_689_up: 0.2
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.red_narrowband_mot_689_up_end@*)
 - Time to hold in dipole trap before molasses starts: 11.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_before_molasses@*)
 - MOT coil current during first molasses: 10.0 A
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.mot_coil_current_first_molasses@*)
 - Detuning of the 689 stir beam during 1st molasses: 0.0 kHz
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.stir_beam_detuning_molasses_1@*)
 - Horizontal camera exposure time: 200.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.exposure_horiz@*)
 - Vertical camera exposure time: 200.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.exposure_vert@*)
 - andor driver mode: True
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.use_andor_driver@*)
 - Enable EM gain. Might blow up the camera: True
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.em_gain_enabled@*)
 - EM gain level. Ignored if not enabled: 30.0
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.em_gain@*)
 - Time between the start of each fluorescence pulse: 3.5 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_between_imaging_pulses@*)
 - Delay before bg image series: 400.0 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_before_bg_img@*)
 - Length of clock shelving pulse: 200.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.shelving_pulse_time@*)
 - Frequency detuning of AOM during clock shelving pulse: 4.0 kHz
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.shelving_pulse_aom_detuning@*)
 - Duration of 461 clearout pulse after shelving: 500.00000000000006 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.shelving_pulse_clearout_duration@*)
 - Preempt time before shelving pulse: 130.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.clock_delivery_preempt_time_shelving@*)
 - Setpoint for clock delivery AOM during shelving: 0.12 V
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.shelving_clock_delivery_setpoint@*)
 - Frequency detuning of delivery AOM during spectroscopy pulse: 15.0 kHz
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.spectroscopy_pulse_aom_detuning@*)
 - Setpoint for clock delivery AOM: 3.8 V
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.spectroscopy_clock_delivery_setpoint@*)
 - Preempt time before spectroscopy pulse: 80.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.clock_delivery_preempt_time@*)
 - Delay after first fluorescence pulse before repumps turn on: 0.01 ms
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_repumps_after_first_pulse@*)
 - Length of spectroscopy pulse: 44.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.spectroscopy_pulse_time@*)
 - Delay between interferometry pulses: 100.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.delay_between_interferometry_pulses@*)
 - Duration of Stark shifting pulse: 30.0 us
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.stark_pulse_duration@*)
 - Mean of phase step 1 in turns: 0.0
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.phase_step_one_mean@*)
 - Mean of phase step 2 in turns: 0.0
   (clock_interferometry_from_xodt.DifferentialClockInterferometryWithNoiseFrag.phase_step_two_mean@*)



Data outputs
============

- andor_sum_0
- andor_mean_0
- andor_sum_1
- andor_mean_1
- andor_sum_2
- andor_mean_2
- andor_sum_3
- andor_mean_3
- andor_sum_4
- andor_mean_4
- andor_sum_5
- andor_mean_5
- andor_sum_6
- andor_mean_6
- andor_sum_7
- andor_mean_7
- andor_sum_slice_x_0
- andor_sum_slice_y_0
- andor_image_0
- andor_sum_slice_x_1
- andor_sum_slice_y_1
- andor_image_1
- andor_sum_slice_x_2
- andor_sum_slice_y_2
- andor_image_2
- andor_sum_slice_x_3
- andor_sum_slice_y_3
- andor_image_3
- excitation_fraction_forward
- atom_number_forward
- excitation_fraction_backward
- atom_number_backward
- random_phase_one
- random_phase_two
- rigol_counter_frequency
- blue_IJD1_relocker_num_relocks
- blue_IJD2_relocker_num_relocks
- blue_IJD3_relocker_num_relocks
- red_IJD1_relocker_num_relocks
- timestamp_utc
- image_horizontal
- image_vertical
- image_horizontal_timestamp
- image_horizontal_mean
- image_vertical_timestamp
- image_vertical_mean