def nspinflips(name): m = NSpinflips(name) funcs.prepare(m) SP_power = 20e-9 m.params['AWG_SP_amplitude'] = qt.instruments['NewfocusAOM_lt1'].power_to_voltage( SP_power, controller='sec') m.params['AWG_SP_duration'] = 10e-6 pts = 15 rep_factor = 200 m.params['pts'] = pts m.params['AWG_sequence_repetitions'] = np.arange(pts) * rep_factor m.params['reps_per_ROsequence'] = 1000 # for testing m.params['msm1_CORPSE_pi_amp'] = 0.796974 m.params['pi2pi_mIm1_mod_frq'] = 2.828067e9 - 2.8e9 - 2.19290e6 m.params['pi2pi_mIm1_amp'] = 0.108 m.params['pi2pi_mIm1_duration'] = 396e-9 # for the autoanalysis m.params['sweep_name'] = 'SP cycles' m.params['sweep_pts'] = m.params['AWG_sequence_repetitions'] funcs.finish(m, upload=True, debug=False)
def run_gaussian_electron_rabi(name): m = ShapedRabiMsmt(name) # BSM.ElectronRabiMsmt(name) sil_name='sil9' funcs.prepare(m, sil_name, yellow=False) pts = 11 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 m.params['MW_pulse_multiplicities'] = np.linspace(0,10,pts).astype(int) * 1 m.params['MW_pulse_delays'] = np.ones(pts) * 100e-9 #initialisation:cfg.set(branch+ m.params['AWG_MBI_MW_pulse_mod_frq']= m.params['mIp1_mod_frq'] m.params['AWG_MBI_MW_pulse_ssbmod_frq']=m.params['AWG_MBI_MW_pulse_mod_frq'] m.params['pulse_mod_frqs'] = np.ones(pts) * m.params['mIm1_mod_frq'] m.params['pulse_amps'] = np.ones(pts)*0.07#np.linspace(0,0.12,pts) m.params['pulse_durations']= np.ones(pts) * 395e-9 # for the autoanalysis m.params['sweep_name'] = 'MW_pulse_multiplicities' m.params['sweep_pts'] = m.params['MW_pulse_multiplicities'] m.PulseClass = pulselib.MW_IQmod_pulse #pulselib.MW_IQmod_pulse #pulselib.GaussianPulse_Envelope_IQ #pulselib.HermitePulse_Envelope_IQ #pulselib.ReburpPulse_Envelope_IQ funcs.finish(m, upload=True, debug=False)
def calibrate_MBI_fidelity(name, params=None): m = MBIFidelity(name) mbi_funcs.prepare(m) if params != None: m.params.from_dict(params.to_dict()) pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 40000 # overwrite this: at the moment the regular MBI program does not support that yet # (5 nov 2013) m.params['max_MBI_attempts'] = 100 m.params['N_randomize_duration'] = 50 m.params['Ex_N_randomize_amplitude'] = 10e-9 m.params['A_N_randomize_amplitude'] = 10e-9 m.params['repump_N_randomize_amplitude'] = 0 # MW pulses m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 # TODO put this into the msmt parameters file MIM1_AMP = 0.005254 MI0_AMP = 0.005185 MIP1_AMP = 0.005038 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)
def rr(name): m = RR(name) funcs.prepare(m) pts = 1 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 # RR settings # m.params['CORPSE_pi_amp'] = 0 # 0 for RO from ms=0! m.params['nr_of_ROsequences'] = 10 m.params['AWG_MBI_MW_pulse_ssbmod_frq'] = m.params['mI0_mod_frq'] # m.params['mIm1_mod_frq'] # for the autoanalysis m.params['sweep_name'] = 'n/a' m.params['sweep_pts'] = m.params['pts'] finish_RR(m, m.params['nr_of_ROsequences'], upload=True, debug=False)
def sweep_amplitude(name): m = CORPSEPiCalibration(name) 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.48, 0.57, pts) m.params['multiplicity'] = 11 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)
def calibrate_MBI_fidelity(name, params=None): m = MBIFidelity(name) mbi_funcs.prepare(m) if params != None: m.params.from_dict(params.to_dict()) pts = 4 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 40000 # overwrite this: at the moment the regular MBI program does not support that yet # (5 nov 2013) m.params['max_MBI_attempts'] = 100 m.params['N_randomize_duration'] = 50 m.params['Ex_N_randomize_amplitude'] = 10e-9 m.params['A_N_randomize_amplitude'] = 10e-9 m.params['repump_N_randomize_amplitude'] = 0 # MW pulses m.params['MW_pulse_multiplicities'] = np.ones(pts).astype(int) m.params['MW_pulse_delays'] = np.ones(pts) * 2000e-9 # TODO put this into the msmt parameters file MIM1_AMP = 0.005254 MI0_AMP = 0.005185 MIP1_AMP = 0.005038 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)
def run(name): m = pulsar_mbi_espin.ElectronRabi(name) funcs.prepare(m) pts = 21 m.params["pts"] = pts m.params["reps_per_ROsequence"] = 500 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, 500e-9, pts) + 10e-9 m.params["MW_pulse_amps"] = np.ones(pts) * 0.8 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)
def cal_fast_rabi(name): m = pulsar_mbi_espin.ElectronRabi('cal_fast_rabi'+name) funcs.prepare(m, SIL_NAME) 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)
def cal_slow_pi(name): m = pulsar_mbi_espin.ElectronRabi('cal_slow_pi_'+name) 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)
def run(name): m = pulsar_mbi_espin.ElectronRamsey(name) funcs.prepare(m, SIL_NAME) pts = 21 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 m.params['MW_pulse_delays'] = np.linspace(0,3000e-9,pts) # MW pulses m.params['MW_pulse_durations'] = np.ones(pts) * m.params['fast_pi2_duration'] m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi2_amp'] m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['AWG_MBI_MW_pulse_mod_frq'] m.params['MW_pulse_1_phases'] = np.ones(pts) * 0 m.params['MW_pulse_2_phases'] = np.ones(pts) * 0 # for the autoanalysis m.params['sweep_name'] = 'evolution time (ns)' m.params['sweep_pts'] = m.params['MW_pulse_delays'] /1e-9 funcs.finish(m, debug=False)
def cal_fast_pi2(name, mult=1): m = pulsar_mbi_espin.ElectronRabi( 'cal_fast_pi_over_2_'+name+'_M=%d' % mult) funcs.prepare(m, SIL_NAME) # 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) * 32) 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)
def cal_pi2pi_pi_len(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements( 'cal_pi2pi_pi_len_'+name+'_M=%d' % mult) funcs.prepare(m, SIL_NAME) # 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'] = 1e-9 * (np.linspace(-50,50,pts).astype(int) + 395) m.params['MW_pulse_amps'] = np.ones(pts)*0.137 m.params['MW_pulse_mod_frqs'] = np.ones(pts) * \ m.params['f0'] # for the autoanalysis m.params['sweep_name'] = 'MW pulse length (s)' m.params['sweep_pts'] = m.params['MW_pulse_durations'] funcs.finish(m)
def cal_pi2pi_pi(name, mult=1): m = pulsar_mbi_espin.ElectronRabiSplitMultElements( 'cal_pi2pi_pi_'+name+'_M=%d' % mult) funcs.prepare(m, SIL_NAME) # 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 # hard pi pulses m.params['MW_pulse_durations'] = np.ones(pts) * 395e-9 m.params['MW_pulse_amps'] = np.linspace(0.09, 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)