qibocal.protocols.couplers package#

Submodules#

qibocal.protocols.couplers.coupler_chevron module#

class qibocal.protocols.couplers.coupler_chevron.ChevronCouplersParameters(amplitude_min_factor: float, amplitude_max_factor: float, amplitude_step_factor: float, duration_min: float, duration_max: float, duration_step: float, dt: Optional[int] = 0, parking: bool = True, native_gate: Optional[str] = 'CZ')[source]#

Bases: ChevronParameters

native_gate: Optional[str] = 'CZ'#

Native gate to implement, CZ or iSWAP.

class qibocal.protocols.couplers.coupler_chevron.ChevronCouplersData(native_amplitude: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, sweetspot: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], float] = <factory>, data: dict[typing.Tuple[typing.Union[str, int], typing.Union[str, int]], numpy.ndarray[typing.Any, numpy.dtype[dtype([('amp', '<f8'), ('length', '<f8'), ('prob_high', '<f8'), ('prob_low', '<f8')])]]] = <factory>)[source]#

Bases: ChevronData

Data structure for chevron couplers protocol.

class qibocal.protocols.couplers.coupler_chevron.ChevronCouplersResults[source]#

Bases: Results

Empty fitting outputs for chevron couplers is not implemented in this case.

qibocal.protocols.couplers.coupler_chevron.plot(data: ChevronCouplersData, fit: ChevronCouplersResults, target)[source]#
qibocal.protocols.couplers.coupler_chevron.coupler_chevron = Routine(acquisition=<function _aquisition>, fit=<function _fit>, report=<function plot>, update=<function _dummy_update>, two_qubit_gates=True)#

Coupler cz/swap flux routine.

qibocal.protocols.couplers.coupler_qubit_spectroscopy module#

class qibocal.protocols.couplers.coupler_qubit_spectroscopy.CouplerSpectroscopyParametersQubit(freq_width: int, freq_step: int, bias_width: Optional[float] = None, bias_step: Optional[float] = None, measured_qubits: Optional[list[Union[str, int]]] = None, amplitude: Optional[Union[int, float]] = None)[source]#

Bases: CouplerSpectroscopyParameters

drive_duration: Optional[int] = 2000#

Drive pulse duration to excite the qubit before the measurement

qibocal.protocols.couplers.coupler_qubit_spectroscopy.coupler_qubit_spectroscopy = Routine(acquisition=<function _acquisition>, fit=<function _fit>, report=<function _plot>, update=<function _update>, two_qubit_gates=False)#

CouplerQubitSpectroscopy Routine object.

qibocal.protocols.couplers.coupler_resonator_spectroscopy module#

qibocal.protocols.couplers.coupler_resonator_spectroscopy.coupler_resonator_spectroscopy = Routine(acquisition=<function _acquisition>, fit=<function _fit>, report=<function _plot>, update=<function _update>, two_qubit_gates=False)#

CouplerResonatorSpectroscopy Routine object.

qibocal.protocols.couplers.utils module#

class qibocal.protocols.couplers.utils.CouplerSpectroscopyParameters(freq_width: int, freq_step: int, bias_width: Optional[float] = None, bias_step: Optional[float] = None, measured_qubits: Optional[list[Union[str, int]]] = None, amplitude: Optional[Union[int, float]] = None)[source]#

Bases: ResonatorFluxParameters

CouplerResonatorSpectroscopy and CouplerQubitSpectroscopy runcard inputs.

measured_qubits: Optional[list[Union[str, int]]] = None#

Qubit to measure from the pair

amplitude: Optional[Union[int, float]] = None#

Readout or qubit drive amplitude (optional). If defined, same amplitude will be used in all qubits. Otherwise the default amplitude defined on the platform runcard will be used

qibocal.protocols.couplers.utils.CouplerSpecType = dtype([('freq', '<f8'), ('bias', '<f8'), ('signal', '<f8'), ('phase', '<f8')])#

Custom dtype for coupler resonator spectroscopy.

class qibocal.protocols.couplers.utils.CouplerSpectroscopyResults(sweetspot: dict[Union[str, int], float], pulse_amp: dict[Union[str, int], float], fitted_parameters: dict[Union[str, int], dict[str, float]])[source]#

Bases: Results

CouplerResonatorSpectroscopy or CouplerQubitSpectroscopy outputs.

sweetspot: dict[Union[str, int], float]#

Sweetspot for each coupler.

pulse_amp: dict[Union[str, int], float]#

Pulse amplitude for the coupler.

fitted_parameters: dict[Union[str, int], dict[str, float]]#

Raw fitted parameters.

class qibocal.protocols.couplers.utils.CouplerSpectroscopyData(resonator_type: str, offset: dict[typing.Union[str, int], float] = <factory>, data: dict[typing.Union[str, int], numpy.ndarray[typing.Any, numpy.dtype[dtype([('freq', '<f8'), ('bias', '<f8'), ('signal', '<f8'), ('phase', '<f8')])]]] = <factory>)[source]#

Bases: Data

Data structure for CouplerResonatorSpectroscopy or CouplerQubitSpectroscopy.

resonator_type: str#

Resonator type.

offset: dict[Union[str, int], float]#

Qubit bias offset.

data: dict[typing.Union[str, int], numpy.ndarray[typing.Any, numpy.dtype[dtype([('freq', '<f8'), ('bias', '<f8'), ('signal', '<f8'), ('phase', '<f8')])]]]#

Raw data acquired.

register_qubit(qubit, freq, bias, signal, phase)[source]#

Store output for single qubit.