def cal_fast_pi(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements('cal_fast_pi_' + name + '_M=%d' % mult) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 15e-6 # hard pi pulses m.params['MW_pulse_durations'] = np.ones( pts) * m.params['fast_pi_duration'] m.params['MW_pulse_amps'] = np.linspace(0.7, 0.9, 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, debug=False, upload=UPLOAD)
def cal_fast_pi(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements('cal_fast_pi_' + name + '_M=%d' % mult) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 15e-6 # hard pi pulses m.params['MW_pulse_durations'] = np.ones( pts) * m.params['fast_pi_duration'] m.params['MW_pulse_amps'] = np.linspace(0.7, 0.9, 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, debug=False, upload=UPLOAD)
def cal_pi2pi_pi_mI0(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements( 'cal_pi2pi_pi_mI0_'+name+'_M=%d' % mult) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 15e-6 # MBI is in mI = 0 here # some msmts use mod, others ssbmod (haven't found the mistake yet.) set both. m.params['AWG_MBI_MW_pulse_mod_frq'] = m.params['pi2pi_mI0_mod_frq'] m.params['AWG_MBI_MW_pulse_ssbmod_frq'] = m.params['pi2pi_mI0_mod_frq'] # hard pi pulses m.params['MW_pulse_durations'] = np.ones(pts) * 396e-9 m.params['MW_pulse_amps'] = np.linspace(0.095,0.12,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, debug=False, upload=UPLOAD)
def cal_pi2pi_pi_mI0(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements('cal_pi2pi_pi_mI0_' + name + '_M=%d' % mult) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) * mult m.params['MW_pulse_delays'] = np.ones(pts) * 15e-6 # MBI is in mI = 0 here # some msmts use mod, others ssbmod (haven't found the mistake yet.) set both. m.params['AWG_MBI_MW_pulse_mod_frq'] = m.params['pi2pi_mI0_mod_frq'] m.params['AWG_MBI_MW_pulse_ssbmod_frq'] = m.params['pi2pi_mI0_mod_frq'] # hard pi pulses m.params['MW_pulse_durations'] = np.ones(pts) * 396e-9 m.params['MW_pulse_amps'] = np.linspace(0.095, 0.12, 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, debug=False, upload=UPLOAD)
def calibrate_MBI_fidelity_RO_pulses(name): m = pulsar_msmt.ElectronRabi('MBI_fidelity_RO_pulses_'+name) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO']) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+espin']) funcs.prepare(m) m.params['pts'] = 21 pts = m.params['pts'] m.params['repetitions'] = 5000 m.params['MBI_calibration_RO_pulse_duration'] = 8.3e-6 m.params['MBI_calibration_RO_pulse_amplitude_sweep_vals'] = np.linspace(0.002,0.007,pts) m.params['MBI_calibration_RO_pulse_mod_frqs'] = \ m.params['ms-1_cntr_frq'] - m.params['mw_frq'] + \ np.array([-1,0,+1]) * m.params['N_HF_frq'] m.params['MW_pulse_durations'] = np.ones(pts) * m.params['MBI_calibration_RO_pulse_duration'] m.params['MW_pulse_amplitudes'] = m.params['MBI_calibration_RO_pulse_amplitude_sweep_vals'] m.params['sweep_name'] = 'Pulse amplitudes (V)' m.params['sweep_pts'] = m.params['MW_pulse_amplitudes'] m.params['sequence_wait_time'] = \ int(np.ceil(np.max(m.params['MW_pulse_durations'])*1e6)+10) for i,f in enumerate(m.params['MBI_calibration_RO_pulse_mod_frqs']): m.params['MW_pulse_frequency'] = f m.autoconfig() m.generate_sequence(upload=True) m.run() m.save('line-{}'.format(i)) m.stop_sequence() qt.msleep(1) m.finish()
def calibrate_MBI_fidelity(name): m = MBIFidelity(name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO']) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 10000 # MW pulses m.params['max_MBI_attempts'] = 100 m.params[ 'N_randomize_duration'] = 50 # This could still be optimized, 50 is a guess m.params[ 'Ex_N_randomize_amplitude'] = 15e-9 # 10 nW is a guess, not optimized m.params[ 'A_N_randomize_amplitude'] = 20e-9 # 10 nW is a guess, not optimized m.params['repump_N_randomize_amplitude'] = 0 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 MIM1_AMP = 0.005182 MI0_AMP = 0.005015 MIP1_AMP = 0.005009 m.params['MW_pulse_durations'] = np.ones( pts) * 8.3e-6 # the four readout pulse durations m.params['MW_pulse_amps'] = np.array( [MIM1_AMP, MI0_AMP, MIP1_AMP, 0.]) # calibrated powers for equal-length pi-pulses # Assume for now that we're initializing into m_I = -1 (no other nuclear spins) f_m1 = m.params['AWG_MBI_MW_pulse_mod_frq'] f_HF = m.params['N_HF_frq'] m.params['MW_pulse_mod_frqs'] = f_m1 + np.array([0, 1, 2, 5]) * f_HF # for the autoanalysis m.params['sweep_name'] = 'Readout transitions' m.params['sweep_pts'] = m.params['MW_pulse_mod_frqs'] m.params['sweep_pt_names'] = [ '$m_I = -1$', '$m_I = 0$', '$m_I = +1$', 'None' ] funcs.finish(m, debug=False, upload=UPLOAD)
def calibrate_MBI_fidelity(name): m = MBIFidelity(name) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO']) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 10000 # MW pulses m.params['max_MBI_attempts'] = 100 m.params[ 'N_randomize_duration'] = 50 # This could still be optimized, 50 is a guess m.params[ 'Ex_N_randomize_amplitude'] = 15e-9 # 10 nW is a guess, not optimized m.params[ 'A_N_randomize_amplitude'] = 20e-9 # 10 nW is a guess, not optimized m.params['repump_N_randomize_amplitude'] = 0 m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 MIM1_AMP = 0.005182 MI0_AMP = 0.005015 MIP1_AMP = 0.005009 m.params['MW_pulse_durations'] = np.ones( pts) * 8.3e-6 # the four readout pulse durations m.params['MW_pulse_amps'] = np.array( [MIM1_AMP, MI0_AMP, MIP1_AMP, 0.]) # calibrated powers for equal-length pi-pulses # Assume for now that we're initializing into m_I = -1 (no other nuclear spins) f_m1 = m.params['AWG_MBI_MW_pulse_mod_frq'] f_HF = m.params['N_HF_frq'] m.params['MW_pulse_mod_frqs'] = f_m1 + np.array([0, 1, 2, 5]) * f_HF # for the autoanalysis m.params['sweep_name'] = 'Readout transitions' m.params['sweep_pts'] = m.params['MW_pulse_mod_frqs'] m.params['sweep_pt_names'] = [ '$m_I = -1$', '$m_I = 0$', '$m_I = +1$', 'None' ] funcs.finish(m, debug=False, upload=UPLOAD)
def cal_CORPSE_pi(name, mult=1): m = CORPSE_calibration.CORPSEPiCalibration(name + '_M=%d' % mult) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # sweep params m.params['CORPSE_pi_sweep_amps'] = np.linspace(0.49, 0.56, pts) m.params['multiplicity'] = mult m.params['delay_reps'] = 15 # for the autoanalysis m.params['sweep_name'] = 'CORPSE amplitude (V)' m.params['sweep_pts'] = m.params['CORPSE_pi_sweep_amps'] funcs.finish(m, debug=False, upload=UPLOAD)
def cal_CORPSE_pi(name , mult=1): m = CORPSE_calibration.CORPSEPiCalibration(name+'_M=%d' % mult) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # sweep params m.params['CORPSE_pi_sweep_amps'] = np.linspace(0.49, 0.56, pts) m.params['multiplicity'] = mult m.params['delay_reps'] = 15 # for the autoanalysis m.params['sweep_name'] = 'CORPSE amplitude (V)' m.params['sweep_pts'] = m.params['CORPSE_pi_sweep_amps'] funcs.finish(m, debug=False, upload=UPLOAD)
def cal_fast_pi2(name): m = pi2_calibration.Pi2Calibration('cal_fast_pi_over_2_' + name) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['reps_per_ROsequence'] = 3000 m.params['pts_awg'] = pts m.params['pts'] = 2 * pts sweep_axis = np.linspace(0.65, 0.9, pts) # pulses m.params['pi2_sweep_amps'] = sweep_axis # for the autoanalysis m.params['sweep_name'] = 'MW pulse amplitude (V)' m.params['sweep_pts'] = np.sort(np.append(sweep_axis, sweep_axis)) funcs.finish(m, debug=False, upload=UPLOAD)
def cal_fast_pi2(name): m = pi2_calibration.Pi2Calibration('cal_fast_pi_over_2_' + name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+MBI']) funcs.prepare(m) # measurement settings pts = 11 m.params['reps_per_ROsequence'] = 3000 m.params['pts_awg'] = pts m.params['pts'] = 2 * pts sweep_axis = np.linspace(0.65, 0.9, pts) # pulses m.params['pi2_sweep_amps'] = sweep_axis # for the autoanalysis m.params['sweep_name'] = 'MW pulse amplitude (V)' m.params['sweep_pts'] = np.sort(np.append(sweep_axis, sweep_axis)) funcs.finish(m, debug=False, upload=UPLOAD)
def cal_ssro_teleportation(name): m = ssro.AdwinSSRO('SSROCalibration_' + name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO']) funcs.prepare(m) m.params['SSRO_repetitions'] = 5000 m.params['SP_duration'] = 250 # we want to calibrate the RO, not the SP m.params['SSRO_duration'] = 50 # ms = 1 calibration m.params['Ex_SP_amplitude'] = 0 m.run() m.save('ms0') # ms = 1 calibration m.params['A_SP_amplitude'] = 0. m.params['Ex_SP_amplitude'] = m.params['E_SP_amplitude'] m.run() m.save('ms1') m.finish()
def cal_ssro_teleportation(name): m = ssro.AdwinSSRO('SSROCalibration_'+name) m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO']) funcs.prepare(m) m.params['SSRO_repetitions'] = 5000 m.params['SP_duration'] = 250 # we want to calibrate the RO, not the SP m.params['SSRO_duration'] = 50 # ms = 1 calibration m.params['Ex_SP_amplitude'] = 0 m.run() m.save('ms0') # ms = 1 calibration m.params['A_SP_amplitude'] = 0. m.params['Ex_SP_amplitude'] = m.params['E_SP_amplitude'] m.run() m.save('ms1') m.finish()
def cal_slow_pi(name): m = pulsar_mbi_espin.ElectronRabi('cal_slow_pi_'+name) m.params.from_dict(qt.cfgman['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.cfgman['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): 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 calibrate_MBI_fidelity_RO_pulses(name): m = pulsar_msmt.ElectronRabi('MBI_fidelity_RO_pulses_' + name) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO']) m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+espin']) funcs.prepare(m) m.params['pts'] = 21 pts = m.params['pts'] m.params['repetitions'] = 5000 m.params['MBI_calibration_RO_pulse_duration'] = 8.3e-6 m.params['MBI_calibration_RO_pulse_amplitude_sweep_vals'] = np.linspace( 0.002, 0.007, pts) m.params['MBI_calibration_RO_pulse_mod_frqs'] = \ m.params['ms-1_cntr_frq'] - m.params['mw_frq'] + \ np.array([-1,0,+1]) * m.params['N_HF_frq'] m.params['MW_pulse_durations'] = np.ones( pts) * m.params['MBI_calibration_RO_pulse_duration'] m.params['MW_pulse_amplitudes'] = m.params[ 'MBI_calibration_RO_pulse_amplitude_sweep_vals'] m.params['sweep_name'] = 'Pulse amplitudes (V)' m.params['sweep_pts'] = m.params['MW_pulse_amplitudes'] m.params['sequence_wait_time'] = \ int(np.ceil(np.max(m.params['MW_pulse_durations'])*1e6)+10) for i, f in enumerate(m.params['MBI_calibration_RO_pulse_mod_frqs']): m.params['MW_pulse_frequency'] = f m.autoconfig() m.generate_sequence(upload=True) m.run() m.save('line-{}'.format(i)) m.stop_sequence() qt.msleep(1) m.finish()