FineFrequencyCal#

class FineFrequencyCal(physical_qubits, calibrations, backend=None, cal_parameter_name='drive_freq', delay_duration=None, repetitions=None, auto_update=True, gate_name='sx')[source]#

A calibration version of the fine frequency experiment.

Analysis class reference

ErrorAmplificationAnalysis

Experiment options

These options can be set by the set_experiment_options() method.

Options
  • Defined in the class FineFrequencyCal:

    • dt (float)

      Default value: None
      The duration of the time unit dt of the delay and schedules in seconds.
  • Defined in the class BaseCalibrationExperiment:

    • result_index (int)

      Default value: -1
      The index of the result from which to update the calibrations.
    • group (str)

      Default value: "default"
      The calibration group to which the parameter belongs. This will default to the value “default”.
  • Defined in the class FineFrequency:

    • repetitions (List[int])

      Default value: [0, 1, 2, 3, 4, …]
      A list of the number of times that the delay is repeated.
    • delay_duration (int)

      Default value: None
      The duration of the delay as the number of dt s it contains. The total length of the delay in units of dt will be n times delay_duration where n also determines the rotation angle of the RZGate by \(n \pi/2\).
  • Defined in the class BaseExperiment:

    • max_circuits (Optional[int])

      Default value: None
      The maximum number of circuits per job when running an experiment on a backend.

See also

Initialization

See class FineFrequency for details.

Note that this class implicitly assumes that the target angle of the gate is \(\pi/2\) as seen from the default analysis options. This experiment can be seen as a calibration of a finite duration rz(pi/2) gate with any error attributed to a frequency offset in the qubit.

Parameters:
  • physical_qubits (Sequence[int]) – Sequence containing the qubit for which to run the fine frequency calibration.

  • calibrations (Calibrations) – The calibrations instance with the schedules.

  • backend (Backend | None) – Optional, the backend to run the experiment on.

  • cal_parameter_name (str | None) – The name of the parameter to update in the calibrations. This defaults to drive_freq.

  • delay_duration (int | None) – The duration of the delay at \(n=1\). If this value is not given then the duration of the gate named gate_name in the calibrations will be used.

  • auto_update (bool) – Whether to automatically update the calibrations or not. By default, this variable is set to True.

  • gate_name (str) – This argument is only needed if delay_duration is None. This should be the name of a valid schedule in the calibrations.

Attributes

analysis#

Return the analysis instance for the experiment.

Note

Analysis instance set to calibration experiment is implicitly patched to run calibration updater to update the parameters in the calibration table.

backend#

Return the backend for the experiment

calibrations#

Return the calibrations.

experiment_options#

Return the options for the experiment.

experiment_type#

Return experiment type.

num_qubits#

Return the number of qubits for the experiment.

physical_qubits#

Return the device qubits for the experiment.

run_options#

Return options values for the experiment run() method.

transpile_options#

Return the transpiler options for the run() method.

Methods

circuits()#

Return the list of quantum circuits to run.

Return type:

List[QuantumCircuit]

config()#

Return the config dataclass for this experiment

Return type:

ExperimentConfig

copy()#

Return a copy of the experiment

Return type:

BaseExperiment

classmethod from_config(config)#

Initialize an experiment from experiment config

Return type:

BaseExperiment

job_info(backend=None)#

Get information about job distribution for the experiment on a specific backend.

Parameters:

backend (Backend) – Optional, the backend for which to get job distribution information. If not specified, the experiment must already have a set backend.

Returns:

A dictionary containing information about job distribution.

  • ”Total number of circuits in the experiment”: Total number of circuits in the experiment.

  • ”Maximum number of circuits per job”: Maximum number of circuits in one job based on backend and experiment settings.

  • ”Total number of jobs”: Number of jobs needed to run this experiment on the currently set backend.

Return type:

dict

Raises:

QiskitError – if backend is not specified.

run(backend=None, analysis='default', timeout=None, **run_options)#

Run an experiment and perform analysis.

Parameters:
  • backend (Backend | None) – Optional, the backend to run the experiment on. This will override any currently set backends for the single execution.

  • analysis (BaseAnalysis | None) – Optional, a custom analysis instance to use for performing analysis. If None analysis will not be run. If "default" the experiments analysis() instance will be used if it contains one.

  • timeout (float | None) – Time to wait for experiment jobs to finish running before cancelling.

  • run_options – backend runtime options used for circuit execution.

Returns:

The experiment data object.

Raises:

QiskitError – If experiment is run with an incompatible existing ExperimentData container.

Return type:

ExperimentData

set_experiment_options(**fields)#

Set the experiment options.

Parameters:

fields – The fields to update the options

Raises:

AttributeError – If the field passed in is not a supported options

set_run_options(**fields)#

Set options values for the experiment run() method.

Parameters:

fields – The fields to update the options

See also

The Setting options for your experiment guide for code example.

set_transpile_options(**fields)#

Add a warning message.

Note

If your experiment has overridden _transpiled_circuits and needs transpile options then please also override set_transpile_options.

update_calibrations(experiment_data)[source]#

Update the qubit frequency based on the measured angle deviation.

The frequency of the qubit is updated according to

\[f \to f - \frac{{\rm d}\theta}{2\pi\tau{\rm d}t}\]

Here, \({\rm d}\theta\) is the measured angle error from the fit. The duration of the single qubit-gate is \(\tau\) in samples and \({\rm d}t\) is the duration of a sample. This is also the duration of the time unit dt of the delay.