qibocal.protocols.twpa package¶
Submodules¶
qibocal.protocols.twpa.twpa module¶
Protocol to calibrate TWPA power and frequency for a specific probe frequency.
- class qibocal.protocols.twpa.twpa.TwpaCalibrationParameters(freq_width: float, freq_step: float, twpa_freq_width: int, twpa_freq_step: int, twpa_pow_width: int, twpa_pow_step: int, nshots: int | None = None, relaxation_time: int | None = None)[source]¶
Bases:
Parameters
TwpaCalibration runcard inputs.
- class qibocal.protocols.twpa.twpa.TwpaCalibrationResults(data: dict[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], ndarray[tuple[Any, ...], dtype[_ScalarT]]], twpa_frequency: dict[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], float], twpa_power: dict[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], float])[source]¶
Bases:
Results
TwpaCalibration outputs.
- data: dict[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], ndarray[tuple[Any, ...], dtype[_ScalarT]]]¶
Array with average gain for each qubit.
- twpa_frequency: dict[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], float]¶
TWPA frequency [GHz].
- class qibocal.protocols.twpa.twpa.TwpaCalibrationData(data: dict[~typing.Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], ~numpy.ndarray[tuple[~typing.Any, ...], ~numpy.dtype[~numpy._typing._array_like._ScalarT]]] = <factory>, twpa_frequency: dict[~typing.Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], list[float]] = <class 'list'>, twpa_power: dict[~typing.Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], list[float]] = <class 'list'>, reference_value: dict[~typing.Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])], list[float]] = <class 'list'>)[source]¶
Bases:
Data
TwpaCalibration data acquisition.
- _to_npz(path: Path, filename: str)¶
Helper function to use np.savez while converting keys into strings.
- property pairs¶
Access qubit pairs ordered alphanumerically from data structure.
- property qubits¶
Access qubits from data structure.
- register_qubit(dtype, data_keys, data_dict)¶
Store output for single qubit.
- qibocal.protocols.twpa.twpa._acquisition(params: TwpaCalibrationParameters, platform: Platform, targets: list[Annotated[int | str, FieldInfo(annotation=NoneType, required=True, metadata=[_PydanticGeneralMetadata(union_mode='left_to_right')])]]) TwpaCalibrationData [source]¶
Acquisition function for TwpaCalibration.
First perform a scan over the readout probe with the TWPA off, then we sweep the TWPA power and frequency. The gain is computed as the norm of the complex readout signal divided the norm of the complex readout signal without TWPA.
- qibocal.protocols.twpa.twpa._fit(data: TwpaCalibrationData) TwpaCalibrationResults [source]¶
Post-processing function for TwpaCalibration.
After computing the averaged gain we select the corresponding twpa frequency and power that maximizes the gain for each qubit.
- qibocal.protocols.twpa.twpa._plot(data: TwpaCalibrationData, fit: TwpaCalibrationResults, target)[source]¶
Plotting for TwpaCalibration.
- qibocal.protocols.twpa.twpa.twpa_calibration = Routine(acquisition=<function _acquisition>, fit=<function _fit>, report=<function _plot>, update=<function _dummy_update>, two_qubit_gates=False)¶
Resonator TWPA Frequency Routine object.