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: |
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,
)