def run(name, mw_switch = False): if mw_switch: m = pulsar_mbi_espin.ElectronRabi_Switch(name) else: m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) print 'threshold =' + str(m.params['MBI_threshold']) # m.params.from_dict(qt.exp_params['protocols']['Hans_sil1']['Magnetometry']) pts_coarse = 31 fine_pts = 51 fine_range = 0.4e6 n_split = m.params['N_HF_frq'] mw_mod = m.params['MW_modulation_frequency'] outer_minus = np.linspace(mw_mod-1e6,mw_mod-fine_range,pts_coarse) outer_plus = np.linspace(mw_mod+fine_range,mw_mod+1e6,pts_coarse) + 2*n_split aplus_list = np.linspace(mw_mod-fine_range,mw_mod+fine_range,fine_pts) +2*n_split a0_list = np.linspace(mw_mod-fine_range,mw_mod+fine_range,fine_pts) + n_split amin_list = np.linspace(mw_mod-fine_range,mw_mod+fine_range,fine_pts) amin_to_a0 = np.linspace(mw_mod+fine_range,mw_mod-fine_range+n_split,pts_coarse) a0_to_aplus = np.linspace(mw_mod+fine_range+n_split,mw_mod-fine_range+2*n_split,pts_coarse) # m.params['MW_pulse_mod_frqs'] = np.linspace(m.params['MW_modulation_frequency'] # -1.5e6, m.params['MW_modulation_frequency']+5.5e6, pts) m.params['MW_pulse_mod_frqs'] = np.r_[outer_minus,amin_list,amin_to_a0,a0_list,a0_to_aplus,aplus_list,outer_plus] print m.params['MW_pulse_mod_frqs'] pts = len(m.params['MW_pulse_mod_frqs']) m.params['reps_per_ROsequence'] = 250 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2500e-9 # MW pulses m.params['MW_pulse_durations'] = np.ones(pts) * 8e-6 #m.params['AWG_MBI_MW_pulse_duration']*4 #3e-6 #3000e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.006 #m.params['AWG_MBI_MW_pulse_amp']/4 #0.01525 #for msm1, ??? for msp1, m.params['pts'] = pts # for the autoanalysis m.params['sweep_name'] = 'MW pulse frequency (MHz)' m.params['sweep_pts'] = (m.params['MW_pulse_mod_frqs'] + m.params['mw_frq'])/1.e6 print m.params['MBI_threshold'] funcs.finish(m, debug=False)
def RO_spin_flip_calibration(name, MBI_RO_power=None, MBI_RO_duration=None): m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 2000 #Spin pumping before Nitrogen MBI: Switch spin pumping towards ms=0 m.params['Ex_SP_amplitude'] = 0 m.params['A_SP_amplitude_before_MBI'] = 20e-9 m.params['SP_E_duration'] = 1000 #No MBI MW pulse m.params['AWG_MBI_MW_pulse_amp'] = 0 #No repump in between m.params['repump_after_MBI_A_amplitude'] = [0e-9] #First RO (dynamical stop) if MBI_RO_power != None: m.params['Ex_MBI_amplitude'] = MBI_RO_power if MBI_RO_duration != None: m.params['MBI_duration'] = MBI_RO_duration m.params['AWG_wait_for_adwin_MBI_duration'] = m.params[ 'MBI_duration'] * 1e-6 + 15e-6 #1.2*m.params['MBI_duration']*1e-6# Added to AWG tirgger time to wait for ADWIN event. THT: this should just MBI_Duration + 10 us #Do you want to condition on getting a click? m.params['MBI_threshold'] = 1 # NO MW pulses m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 m.params['MW_pulse_durations'] = np.ones(pts) * 0 m.params['MW_pulse_amps'] = np.ones(pts) * 0 m.params['MW_pulse_mod_frqs'] = np.linspace( m.params['MW_modulation_frequency'] - 1.5e6, m.params['MW_modulation_frequency'] + 5.5e6, pts) # for the autoanalysis m.params['sweep_name'] = 'repetitions' m.params['sweep_pts'] = range(pts) funcs.finish(m, debug=False)
def cal_fast_pi2(name, mult=1, Range=0.05, mbi=True, mw_switch=False): if mw_switch: m = pulsar_mbi_espin.ElectronRabi_Switch('cal_fast_pi_over_2_' + name + '_M=%d' % mult) else: m = pulsar_mbi_espin.ElectronRabi('cal_fast_pi_over_2_' + name + '_M=%d' % mult) #funcs.prepare(m, SIL_NAME) funcs.prepare(m) # measurement settings pts = 21 m.params['reps_per_ROsequence'] = 500 m.params['pts'] = pts m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 30e-9 # pulses m.params['MW_pulse_durations'] = m.params['fast_pi2_duration'] * ( np.ones(pts)) # print m.params['MW_pulse_durations'] m.params['MW_pulse_amps'] = np.linspace( m.params['fast_pi2_amp'] - Range / 2., m.params['fast_pi2_amp'] + Range / 2., pts) # print m.params['MW_pulse_amps'] m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse amplitude (V)' m.params['sweep_pts'] = m.params['MW_pulse_amps'] if mbi == False: m.params['MBI_threshold'] = 0 m.params['Ex_SP_amplitude'] = 0 m.params['Ex_MBI_amplitude'] = 0 m.params['repump_after_MBI_A_amplitude'] = [15e-9] m.params['repump_after_MBI_duration'] = [50] funcs.finish(m)
def cal_fast_pi2_length(name, mult=1, min_pulse_length=125e-9, max_pulse_length=140e-9, pulse_amp=0.4, mbi=True): m = pulsar_mbi_espin.ElectronRabi('cal_fast_pi_over_2_length' + name + '_M=%d' % mult) #funcs.prepare(m, SIL_NAME) funcs.prepare(m) # measurement settings pts = 15 m.params['reps_per_ROsequence'] = 1000 m.params['pts'] = pts m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 30e-9 # pulses m.params['MW_pulse_durations'] = np.linspace( min_pulse_length, max_pulse_length, pts) * (np.ones(pts)) print m.params['MW_pulse_durations'] m.params['MW_pulse_amps'] = pulse_amp * np.ones(pts) print m.params['MW_pulse_amps'] m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse amplitude (V)' m.params['sweep_pts'] = m.params['MW_pulse_amps'] if mbi == False: m.params['MBI_threshold'] = 0 m.params['Ex_SP_amplitude'] = 0 m.params['Ex_MBI_amplitude'] = 0 # for the autoanalysis m.params['sweep_name'] = 'Pulse length (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m)
def run(name): m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) pts = 17 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 # MW pulses m.params['MW_pulse_durations'] = np.linspace(0, 1500e-9, pts) + 5e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.166 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse duration (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m, debug=True)
def cal_fast_rabi(name, yellow): m = pulsar_mbi_espin.ElectronRabi('cal_4mhz_rabi'+name) funcs.prepare(m, yellow) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 20e-9 # MW pulses m.params['MW_pulse_durations'] = np.linspace(0,250e-9,pts) + 5e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.75 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse duration (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m)
def cal_slow_pi(name): m = pulsar_mbi_espin.ElectronRabi('cal_slow_pi_' + name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['reps_per_ROsequence'] = 500 m.params['pts'] = pts m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 1e-9 # slow pi pulses m.params['MW_pulse_durations'] = np.ones(pts) * 2500e-9 m.params['MW_pulse_amps'] = np.linspace(0, 0.03, pts) m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse amp (V)' m.params['sweep_pts'] = m.params['MW_pulse_amps'] funcs.finish(m, debug=False, upload=UPLOAD)
def cal_fast_rabi(name): m = pulsar_mbi_espin.ElectronRabi('cal_fast_rabi' + name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 20e-9 # MW pulses m.params['MW_pulse_durations'] = np.linspace(0, 500e-9, pts) + 5e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.4 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse duration (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m, debug=False, upload=UPLOAD)
def cal_slow_pi(name, yellow): m = pulsar_mbi_espin.ElectronRabi('cal_slow_pi_'+name) funcs.prepare(m, yellow) # measurement settings pts = 21 m.params['reps_per_ROsequence'] = 500 m.params['pts'] = pts m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 1e-9 # slow pi pulses m.params['MW_pulse_durations'] = np.linspace(0,5e-6,pts) + 50e-9 m.params['MW_pulse_amps'] = np.ones(pts) * 0.011 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse duration (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 funcs.finish(m)
def cal_4mhz_pi2(name, mult=1): m = pulsar_mbi_espin.ElectronRabi( 'cal_4MHz_pi_over_2_'+name+'_M=%d' % mult) funcs.prepare(m) # measurement settings pts = 11 m.params['reps_per_ROsequence'] = 2000 m.params['pts'] = pts m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 100e-9 # pulses m.params['MW_pulse_durations'] = 1e-9 * (np.ones(pts) * 45) m.params['MW_pulse_amps'] = np.linspace(0.65, 0.75, pts) m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse amplitude (V)' m.params['sweep_pts'] = m.params['MW_pulse_amps'] funcs.finish(m)
def run(name, mw_switch=False): if mw_switch: m = pulsar_mbi_espin.ElectronRabi_Switch(name) else: m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) # m.params.from_dict(qt.exp_params['protocols']['Hans_sil1']['Magnetometry']) pts = 81 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 1582e-9 # MW pulses m.params['MW_pulse_durations'] = np.ones( pts) * 8000e-9 #m.params['AWG_MBI_MW_pulse_duration'] #3e-6 #3000e-9 m.params['MW_pulse_amps'] = np.ones( pts ) * 0.003 #m.params['AWG_MBI_MW_pulse_amp'] #0.01525 #for msm1, ??? for msp1, m.params['MW_pulse_mod_frqs'] = np.linspace( m.params['MW_modulation_frequency'] - 3.5e6, m.params['MW_modulation_frequency'] + 3.5e6, pts) print m.params['MW_pulse_mod_frqs'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse frequency (MHz)' m.params['sweep_pts'] = (m.params['MW_pulse_mod_frqs'] + m.params['mw_frq']) / 1.e6 # print 'MBI_Threshold', m.params['MBI_threshold'] funcs.finish(m, debug=False)
def run(name, mbi=True, mw_switch=False): if mw_switch: m = pulsar_mbi_espin.ElectronRabi_Switch(name) else: m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) #m.params.from_dict(qt.exp_params['protocols'][SAMPLE]['Magnetometry']) #print 'MBI threshold =' + str(m.params['MBI_threshold']) #print 'Ex_MBI_amplitude =' + str(m.params['Ex_MBI_amplitude']) #print 'SSRO_duration =' + str(m.params['SSRO_duration']) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 250 sweep_duration = True sweep_detuning = False #Note: MBI init line is set in msmnt_params:AWG_MBI_MW_pulse_ssbmod_frq # driving line (a.k.a. RO line) m.params['MW_pulse_mod_frqs'] = np.ones(pts) * m.params[ 'MW_modulation_frequency'] #-m.params['N_HF_frq'] #m.params['mw_frq'] = m.params['ms+1_cntr_frq']-m.params['MW_modulation_frequency'] m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) #*5 m.params['MW_pulse_delays'] = np.ones(pts) * 200e-9 if sweep_duration: # MW pulses m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi_amp'] m.params['MW_pulse_durations'] = np.linspace( 0, 4 * m.params['fast_pi_duration'], pts) # 05-30-'14 Took away the +10 ns -Machiel m.params['sweep_name'] = 'MW pulse duration (ns)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9 if mbi == False: m.params['MBI_threshold'] = 0 m.params['Ex_SP_amplitude'] = 0 m.params['Ex_MBI_amplitude'] = 0 m.params['repump_after_MBI_A_amplitude'] = [15e-9] m.params['repump_after_MBI_duration'] = [50] else: # tau_larmor = 2.999e-6 #why? m.params['MW_pulse_durations'] = np.ones( pts) * m.params['fast_pi_duration'] m.params['MW_pulse_amps'] = np.linspace(0, 0.9, pts) m.params['sweep_name'] = 'MW pulse amp' m.params['sweep_pts'] = m.params['MW_pulse_amps'] if mbi == False: m.params['MBI_threshold'] = 0 m.params['Ex_SP_amplitude'] = 0 m.params['Ex_MBI_amplitude'] = 0 m.params['repump_after_MBI_A_amplitude'] = [15e-9] m.params['repump_after_MBI_duration'] = [50] if sweep_detuning: m.params['MW_pulse_amps'] = np.ones( pts) * 0.022 #m.params['fast_pi_amp'] m.params['MW_pulse_durations'] = np.ones( pts) * 2000e-9 # 05-30-'14 Took away the +10 ns -Machiel fctr = m.params['MW_modulation_frequency'] m.params['MW_pulse_mod_frqs'] = np.linspace(fctr - 2250e3, fctr + 2250e3, pts) m.params['sweep_name'] = 'MW added detuning (KHz)' m.params['sweep_pts'] = m.params['MW_pulse_mod_frqs'] * 1e-3 # for the autoanalysis funcs.finish(m, debug=False)