Shelved_Measure_CustomWaveforms#
Module: iqm.pulse.gates.measure
- class iqm.pulse.gates.measure.Shelved_Measure_CustomWaveforms(parent, name, locus, calibration_data, builder)#
Bases:
Measure_CustomWaveforms,CompositeGateBase class for shelved readout.
Shelved readout applies a
prx_12(pi)gate before and after a standard dispersive readout on each qubit measured. The firstprx_12(pi)swaps the amplitudes of the \(|1\rangle\) and \(|2\rangle\) states, and the second one swaps them back after the measurement has (roughly) collapsed the state. If the discriminator of the readout is calibrated such that the \(|0\rangle\) state is on one side and the \(|1\rangle\) and \(|2\rangle\) states are on the other, the end result is equivalent to the standard readout operation but with the advantage that the population in the \(|2\rangle\) state is less susceptible to \(T_1\) decay during the readout than the population in the \(|1\rangle\) state.Attributes
These member operations can be calibrated separately from their common calibration by adding
OCalibrationDatanodes for them under theOILCalibrationDatanode of the composite gate.If set
True, the Q channel waveform is considered to depend on the I channel's waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation).Names of the member operations used by the composite gate.
Parameters independent of the of Waveforms.
wave_iWaveform for the I channel.
wave_qWaveform for the Q channel.
idUnique str identifier, needed for certain caching properties.
sub_implementationsSingle-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.
Methods
- Parameters:
parent (QuantumOp)
name (str)
locus (Locus)
calibration_data (OILCalibrationData)
builder (ScheduleBuilder)
- root_parameters = {'acquisition_delay': Parameter(name='', label='Acquisition delay', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'acquisition_type': Setting(parameter=Parameter(name='', label='Acquisition type', unit='', data_type=<DataType.STRING: 3>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value='threshold', read_only=False, path=''), 'amplitude_i': Parameter(name='', label='Readout channel I amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'amplitude_q': Setting(parameter=Parameter(name='', label='Readout channel Q amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=0.0, read_only=False, path=''), 'do_prx_12': Setting(parameter=Parameter(name='do_prx_12', label='Whether to do the prx_12 flips in the measure operation', unit='', data_type=<DataType.BOOLEAN: 4>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=True, read_only=False, path=''), 'duration': Parameter(name='', label='Readout pulse duration', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'frequency': Parameter(name='', label='Readout pulse frequency', unit='Hz', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'integration_length': Parameter(name='', label='Integration length', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'integration_threshold': Parameter(name='', label='Integration threshold', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'integration_weights_I': Setting(parameter=Parameter(name='', label='Integration weights for channel I', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.NDARRAY: 2>, element_indices=None), value=array([], dtype=float64), read_only=False, path=''), 'integration_weights_Q': Setting(parameter=Parameter(name='', label='Integration weights for channel Q', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.NDARRAY: 2>, element_indices=None), value=array([], dtype=float64), read_only=False, path=''), 'phase': Parameter(name='', label='Readout pulse phase', unit='rad', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'second_prx_12_offset': Setting(parameter=Parameter(name='second_prx_12_offset', label='Offset of the second PRX_12 pulse from the end the ReadoutTrigger', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), value=0.0, read_only=False, path='')}#
Parameters independent of the of Waveforms. Inheriting classes may override this to include parameters common to all such implementations.
- registered_gates = ('prx_12',)#
Names of the member operations used by the composite gate. There must be corresponding keys in
builder.op_table.
- customizable_gates = ('prx_12',)#
These member operations can be calibrated separately from their common calibration by adding
OCalibrationDatanodes for them under theOILCalibrationDatanode of the composite gate. Must be a subset ofregistered_gates. By default all member operations are customizable.
- dependent_waves = True#
If set
True, the Q channel waveform is considered to depend on the I channel’s waveform so that they share the waveform parameters, (e.g. a DRAG PRX implementation). If not provided, will be initialised asTrue.
Inheritance
