Optically trapped ion

Purely optical trapping of an ion in an optical dipole trap, with state detection.

Overview

This example uses the experiment class OpticalTrappingIon to demonstrate purely optical trapping of a single ion in an optical dipole trap. The radio-frequency trap (rf) can optionally be switched off in order to measure the performance of the pure optical trap, and optical trapping can also be performed in an adjustable magnetic field; together with ion laser cooling, spin preparation and product-state detection, the ion can also be moved into and out of the trap via the axial electrodes.

Main devices

CategoryDevice (excerpt)Purpose
Ba lasersba_493_aom(_ttl), ba_493_vert_aom, ba_650_aom(_ttl), ba_493_res_shut, ba_493_det_shut, ba_615_shutcooling, pumping (S1/2↔P1/2, D3/2, etc.), shutters
Optical dipole trapodt_power / odt_aom / odt_shutpower and on/off of the optical trapping beam
RF traprf, rf_offradio-frequency Paul trap confinement (can be switched off for a pure optical trap)
Axial movementtrap_ax, trap_ax_pc, trap_ax_wall, trap_ax_offsaxial shuttling of the ion
Magnetic fieldb_homogen, shimquantisation field for pre-cooling/trapping
Detectiontrigger_camtrigger for radial ion fluorescence/state detection

Parameters (excerpt of setattr_argument in build)

trapping_time, odtpower, rf_init and rf_ramp_duration, opt_ramp_duration, repumpers_on, pump_d32, ba_spin_prep, b_field_precooling(_applied) / b_field_opt_trap(_applied), shuttle_ion / shift_voltage, shutter_time, detect_ba_product_state and others.

Timing stages

Initialisation
  → ion spin preparation
  → magnetic-field switching (optional high-field probing)
  → (optional) shuttle the ion out and back
  → linear ramp-up of the optical trapping beam power → switch off the RF confinement (pure optical trapping)
  → switch off the optical trap (release) and the magnetic field
  → product-state/fluorescence detection

Key code (excerpt)

from quatm.experiment import *   # Experiment, NumberValue, BoolValue, delay, realtime ...

class OpticalTrappingIon(Experiment):
    def build(self):
        self.setattr_device("ba_493_aom")
        self.setattr_device("odt_power")
        self.setattr_device("rf")
        self.setattr_argument("trapping_time", NumberValue(ndecimals=0, step=10,
                             value=100, unit="µs"))
        # ... remaining parameters omitted

    def run(self):
        with realtime():
            # ramp up the optical trapping beam and switch off the RF confinement for pure optical trapping
            self.odt_power = self.odtpower
            self.rf_trap_off = True
            # ... timing omitted

Running

Once the script is placed in experiments, opening it in the experiment browser (Browser) generates the parameter panel; adjusting odtpower and trapping_time scans the power and duration of the optical trapping, while detect_ba_product_state reads out the ionic product state.