Skip to content

laboneq_applications.contrib.analysis.time_rabi_chevron

This module defines the analysis for a time rabi chevron experiment.

The experiment is defined in laboneq_applications.experiments.

In this analysis, we first interpret the raw data into qubit populations using principal component analysis or rotation and projection on the measured calibration states. Then we plot the data.

PlotPopulationRabiChevronOptions

Options for the calculate_qubit_population_2d task.

Attributes:

Name Type Description
cal_states str | tuple

The states to prepare in the calibration traces. Can be any string or tuple made from combining the characters 'g', 'e', 'f'. Default: same as transition

do_pca bool

Whether to perform principal component analysis on the raw data independent of whether there were calibration traces in the experiment. Default: False.

Additional attributes from BasePlottingOptions: save_figures: Whether to save the figures. Default: True. close_figures: Whether to close the figures. Default: True.

cal_states: str | tuple = option_field('ge', description='The states to prepare in the calibration traces.') class-attribute instance-attribute

do_pca: bool = option_field(False, description='Whether to perform principal component analysis on the raw data independent of whether there were calibration traces in the experiment.') class-attribute instance-attribute

analysis_workflow(result, qubits, frequencies, lengths, options=None)

The Time Rabi analysis Workflow.

The workflow consists of the following steps:

Parameters:

Name Type Description Default
result RunExperimentResults

The experiment results returned by the run_experiment task.

required
qubits QuantumElements

The qubits on which to run the analysis. May be either a single qubit or a list of qubits. The UIDs of these qubits must exist in the result.

required
frequencies QubitSweepPoints

The qubit frequencies to sweep over for the qubit drive pulse. If qubits is a single qubit, frequencies must be a list of numbers or an array. Otherwise, it must be a list of lists of numbers or arrays.

required
lengths QubitSweepPoints

The lengths to sweep over for each qubit drive pulse. lengths must be a list of numbers or an array. Otherwise it must be a list of lists of numbers or arrays.

required
options TuneUpAnalysisWorkflowOptions | None

The options for building the workflow, passed as an instance of [TuneUpAnalysisWorkflowOptions].

None

Returns:

Name Type Description
WorkflowBuilder None

The builder for the analysis workflow.

Example
options = analysis_workflow.options()
result = analysis_workflow(
    results=results
    qubits=[q0, q1],
    frequencies=[
        np.linspace(1.5e9, 2.0e9, 11),
        np.linsapce(1.5e9, 2.0e9, 11),
    ],
    lengths=[
        np.linspace(10e-9, 100e-9, 11),
        np.linspace(10e-9, 100e-9, 11),
    ],
    options=options,
).run()

plot_population(qubits, processed_data_dict, options=None)

Create the time-Rabi plots.

Parameters:

Name Type Description Default
qubits QuantumElements

The qubits on which to run the analysis. May be either a single qubit or a list of qubits. The UIDs of these qubits must exist in the processed_data_dict, fit_results and qubit_parameters.

required
processed_data_dict dict[str, dict[str, ArrayLike]]

the processed data dictionary returned by process_raw_data

required
options PlotPopulationRabiChevronOptions | None

The options for this task as an instance of [PlotPopulationRabiChevronOptions]. See the docstring of this class for more details.

None

Returns:

Type Description
dict[str, Figure]

dict with qubit UIDs as keys and the figures for each qubit as values.