The phase shift correction in enable_eom(..., correct_phase_drift=True) was including the fall time before the buffer, while it should have considered just the buffer.
The correction in add_eom_pulse() was changing only the phase of the added pulse while it should have also shifted the phase reference by this amount
Defines a custom Pulse.__eq__(): This was needed for the UTs of correct_phase_drift. The custom method introduces a minimal precision when comparing phase values and it is insensitive to the % (2 *np.pi) wrapping.
Removes the fall time from the record of the last time a qubit was used. The fall time was added only so that the phase_shifts were drawn after the modulated pulse was over; in hindsight, this was excessive as it prevents two consecutive pulses (with a phase shift between them) to be placed back-to-back even under the no-delay protocol.
correct_phase_drift
:enable_eom(..., correct_phase_drift=True)
was including the fall time before the buffer, while it should have considered just the buffer.add_eom_pulse()
was changing only the phase of the added pulse while it should have also shifted the phase reference by this amountPulse.__eq__()
: This was needed for the UTs ofcorrect_phase_drift
. The custom method introduces a minimal precision when comparing phase values and it is insensitive to the% (2 *np.pi)
wrapping.phase_shifts
were drawn after the modulated pulse was over; in hindsight, this was excessive as it prevents two consecutive pulses (with a phase shift between them) to be placed back-to-back even under theno-delay
protocol.