spinqick.experiments.psb_setup
Defines the PsbSetup class which is used for setting up Pauli Spin Blockade spin-to-charge conversion.
Attributes
Classes
This class holds functions that wrap the QICK classes for setting up PSB readout. Initialize |
Module Contents
- spinqick.experiments.psb_setup.logger
- class spinqick.experiments.psb_setup.PsbSetup(soccfg, soc, voltage_source, **kwargs)
Bases:
spinqick.core.dot_experiment.DotExperimentThis class holds functions that wrap the QICK classes for setting up PSB readout. Initialize with information about your rfsoc and your experimental setup.
- Parameters:
soccfg (qick.QickConfig) – qick config object (QickConfig)
soc – QickSoc object
voltage_source (spinqick.helper_functions.hardware_manager.VoltageSource) – Initialized DC voltage source object. This is used here for saving the DC voltage state each time data is saved.
- soccfg
- soc
- reference = True
- thresh = True
- threshold = 0
- vdc
- property psb_config
Get psb config for selected qubit from experiment config.
- meashist(num_measurements, reference=True, fit=True, n_gaussians=3, use_gmm=False, log_scale=False)
Perform some number of spam sequences and produce a measurement histogram to show relative prevalance of measured 0 and 1 states. This simply plays the spam sequence as defined in the config.
- Parameters:
num_measurements (int) – Total number of measurements
reference (bool) – perform a reference measurement and report the difference between the two measurements
fit (bool) – if True, fit results to a pair of gaussians
use_gmm (bool) – use gaussian mixtures model to fit gaussians :log_scale: if true, plot y axis in log scale
n_gaussians (int)
log_scale (bool)
- idle_cell_scan(p_gates, p_range, point_avgs=10, full_avgs=10)
Performs a 2D sweep of idle coordinate.
- Parameters:
p_gates (Tuple[spinqick.helper_functions.spinqick_enums.GateNames, spinqick.helper_functions.spinqick_enums.GateNames]) – specify the two plunger gates being used
p_range (Tuple[Tuple[float, float, int], Tuple[float, float, int]]) – specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points))
point_avgs (int)
full_avgs (int)
- flush_window_scan(p_gates, p_range, point_avgs=10, full_avgs=10)
Performs a 2D sweep of flush coordinate.
- Parameters:
p_gates (Tuple[spinqick.helper_functions.spinqick_enums.GateNames, spinqick.helper_functions.spinqick_enums.GateNames]) – specify the two plunger gates being used
p_range (Tuple[Tuple[float, float, int], Tuple[float, float, int]]) – specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points))
point_avgs (int)
full_avgs (int)
- meas_window_scan(p_gates, p_range, step_time, point_avgs=10, full_avgs=10)
Performs a 2D sweep of the measurement coordinate. Here we are using a series of fast steps to approximate a ramp.
- Parameters:
p_gates (Tuple[spinqick.helper_functions.spinqick_enums.GateNames, spinqick.helper_functions.spinqick_enums.GateNames]) – specify the two plunger gates being used
p_range (Tuple[Tuple[float, float, int], Tuple[float, float, int]]) – specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points))
step_time (float) – time per step in each ramp, in microseconds. This uses a series of steps to approximate a ramp because it is challenging to code a sweep of the start and endpoints of a ramp in qick api.
point_avgs (int)
full_avgs (int)