def check_magneticField(breakstatement=False): if not breakstatement: DESR_msmt.darkesr('magnet_' + 'msm1', ms = 'msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0m_temp*1e9,# - N_hyperfine, pulse_length = 8e-6, ssbmod_amplitude = 0.0025) DESR_msmt.darkesr('magnet_' + 'msp1', ms = 'msp', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0p_temp*1e9,# + N_hyperfine, pulse_length = 8e-6, ssbmod_amplitude = 0.006,mw_switch = True)
MBE(SAMPLE + '00_negative_test_RO' + str(test_RO) + '_k0_sign1_' + test_state + '_test', RO_C=test_RO, logic_state=test_state, el_RO='negative', error_sign=1, error_on_qubit='all', error_probability_list=e_list, parity_orientations=['positive', 'positive']) DESR_msmt.darkesr( 'magnet_' + 'msm1', ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0m_temp * 1e9, # - N_hyperfine, pulse_length=8e-6, ssbmod_amplitude=0.0025) DESR_msmt.darkesr( 'magnet_' + 'msp1', ms='msp', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0p_temp * 1e9, # + N_hyperfine, pulse_length=8e-6, ssbmod_amplitude=0.006)
d_steps = [0] f0m = [0] u_f0m = [0] delta_f0m = [0] iterations_list = [0] #turn on magnet stepping in Z #Change mode to step for normal operation mom.set_mode('Z_axis', 'gnd') # start: define B-field and position by first ESR measurement DESR_msmt.darkesr( 'magnet_' + 'Z_axis_' + 'msm1', ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=(f0m_temp) * 1e9, # - N_hyperfine, pulse_length=8e-6, ssbmod_amplitude=0.0015, mw_switch=False) #0.0025 f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr_double() f0m_temp = f0m_temp # + N_hyperfine*1e-9 delta_f0m_temp = f0m_temp * 1e6 - current_f_msm1 * 1e-3 # start to list all the measured values iterations = 0 iterations_list.append(iterations) f0m.append(f0m_temp) u_f0m.append(u_f0m_temp) delta_f0m.append(delta_f0m_temp) d_steps.append(
# msm1 f0 = [] u_f0 = [] iterations_list = [] magnet_postion_list = [] fit_failed_list = [] f0_p = [] u_f0_p = [] f0_avg D_ZFS_list = [] DESR_msmt.darkesr('magnet_' + axis + 'msm1_coarse', ms='msm', ssbmod_amplitude=0.004, range_MHz=coarse_range, pts=coarse_pts, reps=coarse_reps, freq=f0m_temp * 1e9, mw_switch=False) # Do the fitting, returns in MHz, input in GHz f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr_double( do_plot=True) #msp1 DESR_msmt.darkesr('magnet_' + axis + 'msp1_coarse', ms='msp', range_MHz=coarse_range, pts=coarse_pts, ssbmod_amplitude=0.009,
########### ## Start ## ########### #create the data lists d_steps = [] f0 = [] u_f0 = [] delta_f0 = [] #turn on magnet stepping in Z mom.set_mode('Z_axis', 'stp') # start: define B-field and position by first ESR measurement DESR_msmt.darkesr('magnet_Zpos_optimize_fine', ms='msp', range_MHz=DESR_range, pts=pts, reps=reps) # do the fitting, returns in MHz, input in GHz f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr( current_f_msp1 * 1e-9, qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9) delta_f0_temp = f0_temp * 1e6 - current_f_msp1 * 1e-3 # start to list all the measured values iterations = 0 f0.append(f0_temp) u_f0.append(u_f0_temp) delta_f0.append(delta_f0_temp) print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str(
qt.msleep(5) if (msvcrt.kbhit() and (msvcrt.getch() == 'q')): break magnet_Z_scanner.MoveRelative(magnet_positions_list[k]) print 'Current magnet position is ' + str( magnet_Z_scanner.GetPosition()) # magnet_scanner_position = magnet_Z_scanner.GetPosition() DESR_msmt.darkesr('magnet_scanner_calib_coarse' + str(ll) + '_' + str(k), ms='msm', range_MHz=range_coarse, pts=pts_coarse, reps=reps_coarse, freq=f0m_temp * 1e9, pulse_length=3e-6, ssbmod_amplitude=0.08, mw_power=-1, mw_switch=False) f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr( f0m_temp, qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9, do_save=save_plots, sweep_direction='right') #ms=-1 fine DESR_msmt.darkesr( 'magnet_scanner_calib_fine' + str(ll) + '_' + str(k),
def auto_z_magnet_optimize(): ###################### ## Input parameters ## ###################### safemode = False maximum_magnet_step_size = 50 opimization_target = 10 # target difference in kHz (or when 0 magnet steps are required) ### for the remainder of the steps range_fine = 0.4 pts_fine = 51 reps_fine = 100 ########### ## Start ## ########### #create the data lists d_steps = [0] f0 = [0] u_f0 = [0] delta_f0 = [0] iterations_list = [0] #turn on magnet stepping in Z mom.set_mode('Z_axis', 'stp') # start: define B-field and position by first ESR measurement DESR_msmt.darkesr( 'magnet_' + 'Z_axis_' + 'msm1', ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0_temp * 1e9, # - N_hyperfine, pulse_length=8e-6, ssbmod_amplitude=0.0025) f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr_double( do_ROC=False, do_plot=False) f0_temp = f0_temp # + N_hyperfine*1e-9 delta_f0_temp = f0_temp * 1e6 - current_f_msm1 * 1e-3 # start to list all the measured values iterations = 0 iterations_list.append(iterations) f0.append(f0_temp) u_f0.append(u_f0_temp) delta_f0.append(delta_f0_temp) d_steps.append( int( round( mt.steps_to_frequency(freq=f0_temp * 1e9, freq_id=current_f_msm1, ms='plus')))) print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str( u_f0_temp * 1e6) + ' kHz' print 'Difference = ' + str(delta_f0_temp) + ' kHz' while abs(delta_f0_temp) > opimization_target: iterations += 1 print 'move magnet in Z with ' + str(d_steps[iterations]) + ' steps' if abs(d_steps[iterations]) > maximum_magnet_step_size: print 'd_steps>+/-00, step only 50 steps!' if d_steps[iterations] > 0: d_steps[iterations] = maximum_magnet_step_size if d_steps[iterations] < 0: d_steps[iterations] = -1 * maximum_magnet_step_size elif d_steps[iterations] == 0: print 'Steps = 0 optimization converted' break if safemode == True: ri = raw_input('move magnet? (y/n)') if str(ri) == 'y': mom.step('Z_axis', d_steps[iterations]) else: break else: mom.step('Z_axis', d_steps[iterations]) DESR_msmt.darkesr( 'fine_optimize_magnet_' + 'Z_axis_' + 'msm1', ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0_temp * 1e9, # - N_hyperfine, pulse_length=8e-6, ssbmod_amplitude=0.0025) f0_temp, u_f0_temp, folder = dark_esr_auto_analysis.analyze_dark_esr_double( do_ROC=False, ret_folder=True, do_plot=False) f0_temp = f0_temp # + N_hyperfine*1e-9 delta_f0_temp = f0_temp * 1e6 - current_f_msm1 * 1e-3 d_steps.append( int( round( mt.steps_to_frequency(freq=f0_temp * 1e9, freq_id=current_f_msm1, ms='plus')))) f0.append(f0_temp) u_f0.append(u_f0_temp) delta_f0.append(delta_f0_temp) print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str( u_f0_temp * 1e6) + ' kHz' print 'Difference = ' + str(f0_temp * 1e6 - current_f_msm1 * 1e-3) + ' kHz' iterations_list.append(iterations) total_d_steps = np.sum(d_steps) #create a file to save data to --> what is a good way to save this? d = qt.Data(name='magnet_auto_Z_optimization_overview') d.add_coordinate('iteration') d.add_value('frequency [GHz]') d.add_value('frequency error [GHz]') d.add_value('frequency difference [GHz]') d.add_value('number of steps') d.create_file() filename = d.get_filepath()[:-4] print iterations_list print f0 print u_f0 print delta_f0 print d_steps d.add_data_point(iterations_list, f0, u_f0, delta_f0, d_steps) d.close_file() print 'Z position fine optimization finished, stepped the magnet ' + str( total_d_steps) + ' in ' + str(iterations + 1) + ' iterations'
if No_steps == False: if axis == 'Y_axis' and steps[k] != 0: magnet_Y_scanner.MoveRelative(steps[k]) print 'Moving the magnet along Y with ' + str(steps[k]) elif axis == 'X_axis' and steps[k] != 0: magnet_X_scanner.MoveRelative(steps[k]) print 'Moving the magnet along X with ' + str(steps[k]) position = position + steps[k] #ms=-1 coarse DESR_msmt.darkesr('magnet_' + 'msm1_coarse', ms='msm', range_MHz=range_coarse, pts=pts_coarse, reps=reps_coarse, freq=f0m_temp * 1e9, pulse_length=3e-6, ssbmod_amplitude=0.08, mw_power=-1, mw_switch=True) f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr( f0m_temp, qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9, do_save=save_plots, sweep_direction='right') #ms=+1 coarse DESR_msmt.darkesr('magnet_' + 'msp1_coarse', ms='msp', range_MHz=range_coarse,
break #use a higher threshold at the very end GreenAOM.set_power(5e-6) ins_counters.set_is_running(0) int_time = 1000 cnts = ins_adwin.measure_counts(int_time)[0] print 'counts = ' + str(cnts) if cnts < 30e4: optimiz0r.optimize(dims=['x', 'y', 'z']) #measure both frequencies #ms=-1 coarse DESR_msmt.darkesr('magnet_msm1_coarse', ms='msm', range_MHz=range_coarse, pts=pts_coarse, reps=reps_coarse) f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr( current_f_msm1 * 1e-9, qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9) #ms=-1 fine DESR_msmt.darkesr('magnet_msm1_fine', ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0m_temp * 1e9) f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr_single( current_f_msp1 * 1e-9)
(i != abs(step) / magnet_step_size - 1)): optimiz0r.optimize(dims=['x', 'y', 'z']) print 'press q to stop magnet movement loop' qt.msleep(0.5) if (msvcrt.kbhit() and (msvcrt.getch() == 'q')): break optimiz0r.optimize(dims=['x', 'y', 'z']) #measure both frequencies #ms=-1 coarse if fine_only == False: DESR_msmt.darkesr('magnet_' + axis + 'msm1_coarse', ms='msm', ssbmod_amplitude=0.004, range_MHz=range_coarse, pts=pts_coarse, reps=reps_coarse, freq=f0m_temp * 1e9, mw_switch=False) f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr( f0m_temp, qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9, do_save=save_plots, sweep_direction='right') #ms=-1 fine if do_m1_fine == True or coarse_only == False or u_f0m_temp > 1e-4: ## uncertainty larger than 100 kHz triggers the fine measurement. DESR_msmt.darkesr( 'magnet_' + axis + 'msm1', ms='msm', range_MHz=range_fine,