ProbePulse_CustomWaveforms#
- class iqm.pulse.gates.measure.ProbePulse_CustomWaveforms(parent, name, locus, calibration_data, builder)#
Bases:
CustomIQWaveformsBase 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 proble lines directly (i.e. itslocusis a single probe line).Module:
iqm.pulse.gates.measureAttributes
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
Duration of the Schedule of the gate implementation (in seconds).
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopologyfor this implementation.- 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.
- _build_instructions(waveform_params, root_params)#
Builds a probe pulse and acquisition methods using the calibration data.
Subclasses may override this method if needed.
- _call(key='')#
Returns a
TimeBoxcontaining the probe pulse measurement.In scheduling, the returned
TimeBoxblocks only the probe line (self.locus[0]).- Parameters:
key (str) – The time trace results generated on this trigger will be used to assigned to
f"{probe_line}__{key}", whereprobe_lineis the one that handlesself.locus[0]. If empty, the key “readout.time_trace” is used.- Returns:
TimeBox containing the ReadoutTrigger instruction.
- Return type:
- duration_in_seconds()#
Duration of the Schedule of the gate implementation (in seconds).
Can be left unimplemented if the duration e.g. depends on the gate arguments. Subclasses can reimplement this method in case it makes sense in their context.
- Return type:
- classmethod get_locus_mapping_name(operation_name, implementation_name)#
Get the name of the locus mapping stored in
ScheduleBuilder.ChipTopologyfor this implementation.By default, it is
"<operation_name>.<implementation_name>". Inheriting classes may override this for different behaviour.