Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)