CustomIQWaveforms#

class iqm.pulse.gate_implementation.CustomIQWaveforms(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Base class for GateImplementations using custom waveform definition with IQPulses.

The class contains logic for automatic gate calibration parameters handling for such gates (see the class attributes for more info). With given Waveform waveform definitions Something and SomethingElse, an inheriting class may define the waveforms for the I and Q channels like this: class MyGate(CustomIQWaveforms, i_wave=Something, q_wave=SomethingElse).

Module: iqm.pulse.gate_implementation

Attributes

excluded_parameters

Parameters names to be excluded from self.parameters.

root_parameters

Parameters independent of the of Waveforms.

wave_i

Waveform for the I channel.

wave_q

Waveform for the Q channel.

dependent_waves

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).

Methods

Parameters:
wave_i: type[Waveform]#

Waveform for the I channel.

wave_q: type[Waveform]#

Waveform for the Q channel.

dependent_waves: bool#

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 as True.

root_parameters: dict[str, Parameter | Setting] = {}#

Parameters independent of the of Waveforms. Inheriting classes may override this to include parameters common to all such implementations.

excluded_parameters: list[str] = []#

Parameters names to be excluded from self.parameters. Inheriting classes may override this if certain parameters are not wanted in that class (also parameters defined by the waveforms can be excluded).