Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
efba8ac
Two-qubit gate calibration routines (Jorge)
MiguelSMoreira Apr 21, 2022
c843b79
Two-qubit gate calibration routines (2) (Jorge)
MiguelSMoreira Apr 21, 2022
4106b13
Changes in Pagani setup
MiguelSMoreira Jun 16, 2022
06f3116
Surface-17 changes in pagani
MiguelSMoreira Jun 23, 2022
cc65fdf
Routine commit (Jorge)
MiguelSMoreira Jul 7, 2022
8c249e5
Changes in pagani setup + New optimal RO weights analysis
MiguelSMoreira Sep 5, 2022
79595e5
Changes for 2nd state readout and LRU gate
jorgemfm27 Sep 22, 2022
008025d
Git police (Sean) :(
jorgemfm27 Sep 22, 2022
bb24d91
Correction of errors in RO analysis
jorgemfm27 Sep 26, 2022
ebb61b1
Introducing LRU routines!
jorgemfm27 Sep 26, 2022
5deb5e0
SSRO bug correction
jorgemfm27 Sep 26, 2022
68dc623
Pagani sync (Introducing LRU routines and gate process tomography)
jorgemfm27 Oct 5, 2022
6dd625d
Fixes to mw lutman virtual phases; flipping function for ef
jorgemfm27 Oct 10, 2022
5314caf
Fix to the ef flipping (again)
jorgemfm27 Oct 10, 2022
9591546
Routine commit
jorgemfm27 Oct 18, 2022
69af882
LRU flux lutman
Oct 18, 2022
2ebae3e
Routine commit
jorgemfm27 Oct 31, 2022
829df7a
Pagani routine commit (Added LRU related functionalty)
jorgemfm27 Dec 1, 2022
42a38d7
Routine commit pagani
jorgemfm27 Jan 13, 2023
03ed2ec
SSRO analysis now saves qois in hdf5 file
Jan 20, 2023
494708a
Routine commit (Added S17GBT functionality)
jorgemfm27 Jun 2, 2023
ad07ccc
Merge branch 'pagani_detached' of https://github.com/DiCarloLab-Delft…
jorgemfm27 Jun 2, 2023
ce7a38a
Pagani further GBT updates
jorgemfm27 Jul 4, 2023
27a4144
Routine commit
jorgemfm27 Jul 31, 2023
5c0d38d
Changes for unipolar and asymmetric pulses for TLS avoidance
jorgemfm27 Aug 24, 2023
d22ac8e
Routine commit
jorgemfm27 Sep 18, 2023
05f8896
Routine commit (stable long cryoscope)
jorgemfm27 Oct 5, 2023
55c168e
Added optional second excited state preparation for Chevron oql program
MiniSean Nov 2, 2023
68d3ff7
Fixed array to None comparison to use 'is' instead of '=='.
MiniSean Nov 2, 2023
18c9f79
Fixed color visibility in 'Ramsey_curves_plotfn'
MiniSean Nov 7, 2023
264ea10
Updated `apply_parking_settings` part of AB and Tmid calibration wrap…
MiniSean Nov 8, 2023
c6a1590
Updated fix addressing amplitude (from frequency) conversion calculat…
MiniSean Nov 10, 2023
b77a952
Updated (temporarily) switched back to calibrating parity check in is…
MiniSean Nov 10, 2023
e2c7ac7
Fixed bug in repeated parity tomography. Preparing with resonator com…
MiniSean Nov 13, 2023
f77c686
Updated pycqed __init__.py to make sure it raises a warning instead o…
MiniSean Nov 22, 2023
a22fead
Added functionality from QCoExtended repository. Allows for organizin…
MiniSean Nov 22, 2023
df9c2fb
Added method for obtaining all data qubit ID's that are part of ancil…
MiniSean Nov 22, 2023
59f7a23
Updated defect rate analysis by properly passing down data-qubits arg…
MiniSean Nov 24, 2023
c5b385e
Updated defect rate measurement function to include schedule for repe…
MiniSean Nov 24, 2023
d5bf479
Updated config file for distance-9 repetition code.
MiniSean Nov 27, 2023
85723eb
Fixed missing reference to 'qubits'
jorgemfm27 Dec 28, 2023
f099acb
Updated fixed typo in rx180 operation name
MiniSean Jan 3, 2024
24ea12e
Added standalone measurement function for repetition code.
MiniSean Jan 3, 2024
0b66e15
Added W.I.P. measurement function for fluxed echo, in preparation for…
MiniSean Jan 24, 2024
774c383
Working distance-3 repetition code conditions (Z4-Z2). Includes 0 rou…
MiniSean Feb 2, 2024
85aa67d
Added tqdm enumerators for base analysis processes
MiniSean Feb 3, 2024
6bc8a7f
Added missing __init__ for module
MiniSean Feb 3, 2024
41cb995
Added upgraded analysis for repeated stabilizer measurements that can…
MiniSean Feb 3, 2024
d9ea548
Fixes long standing bug of 'resonator jumping', caused by reversed or…
MiniSean Feb 27, 2024
3aa73e0
Added argument for disabling metadata storage for spectroscopy methods.
MiniSean Feb 27, 2024
4c436d0
updated Chevron measurement label
MiniSean Mar 15, 2024
9ed26ba
Resolved merge conflicts between pagani-detached and develop. Require…
MiniSean Mar 20, 2024
f72016f
Added measurement function for (2qubit conditional oscillation) leaka…
MiniSean Mar 22, 2024
a64d4da
Added measurement function and analysis for new DC-flux sweetspot cal…
MiniSean Mar 25, 2024
59d6233
Added more detailed analysis to the (flux) voltage-to-frequency calib…
MiniSean Mar 25, 2024
3ff9f7f
Refactored moved qubit (D4 #15) from mw_3 (slot 9) to mw_1 (slot 4)
MiniSean Mar 26, 2024
54ac2c5
Added missing parameter update check
MiniSean Mar 26, 2024
77d6afe
Added general compatibility fixes.
xxxyj Mar 27, 2024
efb26b3
Updated measure_flux_arc_dc_conditional_oscillation to run metadata s…
MiniSean Mar 27, 2024
fcc8352
Updated improvements to parking pulse generation (readability).
MiniSean Mar 27, 2024
42649f6
Updated W.I.P. changes
MiniSean Mar 27, 2024
ffbac35
Fixes multi-qubit calibration points
MiniSean Mar 27, 2024
50dbeab
Updated improvements to repetition code analysis and plotting
MiniSean Mar 27, 2024
5e62abe
Updated W.I.P. changes
MiniSean Mar 27, 2024
bf176f4
Updated long-time changes accumulated. Ready for setup transition
MiniSean Mar 27, 2024
962bb9f
Updated minor changes left and right.
MiniSean Mar 27, 2024
4280108
Added custom driver for HDAWG error injection
MiniSean Mar 27, 2024
ff8e4c1
Fixed version mismatch qutip (rotation)
MiniSean Mar 27, 2024
e1f95f2
Refactored removed 'A', 'B' print statements. Most likely used for de…
MiniSean Mar 28, 2024
8ba94de
Updated bringing branch to basic working version. Awaiting last chang…
MiniSean Mar 28, 2024
8407008
Resolved merge conflicts after latest pagani-detached updates
MiniSean Mar 28, 2024
17d24a4
Refactored removed microcircuit switch connection function. Is alread…
MiniSean Mar 28, 2024
70054d2
Refactored changed all function calls using weight_function_I and wei…
MiniSean Mar 28, 2024
035aa06
Fixed bug when attempting .decode() on hdf5 (bytes) object. With the …
MiniSean Apr 3, 2024
b8fc7c7
Fixed bug coming from incomplete latex typing
MiniSean Apr 10, 2024
9066ba0
Updated config file with new (automated) generated repcode-words. Upd…
MiniSean Apr 11, 2024
8059452
Updated method arguments and deprecation warnings
MiniSean Apr 11, 2024
70bbadc
Refactored expose hardcoded mw_duration parameter for correct dynamic…
MiniSean Apr 30, 2024
1c24738
Added dedicated HDAWG class for Long-cryoscope experiments
MiniSean May 6, 2024
dfbf8dd
Updated long cryoscope measurement to use dedicated hdawg class
MiniSean May 6, 2024
9cebe68
Merge branch '714-detached-pagani-sync' of github.com:DiCarloLab-Delf…
MiniSean May 6, 2024
e23d7d7
Updated repetition code analysis
MiniSean May 8, 2024
6e8b8ee
Added latency measurement for (microwave) latency vs (microwave) chan…
MiniSean Jun 12, 2024
5c08714
Added microwave latency vs flux analysis based on qce_utils library
MiniSean Jun 19, 2024
efce6cc
Added support for pre-park SNZ pulses. Necessary in very crowded gate…
MiniSean Jun 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,10 @@ def prepare_UHFQC(self):
# Upload the correct integration weigths
if self.single_sideband_demod():
self._acquisition_instr.prepare_SSB_weight_and_rotation(
IF=self.f_RO_mod(), weight_function_I=0, weight_function_Q=1)
IF=self.f_RO_mod(), weight_chI=0, weight_chQ=1)
else:
self._acquisition_instr.prepare_DSB_weight_and_rotation(
IF=self.f_RO_mod(), weight_function_I=0, weight_function_Q=1)
IF=self.f_RO_mod(), weight_chI=0, weight_chQ=1)

if self._UHFQC_awg_parameters_changed and self.auto_seq_loading():
# self._acquisition_instr.awg_sequence_acquisition() # Dirty hack to get UHFLI to cooperate
Expand Down Expand Up @@ -553,10 +553,10 @@ def prepare_UHFQC(self):
# prepare weights and rotation
if self.single_sideband_demod():
self._acquisition_instr.prepare_SSB_weight_and_rotation(
IF=self.f_RO_mod(), weight_function_I=0, weight_function_Q=1)
IF=self.f_RO_mod(), weight_chI=0, weight_chQ=1)
else:
self._acquisition_instr.prepare_DSB_weight_and_rotation(
IF=self.f_RO_mod(), weight_function_I=0, weight_function_Q=1)
IF=self.f_RO_mod(), weight_chI=0, weight_chQ=1)

# this sets the result to integration and rotation outcome
self._acquisition_instr.qas_0_result_source(2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -421,13 +421,13 @@ def prepare_readout(self):
if self.RO_acq_weights() == 'SSB':
UHFQC.prepare_SSB_weight_and_rotation(
IF=self.f_RO_mod(),
weight_function_I=self.RO_acq_weight_function_I(),
weight_function_Q=self.RO_acq_weight_function_Q())
weight_chI=self.RO_acq_weight_function_I(),
weight_chQ=self.RO_acq_weight_function_Q())
elif self.RO_acq_weights() == 'DSB':
UHFQC.prepare_DSB_weight_and_rotation(
IF=self.f_RO_mod(),
weight_function_I=self.RO_acq_weight_function_I(),
weight_function_Q=self.RO_acq_weight_function_Q())
weight_chI=self.RO_acq_weight_function_I(),
weight_chQ=self.RO_acq_weight_function_Q())
elif self.RO_acq_weights() == 'optimal':
if (self.RO_optimal_weights_I() is None or
self.RO_optimal_weights_Q() is None):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -850,8 +850,8 @@ def measure_ssro(self, no_fits=False,
MC=MC,
AWG=self.AWG.get_instr(), acquisition_instr=self._acquisition_instr,
pulse_pars=self.pulse_pars, RO_pars=self.RO_pars, IF=self.f_RO_mod(),
weight_function_I=self.RO_acq_weight_function_I(),
weight_function_Q=self.RO_acq_weight_function_Q(),
weight_chI=self.RO_acq_weight_function_I(),
weight_chQ=self.RO_acq_weight_function_Q(),
nr_shots=nr_shots, one_weight_function_UHFQC=one_weight_function_UHFQC,
optimized_weights=optimized_weights,
integration_length=self.RO_acq_integration_length(),
Expand Down
8 changes: 7 additions & 1 deletion pycqed/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from pycqed.version import __version__
import sys
import warnings

if 1: # FIXME: hack should be removed
module_name = "qcodes"
Expand All @@ -13,7 +14,12 @@
"NB: Any `qcodes` submodule must also be imported after pycqed.")
# We need to import this here so that any later imports of `QtPlot` from qcodes
# KEEP ABOVE any QtPlot import!!!
from pycqed.measurement import qcodes_QtPlot_monkey_patching
warnings.warn(message="Attempts to apply qcodes QtPlot monkey patch.")
try:
# from qcodes import plots
from pycqed.measurement import qcodes_QtPlot_monkey_patching
except ImportError as e:
warnings.warn(message="Failed to apply qcodes QtPlot monkey patch.")

# from pycqed import measurement
# from pycqed import analysis
Expand Down
2 changes: 1 addition & 1 deletion pycqed/analysis/analysis_toolbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import colorsys as colors
# FIXME: was commented out, breaks code below
import qutip as qtp
import qutip.metrics as qpmetrics
import qutip.core.metrics as qpmetrics

from copy import deepcopy
from collections import OrderedDict as od
Expand Down
38 changes: 10 additions & 28 deletions pycqed/analysis/measurement_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -2531,8 +2531,8 @@ def run_default_analysis(self, print_fit_results=False,

verbose = kw.get('verbose', False)
# Get old values for qubit frequency
instr_set = self.data_file['Instrument settings']
try:
instr_set = self.data_file['Instrument settings']
if self.for_ef:
self.qubit_freq_spec = \
float(instr_set[self.qb_name].attrs['f_ef_qubit'])
Expand Down Expand Up @@ -4697,24 +4697,11 @@ def run_default_analysis(self, show=False, close_file=False, **kw):

units = SI_prefix_and_scale_factor(val=max(abs(self.ax.get_xticks())),
unit=self.sweep_unit[0])[1]
# Get old values
instr_set = self.data_file['Instrument settings']
try:
if self.for_ef:
T1_old = float(
instr_set[self.qb_name].attrs['T1_ef']) * 1e6
else:
T1_old = float(instr_set[self.qb_name].attrs['T1']) * 1e6
old_vals = '\nold $T_1$ = {:.5f} '.format(T1_old) + units
except (TypeError, KeyError, ValueError):
logging.warning('qb_name is None. Old parameter values will '
'not be retrieved.')
old_vals = ''

textstr = ('$T_1$ = {:.5f} '.format(T1_micro_sec) +
units +
' $\pm$ {:.5f} '.format(T1_err_micro_sec) +
units + old_vals)
units)

self.fig.text(0.5, -0.2, textstr, transform=self.ax.transAxes,
fontsize=self.font_size,
Expand Down Expand Up @@ -4778,7 +4765,8 @@ class Ramsey_Analysis(TD_Analysis):
Most kw parameters for Rabi_Analysis are also used here.
"""

def __init__(self, label='Ramsey', phase_sweep_only=False, **kw):
def __init__(self, label='Ramsey', phase_sweep_only=False,
**kw):
kw['label'] = label
kw['h5mode'] = 'r+'
self.phase_sweep_only = phase_sweep_only
Expand Down Expand Up @@ -4970,15 +4958,17 @@ def run_default_analysis(self, print_fit_results=False,
close_main_figure=True, save_fig=False, **kw)

verbose = kw.get('verbose', False)
# Get old values for qubit frequency
instr_set = self.data_file['Instrument settings']
try:
if self.for_ef:
# Get old values for qubit frequency
instr_set = self.data_file['Instrument settings']
self.qubit_freq_spec = \
float(instr_set[self.qb_name].attrs['f_ef_qubit'])
elif 'freq_qubit' in kw.keys():
self.qubit_freq_spec = kw['freq_qubit']
else:
# Get old values for qubit frequency
instr_set = self.data_file['Instrument settings']
try:
self.qubit_freq_spec = \
float(instr_set[self.qb_name].attrs['f_qubit'])
Expand Down Expand Up @@ -6335,16 +6325,8 @@ def run_default_analysis(self, print_fit_results=False,

scale = SI_prefix_and_scale_factor(val=max(abs(ax.get_xticks())),
unit=self.sweep_unit[0])[0]

instr_set = self.data_file['Instrument settings']
try:
old_RO_freq = float(instr_set[self.qb_name].attrs['f_RO'])
old_vals = '\n$f_{\mathrm{old}}$ = %.5f GHz' % (
old_RO_freq * scale)
except (TypeError, KeyError, ValueError):
logging.warning('qb_name is None. Old parameter values will '
'not be retrieved.')
old_vals = ''

old_vals = ''

if ('hanger' in fitting_model) or ('complex' in fitting_model):
if kw['custom_power_message'] is None:
Expand Down
17 changes: 9 additions & 8 deletions pycqed/analysis/tomography.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# except ImportError as e:
# logging.warning('Could not import qutip, tomo code will not work')
import qutip as qtp
from qutip.qip import operations
import numpy as np
import time
import scipy
Expand Down Expand Up @@ -38,10 +39,10 @@ class TomoAnalysis_JointRO():
# The set of single qubit rotation matrixes used in the tomography
# measurement (will be assumed to be used on all qubits)
rotation_matrixes = [qtp.identity(2), qtp.sigmax(),
qtp.rotation(qtp.sigmax(), np.pi / 2),
qtp.rotation(qtp.sigmay(), np.pi / 2),
qtp.rotation(qtp.sigmax(), -np.pi / 2),
qtp.rotation(qtp.sigmay(), -np.pi / 2)]
operations.gates.rotation(qtp.sigmax(), np.pi / 2),
operations.gates.rotation(qtp.sigmay(), np.pi / 2),
operations.gates.rotation(qtp.sigmax(), -np.pi / 2),
operations.gates.rotation(qtp.sigmay(), -np.pi / 2)]
measurement_operator_labels = ['I', 'X', 'x', 'y', '-x', '-y']
# MAKE SURE THE LABELS CORRESPOND TO THE ROTATION MATRIXES DEFINED ABOVE

Expand Down Expand Up @@ -1164,10 +1165,10 @@ def run_default_analysis(self, **kw):
TomoAnalysis_JointRO.rotation_matrixes = [
qtp.identity(2),
qtp.sigmax(),
qtp.rotation(qtp.sigmay(), np.pi / 2),
qtp.rotation(qtp.sigmay(), -np.pi / 2),
qtp.rotation(qtp.sigmax(), np.pi / 2),
qtp.rotation(qtp.sigmax(), -np.pi / 2)]
operations.gates.rotation(qtp.sigmay(), np.pi / 2),
operations.gates.rotation(qtp.sigmay(), -np.pi / 2),
operations.gates.rotation(qtp.sigmax(), np.pi / 2),
operations.gates.rotation(qtp.sigmax(), -np.pi / 2)]
TomoAnalysis_JointRO.measurement_operator_labels = ['I', 'X', 'y',
'-y', 'x', '-x']
TomoAnalysis_JointRO.measurement_basis = [qtp.identity(2),
Expand Down
Loading