Skip to content

laboneq_applications.experiments.iq_blobs

This module defines the IQ_blob experiment.

In this experiment, we perform single-shot measurements with the qubits prepared in the states g, e, and/or f.

The IQ blob experiment has the following pulse sequence:

qb --- [ prepare transition ] --- [ measure ]

IQBlobExperimentOptions

Options for the iq_blobs experiment.

The purpose of this class is to change the default value of averaging_mode in BaseExperimentOptions.

Attributes:

Name Type Description
averaging_mode AveragingMode

Averaging mode used for the experiment Default: AveragingMode.SINGLE_SHOT

averaging_mode: AveragingMode = workflow.option_field(AveragingMode.SINGLE_SHOT, description='Averaging mode used for the experiment') class-attribute instance-attribute

IQBlobExperimentWorkflowOptions

Options for the iq_blobs experiment workflow.

Attributes:

Name Type Description
do_analysis bool

Whether to run the analysis workflow. Default: True

do_analysis: bool = workflow.option_field(True, description='Whether to run the analysis workflow.') class-attribute instance-attribute

create_experiment(qpu, qubits, states, options=None)

Creates an IQ-blob Experiment.

Parameters:

Name Type Description Default
qpu QPU

The qpu consisting of the original qubits and quantum operations.

required
qubits Qubits

The qubit to run the experiments on.

required
states Sequence[str]

The basis states the qubits should be prepared in. May be either a string, e.g. "gef", or a list of letters, e.g. ["g","e","f"].

required
options IQBlobExperimentOptions | None

The options for building the experiment as an in stance of [IQBlobExperimentOptions]. See the docstring of this class for more details.

None

Returns:

Name Type Description
experiment Experiment

The generated LabOne Q experiment instance to be compiled and executed.

Example
options = IQBlobExperimentOptions()
options.count(10)
setup = DeviceSetup()
qpu = QPU(
    qubits=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
    quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_qubits()
create_experiment(
    qpu=qpu,
    qubits=[temp_qubits[0],temp_qubits[1]],
    states="ge",
    options=options,
)

experiment_workflow(session, qpu, qubits, states, temporary_parameters=None, options=None)

The IQ-blob experiment Workflow.

The workflow consists of the following steps:

Parameters:

Name Type Description Default
session Session

The connected session to use for running the experiment.

required
qpu QPU

The qpu consisting of the original qubits and quantum operations.

required
qubits Qubits

The qubits to run the experiments on.

required
states Sequence[str]

The basis states the qubits should be prepared in. May be either a string, e.g. "gef", or a list of letters, e.g. ["g","e","f"].

required
temporary_parameters dict[str, dict | TransmonParameters] | None

The temporary parameters to update the qubits with.

None
options IQBlobExperimentWorkflowOptions | None

The options for building the workflow as an instance of [TuneUpWorkflowOptions]. See the docstring of this class for more details.

None

Returns:

Name Type Description
WorkflowBuilder None

The builder for the experiment workflow.

Example
options = experiment_workflow.options()
options.count(10)
qpu = QPU(
    qubits=[TunableTransmonQubit("q0"), TunableTransmonQubit("q1")],
    quantum_operations=TunableTransmonOperations(),
)
temp_qubits = qpu.copy_qubits()
result = experiment_workflow(
    session=session,
    qpu=qpu,
    qubits=[temp_qubits[0],temp_qubits[1]],
    states="ge",
    options=options,
)