repeat_reps = 3000 ########### ## Start ## ########### #create the data lists d_steps = []; f0 = []; u_f0 = []; delta_f0 =[];iterations_list =[] #turn on magnet stepping in Z # mom.set_mode('Z_axis', 'gnd') # start: define B-field and position by first ESR measurement darkesr('magnet_Zpos_optimize_coarse', range_MHz=init_range, pts=init_pts, reps=init_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(u_f0_temp*1e6) + ' kHz' print 'Difference = ' + str(delta_f0_temp) + ' kHz' while abs(delta_f0_temp) > opimization_target: d_steps.append(int(round(mt.steps_to_frequency(freq=f0_temp*1e9,freq_id=current_f_msp1, ms = 'plus')))) print 'move magnet in Z with '+ str(d_steps[iterations]) + ' steps'
def fit_B_msmt_loop(older_than = None, newer_than = None): ZFS = 2.877480e9 f0m = []; u_f0m = []; f0p = [] ;u_f0p = [] Bx_field_measured = [] Bz_field_measured = [] f_centre_list = []; f_diff_list=[] timestamp_list = [] f_centre_error_list= [] it_list = [] f_diff_error_list = [] #msm print 'start' older_than_SSRO = older_than # print older_than, newer_than iteration = 0 while toolbox.latest_data(contains='msmt_msm_', older_than=older_than, newer_than=newer_than,raise_exc = False)!=False: print 'iteration'+str(iteration) timestamp,folder = toolbox.latest_data(contains='msmt_msm_', older_than=older_than, newer_than=newer_than,return_timestamp = True) print 'm folder '+folder ## Data location ## ssro_calib_folder = toolbox.latest_data(contains='AdwinSSRO_SSROCalibration', older_than=older_than_SSRO) a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0m_temp,u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr(None, 2.196*1e-3, add_folder = folder ) #msp folder = toolbox.latest_data(contains='msmt_msp_', older_than=older_than, newer_than=newer_than,) print folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0p_temp,u_f0p_temp = dark_esr_auto_analysis.analyze_dark_esr(None, 2.196*1e-3, add_folder = folder ) print f0p_temp >0 and f0m_temp >0 if f0p_temp >0 and f0m_temp >0: Bz_measured, Bx_measured = amt.get_B_field(msm1_freq=f0m_temp*1e9, msp1_freq=f0p_temp*1e9, u_msm1_freq =u_f0m_temp ,u_msp1_freq=u_f0p_temp) f_centre = (f0m_temp+f0p_temp)/2 f_centre_error = np.sqrt(u_f0m_temp**2+u_f0p_temp**2)/2 f_diff = (f_centre-ZFS*1e-9)*1e6 f_diff_error = f_centre_error*1e6 f0m.append(f0m_temp) u_f0m.append(u_f0m_temp) f0p.append(f0p_temp) u_f0p.append(u_f0p_temp) f_centre_list.append(f_centre) f_centre_error_list.append(f_centre_error) f_diff_list.append(f_diff) f_diff_error_list.append(f_diff_error) Bx_field_measured.append(Bx_measured) Bz_field_measured.append(Bz_measured) timestamp_list.append(timestamp) it_list.append(iteration) older_than = str(int(timestamp)-1) iteration = iteration+1 print iteration it_list = linspace(0,len(it_list)-1,len(it_list)) outfile = TemporaryFile() np.savez('test_B_field_meas',f0m=f0m, u_f0m=u_f0m, f0p=f0p, u_f0p=u_f0p, f_centre_list=f_centre_list, f_centre_error_list=f_centre_error_list, f_diff_list=f_diff_list, f_diff_error_list=f_diff_error_list, Bx_field_measured=Bx_field_measured, Bz_field_measured=Bz_field_measured, timestamp_list=timestamp_list, it_list=it_list)
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, do_save=True, min_dip_depth=min_dip_depth) 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( u_f0_temp * 1e6) + ' kHz' print 'Difference = ' + str(delta_f0_temp) + ' kHz' while abs(delta_f0_temp) > opimization_target:
def fit_B_msmt_loop(older_than=None, newer_than=None): ZFS = 2.877623e9 f0mc = [] u_f0mc = [] f0pc = [] u_f0pc = [] f0mf = [] u_f0mf = [] f0pf = [] u_f0pf = [] Bx_field_measured = [] Bz_field_measured = [] f_centrec_list = [] f_centre_errorc_list = [] f_diffc_list = [] f_diffc_error_list = [] f_centref_list = [] f_centre_errorf_list = [] f_difff_list = [] f_difff_error_list = [] timestamp_list = [] it_list = [] f0p_temp = 1.746666 f0m_temp = 4.008589 #msm print 'start' older_than_SSRO = older_than # print older_than, newer_than iteration = 0 print 'iteration' + str(iteration) # if type == 'course': # contains_name_m = 'magnet_msm1_coarse' # contains_name_p = 'magnet_msp1_coarse' # else: # contains_name_m = 'magnet_msm1_fine' # contains_name_p = 'magnet_msp1_fine' while toolbox.latest_data(contains='magnet_Y_axismsm1_coarse', older_than=older_than, newer_than=newer_than, raise_exc=False) != False: print 'iteration' + str(iteration) ## Data location ## ssro_calib_folder = toolbox.latest_data( contains='AdwinSSRO_SSROCalibration', older_than=older_than_SSRO) #msm1 coarse timestamp1, folder = toolbox.latest_data( contains='magnet_Y_axismsm1_coarse', older_than=older_than, newer_than=newer_than, return_timestamp=True) print 'm folder ' + folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0mc_temp, u_f0mc_temp = dark_esr_auto_analysis.analyze_dark_esr( f0m_temp, 2.182e-3, do_save=False, sweep_direction='right', add_folder=folder, ssro_calib_folder=ssro_calib_folder) print f0mc_temp, u_f0mc_temp #msm1 fine timestamp, folder = toolbox.latest_data(contains='magnet_Y_axismsm1', older_than=timestamp1, newer_than=newer_than, return_timestamp=True) print 'm folder ' + folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0mf_temp, u_f0mf_temp = dark_esr_auto_analysis.analyze_dark_esr_single( add_folder=folder) print f0mf_temp, u_f0mf_temp #msp #msp1 coarse timestamp2, folder = toolbox.latest_data( contains='magnet_Y_axismsp1_coarse', older_than=older_than, newer_than=newer_than, return_timestamp=True) print 'p folder ' + folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0pc_temp, u_f0pc_temp = dark_esr_auto_analysis.analyze_dark_esr( f0p_temp, 2.182e-3, do_save=False, sweep_direction='left', add_folder=folder, ssro_calib_folder=ssro_calib_folder) print f0pc_temp, u_f0pc_temp #msm1 fine timestamp, folder = toolbox.latest_data(contains='magnet_Y_axismsp1', older_than=timestamp2, newer_than=newer_than, return_timestamp=True) print 'p folder ' + folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0pf_temp, u_f0pf_temp = dark_esr_auto_analysis.analyze_dark_esr_single( add_folder=folder) print f0pf_temp, u_f0pf_temp print 'fitted values:' + str(f0pc_temp) + ' ; ' + str( f0mc_temp) + ' ; ' + str(f0pc_temp) + ' ; ' + str(f0mc_temp) if f0pc_temp > 0 and f0mc_temp > 0: if ((f0mf_temp + f0pf_temp) / 2 - ZFS * 1e-9) * 1e6 > -100: Bz_measured, Bx_measured = amt.get_B_field( msm1_freq=f0mf_temp * 1e9, msp1_freq=f0pf_temp * 1e9, u_msm1_freq=u_f0mf_temp, u_msp1_freq=u_f0pf_temp) f_centrec = (f0mc_temp + f0pc_temp) / 2 f_centre_errorc = np.sqrt(u_f0mc_temp**2 + u_f0pc_temp**2) / 2 f_diffc = (f_centrec - ZFS * 1e-9) * 1e6 f_diff_errorc = f_centre_errorc * 1e6 f_centref = (f0mf_temp + f0pf_temp) / 2 f_centre_errorf = np.sqrt(u_f0mf_temp**2 + u_f0pf_temp**2) / 2 f_difff = (f_centref - ZFS * 1e-9) * 1e6 f_diff_errorf = f_centre_errorf * 1e6 f0mc.append(f0mc_temp) u_f0mc.append(u_f0mc_temp) f0pc.append(f0pc_temp) u_f0pc.append(u_f0pc_temp) f0mf.append(f0mf_temp) u_f0mf.append(u_f0mf_temp) f0pf.append(f0pf_temp) u_f0pf.append(u_f0pf_temp) f_centrec_list.append(f_centrec) f_centre_errorc_list.append(f_centre_errorc) f_diffc_list.append(f_diffc) f_diffc_error_list.append(f_diff_errorc) f_centref_list.append(f_centref) f_centre_errorf_list.append(f_centre_errorf) f_difff_list.append(f_difff) f_difff_error_list.append(f_diff_errorf) Bx_field_measured.append(Bx_measured) Bz_field_measured.append(Bz_measured) timestamp_list.append(timestamp) it_list.append(iteration) older_than = str(int(timestamp1) - 1) iteration = iteration + 1 print iteration it_list = np.linspace(0, len(it_list) - 1, len(it_list)) np.savez('meas4', f0mc=f0mc, u_f0mc=u_f0mc, f0pc=f0pc, u_f0pc=u_f0pc, f0mf=f0mf, u_f0mf=u_f0mf, f0pf=f0pf, u_f0pf=u_f0pf, f_centrec_list=f_centrec_list, f_centrec_error_list=f_centre_errorc_list, f_diffc_list=f_diffc_list, f_diffc_error_list=f_diffc_error_list, f_centref_list=f_centref_list, f_centref_error_list=f_centre_errorf_list, f_difff_list=f_difff_list, f_difff_error_list=f_difff_error_list, Bx_field_measured=Bx_field_measured, Bz_field_measured=Bz_field_measured, timestamp_list=timestamp_list, it_list=it_list)
if (msvcrt.kbhit() and (msvcrt.getch() == 'q')): 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_' + axis + '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,do_save=True) #ms=-1 fine DESR_msmt.darkesr('magnet_' + axis + 'msm1', 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) qt.msleep(1) #ms=+1 coarse DESR_msmt.darkesr('magnet_' + axis + 'msp1_coarse', ms = 'msp', range_MHz=range_coarse, pts=pts_coarse, reps=reps_coarse) f0p_temp, u_f0p_temp = dark_esr_auto_analysis.analyze_dark_esr(current_f_msp1*1e-9, qt.exp_params['samples'][SAMPLE]['N_HF_frq']*1e-9,do_save=True) #ms=+1 fine DESR_msmt.darkesr('magnet_' + axis + 'msp1', ms = 'msp', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0p_temp*1e9)
def fit_B_msmt_loop(older_than = None, newer_than = None): ZFS = 2.877623e9 f0mc = []; u_f0mc = []; f0pc = [] ;u_f0pc = [] f0mf = []; u_f0mf = []; f0pf = [] ;u_f0pf = [] Bx_field_measured = [] Bz_field_measured = [] f_centrec_list = []; f_centre_errorc_list= [];f_diffc_list=[];f_diffc_error_list = [] f_centref_list = []; f_centre_errorf_list= [];f_difff_list=[];f_difff_error_list = [] timestamp_list = [] it_list = [] f0p_temp = 1.746666 f0m_temp = 4.008589 #msm print 'start' older_than_SSRO = older_than # print older_than, newer_than iteration = 0 print 'iteration'+str(iteration) # if type == 'course': # contains_name_m = 'magnet_msm1_coarse' # contains_name_p = 'magnet_msp1_coarse' # else: # contains_name_m = 'magnet_msm1_fine' # contains_name_p = 'magnet_msp1_fine' while toolbox.latest_data(contains='magnet_Y_axismsm1_coarse', older_than=older_than, newer_than=newer_than,raise_exc = False)!=False: print 'iteration'+str(iteration) ## Data location ## ssro_calib_folder = toolbox.latest_data(contains='AdwinSSRO_SSROCalibration', older_than=older_than_SSRO) #msm1 coarse timestamp1,folder = toolbox.latest_data(contains='magnet_Y_axismsm1_coarse', older_than=older_than, newer_than=newer_than,return_timestamp = True) print 'm folder '+folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0mc_temp,u_f0mc_temp = dark_esr_auto_analysis.analyze_dark_esr(f0m_temp, 2.182e-3,do_save=False, sweep_direction ='right', add_folder = folder,ssro_calib_folder=ssro_calib_folder) print f0mc_temp,u_f0mc_temp #msm1 fine timestamp,folder = toolbox.latest_data(contains='magnet_Y_axismsm1', older_than=timestamp1, newer_than=newer_than,return_timestamp = True) print 'm folder '+folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0mf_temp,u_f0mf_temp = dark_esr_auto_analysis.analyze_dark_esr_single(add_folder = folder) print f0mf_temp,u_f0mf_temp #msp #msp1 coarse timestamp2,folder = toolbox.latest_data(contains='magnet_Y_axismsp1_coarse', older_than=older_than, newer_than=newer_than,return_timestamp = True) print 'p folder '+folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0pc_temp,u_f0pc_temp = dark_esr_auto_analysis.analyze_dark_esr(f0p_temp, 2.182e-3,do_save=False, sweep_direction ='left', add_folder = folder,ssro_calib_folder=ssro_calib_folder) print f0pc_temp,u_f0pc_temp #msm1 fine timestamp,folder = toolbox.latest_data(contains='magnet_Y_axismsp1', older_than=timestamp2, newer_than=newer_than,return_timestamp = True) print 'p folder '+folder a = sequence.SequenceAnalysis(folder) a.get_sweep_pts() a.get_readout_results('ssro') a.get_electron_ROC(ssro_calib_folder=ssro_calib_folder) f0pf_temp,u_f0pf_temp = dark_esr_auto_analysis.analyze_dark_esr_single(add_folder = folder) print f0pf_temp,u_f0pf_temp print 'fitted values:'+ str(f0pc_temp)+' ; '+str(f0mc_temp)+' ; '+ str(f0pc_temp)+' ; '+str(f0mc_temp) if f0pc_temp >0 and f0mc_temp >0: if ((f0mf_temp+f0pf_temp)/2-ZFS*1e-9)*1e6>-100: Bz_measured, Bx_measured = amt.get_B_field(msm1_freq=f0mf_temp*1e9, msp1_freq=f0pf_temp*1e9, u_msm1_freq =u_f0mf_temp ,u_msp1_freq=u_f0pf_temp) f_centrec = (f0mc_temp+f0pc_temp)/2 f_centre_errorc = np.sqrt(u_f0mc_temp**2+u_f0pc_temp**2)/2 f_diffc = (f_centrec-ZFS*1e-9)*1e6 f_diff_errorc = f_centre_errorc*1e6 f_centref = (f0mf_temp+f0pf_temp)/2 f_centre_errorf = np.sqrt(u_f0mf_temp**2+u_f0pf_temp**2)/2 f_difff = (f_centref-ZFS*1e-9)*1e6 f_diff_errorf = f_centre_errorf*1e6 f0mc.append(f0mc_temp) u_f0mc.append(u_f0mc_temp) f0pc.append(f0pc_temp) u_f0pc.append(u_f0pc_temp) f0mf.append(f0mf_temp) u_f0mf.append(u_f0mf_temp) f0pf.append(f0pf_temp) u_f0pf.append(u_f0pf_temp) f_centrec_list.append(f_centrec) f_centre_errorc_list.append(f_centre_errorc) f_diffc_list.append(f_diffc) f_diffc_error_list.append(f_diff_errorc) f_centref_list.append(f_centref) f_centre_errorf_list.append(f_centre_errorf) f_difff_list.append(f_difff) f_difff_error_list.append(f_diff_errorf) Bx_field_measured.append(Bx_measured) Bz_field_measured.append(Bz_measured) timestamp_list.append(timestamp) it_list.append(iteration) older_than = str(int(timestamp1)-1) iteration = iteration+1 print iteration it_list = np.linspace(0,len(it_list)-1,len(it_list)) np.savez('meas4', f0mc=f0mc, u_f0mc=u_f0mc, f0pc=f0pc, u_f0pc=u_f0pc, f0mf=f0mf, u_f0mf=u_f0mf, f0pf=f0pf, u_f0pf=u_f0pf, f_centrec_list=f_centrec_list, f_centrec_error_list=f_centre_errorc_list, f_diffc_list=f_diffc_list, f_diffc_error_list=f_diffc_error_list, f_centref_list=f_centref_list, f_centref_error_list=f_centre_errorf_list, f_difff_list=f_difff_list, f_difff_error_list=f_difff_error_list, Bx_field_measured=Bx_field_measured, Bz_field_measured=Bz_field_measured, timestamp_list=timestamp_list, it_list=it_list)
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), ms='msm', range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0m_temp * 1e9, # - N_hyperfine, pulse_length=9e-6, ssbmod_amplitude=0.08 / 3, mw_power=-1, mw_switch=False)