mahos_dq.meas.spodmr.SPODMR#
- class mahos_dq.meas.spodmr.SPODMR(gconf: dict, name, context=None)#
Pulse ODMR measurement with Slow detectors.
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, names inpulser.pd_names, and the key named bypulser.clock_name. Optional keys:fg, additional SG keys inpulser.mw_channels(for example,sg1), and switch keys listed inswitch_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.
debug (bool) – If True, use DebugPulser instead of Pulser.
pulser.pd_names (list[str]) – (default: [“pd0”]) PD names in target.servers.
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.pd_trigger (str) – DAQ terminal name for PD trigger.
pulser.trigger_width (float) – (default: 1e-6) pulse width for PD trigger
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) – pulse generator frequency (has preset)
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.nest_blockseq (bool) – (has preset, default: False) allow nested BlockSeq.
pulser.channel_remap (dict[str | int, str | int]) – mapping to fix default channel names.
pulser.clock_name (str) – (default:
"clock") Clock source instrument name.pulser.mw_channels (list[str]) – Optional SG channel identifiers for MW outputs.
pulser.pd_rate (float) – (default: 500e3) PD sampling rate in Hz.
pulser.pd_data_transfer (str) – Optional DAQ transfer mode label.
pulser.eos_margin (float) – (default: 0.0) End-of-sequence timing margin in seconds.
pulser.buffer_size_coeff (int) – Buffer size coefficient multiplied by
num.pulser.accum_window (float) – (default: 1e-3) Accumulation window in seconds.
pulser.accum_rep (int) – (default: 10) Number of accumulation repetitions.
pulser.drop_rep (int) – (default: 1) Number of initial repetitions to drop.
pulser.lockin_rep (int) – (default: 1) Lock-in repetition count.
pulser.every (bool) – If True, publish/refresh data for every update chunk.
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.
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