Example #1
0
def erabi_p1(name):
    m = pulsar_msmt.ElectronRabi(name)

    m.params.from_dict(qt.exp_params['samples'][SAMPLE])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(
        qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO-integrated'])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+espin'])

    pump_on_Ex = False
    if pump_on_Ex:
        m.params['SP_duration'] = 300
        m.params['A_SP_amplitude'] = 0.
        m.params['Ex_SP_amplitude'] = 10e-9

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['repetitions'] = 1000

    m.params['wait_after_pulse_duration'] = 0
    m.params['wait_after_RO_pulse_duration'] = 0

    m.params['mw_frq'] = m.params['ms+1_cntr_frq'] - 43e6  #for ms=+1
    m.params[
        'MW_pulse_frequency'] = m.params['ms+1_cntr_frq'] - m.params['mw_frq']
    print m.params['ms-1_cntr_frq']
    m.params['mw_power'] = 23

    # m.params['MW_pulse_durations'] =  np.linspace(0, 600, pts) * 1e-9
    m.params['MW_pulse_durations'] = 5500e-9 * np.ones(
        pts)  #np.linspace(0, 200, pts) * 1e-9

    # m.params['MW_pulse_amplitudes'] = np.ones(pts) *1
    m.params['MW_pulse_amplitudes'] = np.linspace(0, 0.02,
                                                  pts)  #0.85*np.ones(pts)

    # for autoanalysis
    #m.params['sweep_name'] = 'Pulse duration (ns)' #'Pulse amps (V)'
    #m.params['sweep_pts'] = m.params['MW_pulse_durations']*1e9

    # m.params['sweep_name'] = 'Pulse durations (ns)'
    m.params['sweep_name'] = 'MW_pulse_amplitudes (V)'

    # m.params['sweep_pts'] = m.params['MW_pulse_durations']*1e9
    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) #Redundant because defined in m.autoconfig? Tim

    m.autoconfig()  #Redundant because executed in m.run()? Tim
    m.generate_sequence(upload=True)
    m.run()
    m.save()
    m.finish()
Example #2
0
def calibrate_MBI_fidelity_RO_pulses(name, params=None):
    m = pulsar_msmt.ElectronRabi(name + '_' + 'MBI_fidelity_RO_pulses')

    m.params.from_dict(qt.exp_params['samples'][SAMPLE])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(
        qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO-integrated'])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+espin'])

    if params != None:
        m.params.from_dict(params.to_dict())

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['repetitions'] = 5000

    # TODO these values should go into msmt params
    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()
Example #3
0
def erabi(name, msp1=False):
    m = pulsar_msmt.ElectronRabi(name)

    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['sil5-default']['AdwinSSRO'])
    m.params.from_dict(
        qt.cfgman['protocols']['sil5-default']['AdwinSSRO-integrated'])
    m.params.from_dict(qt.cfgman['samples']['sil5'])

    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO+espin'])

    ssro.AdwinSSRO.repump_aom = qt.instruments['GreenAOM']
    m.params['repump_duration'] = m.params['green_repump_duration']
    m.params['repump_amplitude'] = m.params['green_repump_amplitude']

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['MW_pulse_durations'] = np.linspace(0, 300e-9, pts)

    if msp1:
        m.params['mw_frq'] = 2.90e9
        m.params['ms_cntr_frq'] = m.params['ms+1_cntr_frq']
    else:
        m.params['mw_frq'] = 2.80e9
        m.params['ms_cntr_frq'] = m.params['ms-1_cntr_frq']

    m.params['mw_power'] = 20

    m.params['repetitions'] = 1000
    m.params['MW_pulse_amplitudes'] = np.ones(pts) * 0.9
    m.params[
        'MW_pulse_frequency'] = m.params['ms_cntr_frq'] - m.params['mw_frq']
    m.params['MW_pulse_mod_risetime'] = 10e-9

    m.params['sweep_name'] = 'Pulse length (ns)'
    m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9

    m.params['sequence_wait_time'] = \
            int(np.ceil(np.max(m.params['MW_pulse_durations'])*1e6)+10)

    m.autoconfig()
    m.generate_sequence(upload=True)
    m.run()
    m.save()
    m.finish()
def cal_8mhz_rabi(name):
    m = pulsar_msmt.ElectronRabi('cal_8mhz_rabi' + name)
    funcs.prepare(m)

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['repetitions'] = 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_amplitudes'] = np.ones(pts) * 0.545
    m.params['MW_pulse_frequency'] = m.params['f0']

    # for the autoanalysis
    m.params['sweep_name'] = 'MW pulse duration (ns)'
    m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9

    m.params['sequence_wait_time'] = \
            int(np.ceil(np.max(m.params['MW_pulse_durations'])*1e6)+10)

    funcs.finish(m)
Example #5
0
def erabi(name):
    m = pulsar_msmt.ElectronRabi(name)
    funcs.prepare(m)

    # NOTE: Replaced all the m.params.from_dict statements with funcs.prepare(m)
    # m.params.from_dict(qt.exp_params['samples'][SAMPLE])
    # m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    # m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    # m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO-integrated'])
    # m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+espin'])
    # m.params.from_dict(qt.exp_params['protocols'][SAMPLE]['pulses'])

    m.params['pts'] = 31
    pts = m.params['pts']
    m.params['repetitions'] = 1000

    m.params['MW_pulse_frequency'] = m.params['mw_mod_freq']

    if 0:
        m.params['MW_pulse_durations'] = np.ones(
            pts) * m.params['AWG_MBI_MW_pulse_duration']
        m.params['MW_pulse_amplitudes'] = np.linspace(0, 0.04, pts)
        m.params['sweep_name'] = 'MW_pulse_amplitudes (V)'
        m.params['sweep_pts'] = m.params['MW_pulse_amplitudes']

    elif 1:
        m.params['MW_pulse_durations'] = np.linspace(0, 10e-6, pts)
        m.params['MW_pulse_amplitudes'] = np.ones(
            pts) * m.params['AWG_MBI_MW_pulse_amp']
        m.params['sweep_name'] = 'MW_pulse_durations (us)'
        m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e6

    m.autoconfig()  #Redundant because executed in m.run()? Tim
    m.generate_sequence(upload=True)
    m.run(autoconfig=False)
    m.save()
    m.finish()
def erabi(name):
    m = pulsar_msmt.ElectronRabi(name)

    m.params.from_dict(qt.exp_params['samples'][SAMPLE])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(
        qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO-integrated'])
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO+espin'])  #
    m.params.from_dict(qt.exp_params['protocols']['cr_mod'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['pulses'])

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['repetitions'] = 5000
    m.params['Ex_SP_amplitude'] = 0

    # m.params['pulse_shape'] = 'Hermite'
    # print m.params['pulse_shape']

    sweep_param = 'length'

    m.params['mw_power'] = -1
    m.params['MW_modulation_frequency'] = 43e6
    m.params['mw_frq'] = m.params['ms-1_cntr_frq'] - m.params[
        'MW_modulation_frequency']

    if sweep_param == 'length':
        if m.params['electron_transition'] == '_m1':
            print 'minus 1 transition'
            m.params['MW_pulse_durations'] = np.linspace(0, 8000, pts) * 1e-9
        elif m.params['electron_transition'] == '_p1':
            print 'plus 1 transition'
            m.params['MW_pulse_durations'] = np.linspace(0, 8000, pts) * 1e-9
        m.params['MW_pulse_amplitudes'] = np.ones(pts) * 0.08
        # m.params['MW_pulse_amplitudes'] = np.ones(pts) * m.params['fast_pi_amp']
        # m.params['MW_pulse_amplitudes'] = np.ones(pts) * m.params['Square_pi_amp']
        m.params['sweep_name'] = 'Pulse durations (ns)'
        m.params['sweep_pts'] = m.params['MW_pulse_durations'] * 1e9

    elif sweep_param == 'amplitude':
        m.params['MW_pulse_durations'] = np.ones(pts) * 4000e-9
        m.params['MW_pulse_amplitudes'] = np.linspace(0.0, 0.08, pts)  #0.02
        m.params['sweep_name'] = 'MW_pulse_amplitudes (V)'
        m.params['sweep_pts'] = m.params['MW_pulse_amplitudes']

    m.params['MW_pulse_frequency'] = m.params['MW_modulation_frequency']

    # for autoanalysis
    #m.params['sweep_name'] = 'Pulse duration (ns)' #'Pulse amps (V)'
    #m.params['sweep_pts'] = m.params['MW_pulse_durations']*1e9

    print m.params['sweep_pts']

    m.autoconfig()  #Redundant because executed in m.run()? Tim
    m.generate_sequence(upload=True)
    m.run()
    qt.msleep(2)
    m.save()
    qt.msleep(2)
    m.finish()