Skip to content

Commit

Permalink
refactor: Fix parking and add drive_delay
Browse files Browse the repository at this point in the history
  • Loading branch information
andrea-pasquale committed Feb 3, 2025
1 parent c9d2602 commit 7964b3f
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def _aquisition(
for pair in targets:
# order the qubits so that the low frequency one is the first
ordered_pair = order_pair(pair, platform)
sequence, flux_pulse, ro_delays = chevron_sequence(
sequence, flux_pulse, parking_pulses, delays = chevron_sequence(
platform=platform,
ordered_pair=ordered_pair,
duration_max=params.duration_max,
Expand All @@ -148,7 +148,7 @@ def _aquisition(
sweeper_duration = Sweeper(
parameter=Parameter.duration,
range=(params.duration_min, params.duration_max, params.duration_step),
pulses=[flux_pulse] + ro_delays,
pulses=[flux_pulse] + delays + parking_pulses,
)

ro_high = list(sequence.channel(platform.qubits[ordered_pair[1]].acquisition))[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def _aquisition(
for pair in targets:
# order the qubits so that the low frequency one is the first
ordered_pair = order_pair(pair, platform)
sequence, flux_pulse, ro_delays = chevron_sequence(
sequence, flux_pulse, parking_pulses, delays = chevron_sequence(
platform=platform,
ordered_pair=ordered_pair,
duration_max=params.duration_max,
Expand All @@ -110,7 +110,7 @@ def _aquisition(
sweeper_duration = Sweeper(
parameter=Parameter.duration,
range=(params.duration_min, params.duration_max, params.duration_step),
pulses=[flux_pulse] + ro_delays,
pulses=[flux_pulse] + delays + parking_pulses,
)

ro_high = list(sequence.channel(platform.qubits[ordered_pair[1]].acquisition))[
Expand Down
9 changes: 8 additions & 1 deletion src/qibocal/protocols/two_qubit_interaction/chevron/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@ def chevron_sequence(
sequence.append((flux_channel, Delay(duration=drive_duration)))
sequence.append((flux_channel, flux_pulse))

parking_pulses = []
if parking:
for ch, pulse in raw_flux_sequence:
if not isinstance(pulse, VirtualZ) and ch != flux_channel:
sequence.append((ch, Delay(duration=drive_duration)))
sequence.append((ch, pulse))
parking_pulses.append(pulse)

flux_duration = max(flux_pulse.duration, raw_flux_sequence.duration)

Expand Down Expand Up @@ -79,7 +81,12 @@ def chevron_sequence(
# add readout
sequence += low_natives.MZ() + high_natives.MZ()

return sequence, flux_pulse, [ro_low_delay, ro_high_delay]
return (
sequence,
flux_pulse,
parking_pulses,
[ro_low_delay, ro_high_delay, drive_delay],
)


# fitting function for single row in chevron plot (rabi-like curve)
Expand Down

0 comments on commit 7964b3f

Please sign in to comment.