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_spectrum (bool) – (default: False) set True if PD is Spectrum_AnalogIn-based.
sweeper.pd_trace (bool) – (default: False) enable laser-resolved AnalogPD trace acquisition for the
pulsemethod. Requirespd_analogorpd_spectrum.sweeper.pd_chop (bool) – (default: False) enable the active-high SinglePhotonCounter chop output. Requires
pd_analogandpd_spectrumto be False and a configuredchopPG channel.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.pd_segment_granularity (int) – (default: 16) logical post-trigger sample granularity for Spectrum PD segments.
sweeper.pd_segment_offset (int) – (default: 0) sample offset subtracted after Spectrum segment rounding.
sweeper.buffer_size_coeff (int) – (default: 20) default and fallback value for
pd.buffer_size_coeff.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.post_gate_delay (float) – (default param) extra excitation after measurement window.
sweeper.trigger_width (float) – (default: 20e-9) detector-trigger width for trace mode.
sweeper.burst_num (int) – (default: 100) traces averaged at each frequency in trace mode.
sweeper.roi_head (float) – (default: 20e-9) detector-trigger to laser delay in trace mode.
sweeper.roi_tail (float) – (default: 100e-9) trace margin after the laser pulse.
sweeper.sig_delay (float) – (default: 0.0) signal-window delay after the laser.
sweeper.sig_width (float) – (default: 100e-9) signal-window width.
sweeper.ref_delay (float) – (default: 0.0) reference delay after the signal window.
sweeper.ref_width (float) – (default: 100e-9) reference-window width.
sweeper.refmode (str) – (default: “divide”) trace reduction mode:
subtract,divide, orignore.sweeper.chop_delay (float) – (default: 0.0) delay from commanded laser onset to the SinglePhotonCounter chop window.
sweeper.chop_window (float) – (default: 100e-9) width of the SinglePhotonCounter chop window.
sweeper.pd.hardware_average (bool) – (default param: True) use Spectrum hardware averaging for trace bursts. This parameter is exposed only for Spectrum trace mode.
sweeper.pd.buffer_size_coeff (int) – (default param: 20) detector buffer size relative to one callback block.
sweeper.pd.eos_deadtime (float) – (default param: 200e-9) required deadtime after each realized trace before the next detector trigger.
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).
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()