Measure_Factorizable#

Module: iqm.pulse.gates.measure

class iqm.pulse.gates.measure.Measure_Factorizable(parent, name, locus, calibration_data, builder)#

Bases: GateImplementation

Base class for implementing a factorizable measure.

The measure operation is factorizable, and its arity is 0, which together mean that it can operate on loci of any length, but is calibrated only on single component loci. When the gate is constructed in the len(locus) > 1 case (e.g. builder.get_implementation('measure', ('QB1', 'QB2', 'QB3'))() ), the resulting MeasureBoxes is constructed from the calibrated single-component implementations.

Attributes

id

Unique str identifier, needed for certain caching properties.

sub_implementations

Single-component sub-implementations for factorizable gates with len(locus) > 1, otherwise empty.

Methods

duration_in_seconds

Duration of the Schedule of the gate implementation (in seconds).

locus_mapping_function

One-qubit loci with readout.

time_trace

Returns a multiplexed simultaneous measurement with an additional time trace acquisition.

Parameters:
locus_mapping_function()#

One-qubit loci with readout.

Parameters:

sp (StationProperties)

Return type:

dict[tuple[str, …], tuple[str, …]]

time_trace(key='', acquisition_delay=None, acquisition_duration=None, feedback_key='')#

Returns a multiplexed simultaneous measurement with an additional time trace acquisition.

The returned MeasureBoxes are the same as the one returned by __call__() except the time trace acquisition is appended to the acquisitions of each probe line’s ReadoutTrigger instruction.

Parameters:
  • key (str) – Readout results generated on this trigger will be used to assigned to f"{qubit}__{key}", where qubit goes over the component names in self.locus, whereas the recorded time traces will be assigned to f"{probe_line}__{key}" where probe_line goes through all the probe lines associated with self.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 (float | None) – 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 (float | None) – 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 (str) – 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:

MeasureBoxes

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:

float

Inheritance

Inheritance diagram of iqm.pulse.gates.measure.Measure_Factorizable