mahos_dq.meas.podmr.PODMR#

class mahos_dq.meas.podmr.PODMR(gconf: dict, name, context=None)#

Pulse ODMR measurement.

Default Worker (Pulser) implements Pulse ODMR using a PG as timing source, and SGs as MW sources.

Parameters:
  • target.servers (dict[str, str]) – InstrumentServer targets (instrument name, server full name). Required keys: sg, pg, and tdc. Optional keys: fg, additional SG keys in pulser.mw_channels (for example, sg1), and switch keys listed in switch_names.

  • target.tweakers (list[str]) – The Tweaker targets (list of tweaker full name).

  • target.log (str) – The LogBroker target (broker full name).

  • switch_names (list[str]) – Optional switch instrument names to route signal/optical paths.

  • switch_command (str) – Switch command label passed to Switch worker.

  • pub_interval_sec (float) – Maximum interval between periodic status/data publications.

  • pulser.quick_resume (bool) – default value of quick_resume. If True, it skips instrument configurations on resume.

  • pulser.mw_modes (tuple[int]) – mw phase control modes for each channel. 0 is 4-phase control using IQ modulation at SG and a switch. 1 is 2-phase control using external 90-deg splitter and two switches. 2 is arbitral phase control using IQ modulation at SG (Analog output (AWG) is required for PG).

  • pulser.iq_amplitude (float) – (only for mw_mode 2) amplitude of analog IQ signal in V.

  • pulser.split_fraction (int) – (default: 4) fraction factor (F) to split the free period for MW phase modulation. the period (T) is split into (T // F, T - T // F) and MW phase is switched at T // F. Thus, larger F results in “quicker start” of the phase modulation (depending on hardware, but its response may be a bit slow).

  • pulser.pg_freq (float) – (has preset) pulse generator frequency

  • pulser.reduce_start_divisor (int) – (has preset) the divisor on start of reducing frequency reduce is done first by this value, and then repeated by 10.

  • pulser.minimum_block_length (int) – (has preset) minimum block length in generated blocks

  • pulser.block_base (int) – (has preset) block base granularity of pulse generator.

  • pulser.divide_block (bool) – (has preset) Default value of divide_block.

  • pulser.sg_freq (float) – default value of sg frequency

  • pulser.channel_remap (dict[str | int, str | int]) – mapping to fix default channel names.

  • pulser.mw_channels (list[str]) – Optional SG channel identifiers for MW outputs.

  • pulser.eos_margin (float) – (default: 1e-6) End-of-sequence timing margin in seconds.

  • fitter.rabi.c (float) – default value of param “c” (base line) in RabiFitter. You can set the bounds using “c_min” and “c_max” too.

  • fitter.rabi.A (float) – default value of param “A” (amplitude) in RabiFitter. You can set the bounds using “A_min” and “A_max” too.

__init__(gconf: dict, name, context=None)#

Methods

__init__(gconf, name[, context])

change_state(msg)

Change state to msg.state.

close_resources()

Close custom resources.

discard(msg)

Discard the data.

export_data(msg)

Export data.

get_param_dict(msg)

Get parameter dict.

get_param_dict_labels(msg)

Get parameter dict labels.

handle_req(msg)

Handle Request other than basic requests.

load_data(msg)

Load data.

main()

Main procedure that will be looped.

save_data(msg)

Save data.

update_plot_params(msg)

Update the plot params.

validate(msg)

Validate the measurement params.

wait()

Wait until required resources are ready.

Attributes