From ae1e2dbc385625c317ec63e04bbe272d8cb148aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Rist=C3=A8?= Date: Fri, 8 May 2020 15:37:34 -0400 Subject: [PATCH 1/3] Optional meas channels for RB Input logical channels (if any) instead of string or full channel library --- QGL/BasicSequences/RB.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/QGL/BasicSequences/RB.py b/QGL/BasicSequences/RB.py index 0bfa6356..d76b27ec 100644 --- a/QGL/BasicSequences/RB.py +++ b/QGL/BasicSequences/RB.py @@ -247,7 +247,7 @@ def SingleQubitLeakageRB(qubit, seqs, pi2args, cliff_type='std', -def TwoQubitRB(q1, q2, seqs, meas_qubits='all', +def TwoQubitRB(q1, q2, seqs, meas_qubits=None, cliff_type='std', showPlot=False, suffix="", @@ -264,8 +264,8 @@ def TwoQubitRB(q1, q2, seqs, meas_qubits='all', Logical channel to implement RB seqs : int iterable list of lists of Clifford group integers produced by create_RB_seqs - meas_qubits : iterableof strings, string, optional - list of qubits to measure or 'ALL' to measure all qubits + meas_qubits : iterable of Channels.LogicalChannel, optional + list of qubits to measure or None (default) to measure all qubits cliff_type : string, optional Clifford library to use for RB -> ['STD', 'DIAC', 'AC', 'XYX'] showPlot : boolean, optional @@ -298,7 +298,7 @@ def TwoQubitRB(q1, q2, seqs, meas_qubits='all', #Add the measurement to all sequences for seq in seqsBis: - if meas_qubits.upper() == "ALL": + if not meas_qubits: seq.append(MEAS(q1) * MEAS(q2)) else: seq.append(reduce(operator.mul, [MEAS(q) for q in meas_qubits])) From 3b0802d6e0e1409b233863c21ba75f5d215d11e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Rist=C3=A8?= Date: Mon, 11 May 2020 16:34:43 -0400 Subject: [PATCH 2/3] Fix meas channels for RB --- QGL/BasicSequences/RB.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/QGL/BasicSequences/RB.py b/QGL/BasicSequences/RB.py index d76b27ec..f0ea9aaf 100644 --- a/QGL/BasicSequences/RB.py +++ b/QGL/BasicSequences/RB.py @@ -299,9 +299,8 @@ def TwoQubitRB(q1, q2, seqs, meas_qubits=None, #Add the measurement to all sequences for seq in seqsBis: if not meas_qubits: - seq.append(MEAS(q1) * MEAS(q2)) - else: - seq.append(reduce(operator.mul, [MEAS(q) for q in meas_qubits])) + meas_qubits = (q1,q2) + seq.append(reduce(operator.mul, [MEAS(q) for q in meas_qubits])) axis_descriptor = [{ 'name': 'length', @@ -312,7 +311,7 @@ def TwoQubitRB(q1, q2, seqs, meas_qubits=None, #Tack on the calibration sequences if add_cals: - seqsBis += create_cal_seqs((q1, q2), 2) + seqsBis += create_cal_seqs((q1, q2, 2, measChans = meas_qubits) axis_descriptor.append(cal_descriptor((q1, q2), 2)) metafile = compile_to_hardware(seqsBis, 'RB/RB', axis_descriptor = axis_descriptor, suffix = suffix, extra_meta = {'sequences':seqs}) From 032d17997af6b54592bb9d55aa7073f6ec5d5a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Rist=C3=A8?= Date: Mon, 11 May 2020 17:12:56 -0400 Subject: [PATCH 3/3] Oops --- QGL/BasicSequences/RB.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QGL/BasicSequences/RB.py b/QGL/BasicSequences/RB.py index f0ea9aaf..d9ba8c67 100644 --- a/QGL/BasicSequences/RB.py +++ b/QGL/BasicSequences/RB.py @@ -311,7 +311,7 @@ def TwoQubitRB(q1, q2, seqs, meas_qubits=None, #Tack on the calibration sequences if add_cals: - seqsBis += create_cal_seqs((q1, q2, 2, measChans = meas_qubits) + seqsBis += create_cal_seqs((q1, q2), 2, measChans = meas_qubits) axis_descriptor.append(cal_descriptor((q1, q2), 2)) metafile = compile_to_hardware(seqsBis, 'RB/RB', axis_descriptor = axis_descriptor, suffix = suffix, extra_meta = {'sequences':seqs})