Qudi
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
nuclear_operations_logic.NuclearOperationsLogic Class Reference

A higher order logic, which combines several lower class logic modules in order to perform measurements and manipulations of nuclear spins. More...

Inheritance diagram for nuclear_operations_logic.NuclearOperationsLogic:
Inheritance graph
[legend]
Collaboration diagram for nuclear_operations_logic.NuclearOperationsLogic:
Collaboration graph
[legend]

Public Member Functions

def __init__ (self, config, kwargs)
 
def on_activate (self)
 Initialisation performed during activation of the module.
 
def on_deactivate (self)
 Deactivate the module properly.
 
def initialize_x_axis (self)
 Initialize the x axis. More...
 
def initialize_y_axis (self)
 Initialize the y axis. More...
 
def initialize_meas_param (self)
 Initialize the measurement param containter. More...
 
def start_nuclear_meas (self, continue_meas=False)
 Start the nuclear operation measurement. More...
 
def stop_nuclear_meas (self)
 Stop the Nuclear Operation Measurement. More...
 
def get_fit_functions (self)
 Returns all fit methods, which are currently implemented for that module. More...
 
def do_fit (self, fit_function=None)
 Performs the chosen fit on the measured data. More...
 
def get_meas_type_list (self)
 
def get_available_odmr_peaks (self)
 Retrieve the information on which odmr peak the microwave can be applied. More...
 
def prepare_measurement_protocols (self, meas_type)
 Prepare and create all measurement protocols for the specified measurement type. More...
 
def adjust_measurement (self, meas_type)
 Adjust the measurement sequence for the next measurement point. More...
 
def do_optimize_pos (self)
 Perform an optimize position. More...
 
def do_optimize_odmr_freq (self)
 Perform an ODMR measurement. More...
 
def mw_on (self)
 Start the microwave device. More...
 
def mw_off (self)
 Stop the microwave device. More...
 
def set_mw_on_odmr_freq (self, freq, power)
 Set the microwave on a the specified freq with the specified power. More...
 
def save_nuclear_operation_measurement (self, name_tag=None, timestamp=None)
 Save the nuclear operation data. More...
 

Public Attributes

 threadlock
 
 current_meas_point
 
 current_meas_index
 
 num_of_current_meas_runs
 
 elapsed_time
 
 start_time
 
 next_optimize_time
 
 measured_odmr_list
 
 x_axis_list
 
 y_axis_list
 
 y_axis_fit_list
 
 y_axis_matrix
 
 parameter_matrix
 
 stopRequested
 

Static Public Attributes

 sequencegenerationlogic = Connector(interface='SequenceGenerationLogic')
 
 traceanalysislogic = Connector(interface='TraceAnalysisLogic')
 
 gatedcounterlogic = Connector(interface='CounterLogic')
 
 odmrlogic = Connector(interface='ODMRLogic')
 
 optimizerlogic = Connector(interface='OptimizerLogic')
 
 scannerlogic = Connector(interface='ScannerLogic')
 
 savelogic = Connector(interface='SaveLogic')
 
 electron_rabi_periode = StatusVar('electron_rabi_periode', 1800e-9)
 
 pulser_mw_freq = StatusVar('pulser_mw_freq', 200e6)
 
 pulser_mw_amp = StatusVar('pulser_mw_amp', 2.25)
 
 pulser_mw_ch = StatusVar('pulser_mw_ch', -1)
 
 nuclear_rabi_period0 = StatusVar('nuclear_rabi_period0', 30e-6)
 
 pulser_rf_freq0 = StatusVar('pulser_rf_freq0', 6.32e6)
 
 pulser_rf_amp0 = StatusVar('pulser_rf_amp0', 0.1)
 
 nuclear_rabi_period1 = StatusVar('nuclear_rabi_period1', 30e-6)
 
 pulser_rf_freq1 = StatusVar('pulser_rf_freq1', 3.24e6)
 
 pulser_rf_amp1 = StatusVar('pulser_rf_amp1', 0.1)
 
 pulser_rf_ch = StatusVar('pulser_rf_ch', -2)
 
 pulser_laser_length = StatusVar('pulser_laser_length', 3e-6)
 
 pulser_laser_amp = StatusVar('pulser_laser_amp', 1)
 
 pulser_laser_ch = StatusVar('pulser_laser_ch', 1)
 
 num_singleshot_readout = StatusVar('num_singleshot_readout', 3000)
 
 pulser_idle_time = StatusVar('pulser_idle_time', 1.5e-6)
 
 pulser_detect_ch = StatusVar('pulser_detect_ch', 1)
 
 current_meas_asset_name = StatusVar('current_meas_asset_name', '')
 
 x_axis_start = StatusVar('x_axis_start', 1e-3)
 
 x_axis_step = StatusVar('x_axis_step', 10e-3)
 
 x_axis_num_points = StatusVar('x_axis_num_points', 50)
 
 num_of_meas_runs = StatusVar('num_of_meas_runs', 1)
 
 optimize_period_odmr = StatusVar('optimize_period_odmr', 200)
 
 optimize_period_confocal = StatusVar('optimize_period_confocal', 300)
 
 odmr_meas_freq0 = StatusVar('odmr_meas_freq0', 10000e6)
 
 odmr_meas_freq1 = StatusVar('odmr_meas_freq1', 10002.1e6)
 
 odmr_meas_freq2 = StatusVar('odmr_meas_freq2', 10004.2e6)
 
 odmr_meas_runtime = StatusVar('odmr_meas_runtime', 30)
 
 odmr_meas_freq_range = StatusVar('odmr_meas_freq_range', 30e6)
 
 odmr_meas_step = StatusVar('odmr_meas_step', 0.15e6)
 
 odmr_meas_power = StatusVar('odmr_meas_power', -30)
 
 mw_cw_freq = StatusVar('mw_cw_freq', 10e9)
 
 mw_cw_power = StatusVar('mw_cw_power', -30)
 
 mw_on_odmr_peak = StatusVar('mw_on_odmr_peak', 1)
 
 gc_number_of_samples = StatusVar('gc_number_of_samples', 3000)
 
 gc_samples_per_readout = StatusVar('gc_samples_per_readout', 10)
 
 sigNextMeasPoint = QtCore.Signal()
 
 sigCurrMeasPointUpdated = QtCore.Signal()
 
 sigMeasurementStopped = QtCore.Signal()
 
 sigMeasStarted = QtCore.Signal()
 

Detailed Description

A higher order logic, which combines several lower class logic modules in order to perform measurements and manipulations of nuclear spins.

DISCLAIMER

This module has two major issues:

The state of this module is considered to be UNSTABLE.

I am currently working on that and will from time to time improve the status of this module. So if you want to use it, be aware that there might appear

drastic changes.

Alexander Stark

Member Function Documentation

◆ adjust_measurement()

def nuclear_operations_logic.NuclearOperationsLogic.adjust_measurement (   self,
  meas_type 
)

Adjust the measurement sequence for the next measurement point.

Parameters
meas_type
Returns
:

◆ do_fit()

def nuclear_operations_logic.NuclearOperationsLogic.do_fit (   self,
  fit_function = None 
)

Performs the chosen fit on the measured data.

Parameters
stringfit_function: name of the chosen fit function
Returns
dict: a dictionary with the relevant fit parameters, i.e. the result of the fit

◆ do_optimize_odmr_freq()

def nuclear_operations_logic.NuclearOperationsLogic.do_optimize_odmr_freq (   self)

Perform an ODMR measurement.

◆ do_optimize_pos()

def nuclear_operations_logic.NuclearOperationsLogic.do_optimize_pos (   self)

Perform an optimize position.

◆ get_available_odmr_peaks()

def nuclear_operations_logic.NuclearOperationsLogic.get_available_odmr_peaks (   self)

Retrieve the information on which odmr peak the microwave can be applied.

Returns
list: with string entries denoting the peak number

◆ get_fit_functions()

def nuclear_operations_logic.NuclearOperationsLogic.get_fit_functions (   self)

Returns all fit methods, which are currently implemented for that module.

Returns
list: with string entries denoting the names of the fit.

◆ initialize_meas_param()

def nuclear_operations_logic.NuclearOperationsLogic.initialize_meas_param (   self)

Initialize the measurement param containter.

◆ initialize_x_axis()

def nuclear_operations_logic.NuclearOperationsLogic.initialize_x_axis (   self)

Initialize the x axis.

◆ initialize_y_axis()

def nuclear_operations_logic.NuclearOperationsLogic.initialize_y_axis (   self)

Initialize the y axis.

◆ mw_off()

def nuclear_operations_logic.NuclearOperationsLogic.mw_off (   self)

Stop the microwave device.

◆ mw_on()

def nuclear_operations_logic.NuclearOperationsLogic.mw_on (   self)

Start the microwave device.

◆ prepare_measurement_protocols()

def nuclear_operations_logic.NuclearOperationsLogic.prepare_measurement_protocols (   self,
  meas_type 
)

Prepare and create all measurement protocols for the specified measurement type.

Parameters
strmeas_type: a measurement type from the list get_meas_type_list

◆ save_nuclear_operation_measurement()

def nuclear_operations_logic.NuclearOperationsLogic.save_nuclear_operation_measurement (   self,
  name_tag = None,
  timestamp = None 
)

Save the nuclear operation data.

Parameters
strname_tag:
objecttimestamp: datetime.datetime object, from which everything can be created.

◆ set_mw_on_odmr_freq()

def nuclear_operations_logic.NuclearOperationsLogic.set_mw_on_odmr_freq (   self,
  freq,
  power 
)

Set the microwave on a the specified freq with the specified power.

◆ start_nuclear_meas()

def nuclear_operations_logic.NuclearOperationsLogic.start_nuclear_meas (   self,
  continue_meas = False 
)

Start the nuclear operation measurement.

◆ stop_nuclear_meas()

def nuclear_operations_logic.NuclearOperationsLogic.stop_nuclear_meas (   self)

Stop the Nuclear Operation Measurement.

Returns
int: error code (0:OK, -1:error)

The documentation for this class was generated from the following file: