spinqick.experiments.psb_setup ============================== .. py:module:: spinqick.experiments.psb_setup .. autoapi-nested-parse:: Defines the PsbSetup class which is used for setting up Pauli Spin Blockade spin-to-charge conversion. Attributes ---------- .. autoapisummary:: spinqick.experiments.psb_setup.logger Classes ------- .. autoapisummary:: spinqick.experiments.psb_setup.PsbSetup Module Contents --------------- .. py:data:: logger .. py:class:: PsbSetup(soccfg, soc, voltage_source, **kwargs) Bases: :py:obj:`spinqick.core.dot_experiment.DotExperiment` This class holds functions that wrap the QICK classes for setting up PSB readout. Initialize with information about your rfsoc and your experimental setup. :param soccfg: qick config object (QickConfig) :param soc: QickSoc object :param voltage_source: Initialized DC voltage source object. This is used here for saving the DC voltage state each time data is saved. .. py:attribute:: soccfg .. py:attribute:: soc .. py:attribute:: reference :value: True .. py:attribute:: thresh :value: True .. py:attribute:: threshold :value: 0 .. py:attribute:: vdc .. py:property:: psb_config Get psb config for selected qubit from experiment config. .. py:method:: 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. :param num_measurements: Total number of measurements :param reference: perform a reference measurement and report the difference between the two measurements :param fit: if True, fit results to a pair of gaussians :param use_gmm: use gaussian mixtures model to fit gaussians :log_scale: if true, plot y axis in log scale .. py:method:: idle_cell_scan(p_gates, p_range, point_avgs = 10, full_avgs = 10) Performs a 2D sweep of idle coordinate. :param p_gates: specify the two plunger gates being used :param p_range: specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points)) .. py:method:: flush_window_scan(p_gates, p_range, point_avgs = 10, full_avgs = 10) Performs a 2D sweep of flush coordinate. :param p_gates: specify the two plunger gates being used :param p_range: specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points)) .. py:method:: 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. :param p_gates: specify the two plunger gates being used :param p_range: specify the range of each axis sweep. ((px_start, px_stop, px_points), (py_start, py_stop, py_points)) :param step_time: 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.