mahos_dq.meas.odmr_worker.Sweeper#

class mahos_dq.meas.odmr_worker.Sweeper(cli, logger, conf: dict)#

Worker for fast ODMR sweep using hardware triggered SG and/or PG.

For some SGs with “frequency settled” output signal, SG and PG can be mutually triggered; PG is triggered by “frequency settled” of SG, and SG’s freq sweep step is triggered at last of PG sequence.

For SGs without such output, PG can be configured to run continuously (pg_immediate = True); SG’s freq sweep step is continuously triggered by PG.

Parameters:
  • sweeper.start_delay (float) – (default: 0.0) delay time (sec.) before starting SG/PG output.

  • sweeper.sg_first (bool) – (has preset) if True, turn on SG first and PG second. This mode is for a SG which cannot start the point_freq_sweep mode without affecting PG.

  • sweeper.pg_immediate (bool) – (has preset) if True, PG runs IMMEDIATE mode without trigger. This mode is for a SG which doesn’t have “frequency settled” output signal. pg_immediate takes precedence over sg_first; when this is True, sg_first has no effect.

  • sweeper.pd_clock (str) – DAQ terminal name for PD’s clock (gate)

  • sweeper.pd_names (list[str]) – (default: [“pd0”, “pd1”]) PD names in target.servers.

  • sweeper.pd_analog (bool) – (default: False) set True if PD is AnalogIn-based.

  • sweeper.pd_rate (float) – (default param) analog PD sampling rate.

  • sweeper.pd_bounds (tuple[float, float]) – (default: [-10.0, 10.0]) analog PD voltage bounds.

  • sweeper.pd_data_transfer (str) – DAQ data transfer mode for analog PD.

  • sweeper.buffer_size_coeff (int) – (default: 20) multiplier for PD buffer size.

  • sweeper.clock_name (str) – (default: “clock”) DAQ clock source name in target.servers.

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

  • sweeper.pg_freq_cw (float) – (has preset) PG frequency for CW mode.

  • sweeper.pg_freq_pulse (float) – (has preset) PG frequency for Pulse mode.

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

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

  • sweeper.start (float) – (default param) start frequency in Hz.

  • sweeper.stop (float) – (default param) stop frequency in Hz.

  • sweeper.num (int) – (default param) number of frequency points.

  • sweeper.power (float) – (default param) SG output power in dBm.

  • sweeper.time_window (float) – (default param) time window for cw mode.

  • sweeper.gate_delay (float) – (default param) gate delay before counting.

  • sweeper.am_depth (float) – (default param) depth of AM modulation.

  • sweeper.am_log (bool) – (default param) True indicates log-scale AM depth.

  • sweeper.am_rate (float) – (default param) rate (baseband frequency) of AM in Hz.

  • sweeper.fm_deviation (float) – (default param) FM deviation in Hz.

  • sweeper.fm_rate (float) – (default param) rate (baseband frequency) of FM in Hz.

__init__(cli, logger, conf: dict)#

Init client (cli), logger, conf, and internal instrument list (_instruments).

InstrumentInterfaces should be added on initialization by add_instruments() in inherited class.

Methods

__init__(cli, logger, conf)

Init client (cli), logger, conf, and internal instrument list (_instruments).

append_line(line)

configure_sg(params, label)

get_param_dict(label)

load_pg_conf_preset(cli)

load_sg_conf_preset(cli)

start(params[, label])

Start the worker.

start_analog_pd(params, label)

start_apd(params, label)

stop()

Stop the worker.

work()