ProbePulse_CustomWaveforms#
Module: iqm.pulse.gates.measure
- class iqm.pulse.gates.measure.ProbePulse_CustomWaveforms(parent, name, locus, calibration_data, builder)#
Bases:
Measure_CustomWaveformsBase class for implementing a probe line measurement pulse with custom waveforms in the I and Q channels.
With given
Waveformwaveform definitionsSomethingandSomethingElse, you may define a measurement implementation that uses them as follows:class MyGate(ProbePulse_CustomWaveforms, i_wave=Something, q_wave=SomethingElse). The measurementIQPulseinstruction will not be automatically modulated by any frequency, so any modulations should be included in the I and Q waveforms themselves.Due to device limitations this implementation also has to integrate the readout signal (using arbitrary weights), even though it does not make much sense.
Contrary to the
Measure_CustomWaveformsclass, this implementation acts on probe lines directly (i.e. itslocusis a single probe line) as it is intended to be used in contexts where well-defined qubits may not have been characterized yet (such as readout frequency calibration with a chirp pulse).Attributes
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).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
One-component loci on probe lines.
Returns a multiplexed simultaneous measurement with an additional time trace acquisition.
- Parameters:
parent (QuantumOp)
name (str)
locus (Locus)
calibration_data (OILCalibrationData)
builder (ScheduleBuilder)
- root_parameters: dict[str, Parameter | Setting] = {'acquisition_delay': Parameter(name='', label='Acquisition delay', unit='s', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), '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': Parameter(name='', label='Readout channel Q amplitude', unit='', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None), 'duration': Parameter(name='', label='Readout pulse duration', unit='s', 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), 'phase': Parameter(name='', label='Readout pulse phase', unit='rad', data_type=<DataType.FLOAT: 1>, collection_type=<CollectionType.SCALAR: 0>, element_indices=None)}#
Parameters independent of the of Waveforms. Inheriting classes may override this to include parameters common to all such implementations.
- locus_mapping_function()#
One-component loci on probe lines.
- time_trace(key='', **kwargs)#
Returns a multiplexed simultaneous measurement with an additional time trace acquisition.
The returned
MeasureBoxesare the same as the one returned by__call__()except the time trace acquisition is appended to the acquisitions of each probe line’sReadoutTriggerinstruction.- Parameters:
key (str) – Readout results generated on this trigger will be used to assigned to
f"{qubit}__{key}", wherequbitgoes over the component names inself.locus, whereas the recorded time traces will be assigned tof"{probe_line}__{key}"whereprobe_linegoes through all the probe lines associated withself.locus. If empty, the key"readout.result"will be used for integrated results and the key"readout.time_trace"for the recorded time traces.acquisition_delay – optionally override the time trace acquisition delay with this value (given in seconds). Does not affect the acquisition delays of the integrated measurements.
acquisition_duration – optionally override the time trace acquisition duration with this value (given in seconds). Does not affect the integration lengths of the integrated measurements.
feedback_key – The signals generated by the integration are routed using this label, prefixed by the component. See
__call__().
- Returns:
TimeBox containing the ReadoutTrigger instruction.
- Return type:
Inheritance
