예제 #1
0
def run(name):
    m = pulsar_mbi_espin.ElectronRamsey(name)
    funcs.prepare(m, SIL_NAME)

    pts = 61
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 500

    m.params['MW_pulse_delays'] = np.linspace(0, 10e-6, pts)
    m.params['detuning'] = 1e6  #artificial detuning

    # MW pulses
    ## First pulse
    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

    ## Second pulse
    m.params['MW_pulse_2_durations'] = m.params['MW_pulse_durations']
    m.params['MW_pulse_2_amps'] = m.params['MW_pulse_amps']
    m.params['MW_pulse_2_phases'] = np.ones(
        pts) * 180 + 360 * m.params['detuning'] * m.params['MW_pulse_delays']

    # 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)
예제 #2
0
def run(name):
    m = pulsar_mbi_espin.ElectronRamsey_Dephasing(name)
    funcs.prepare(m)

    pts = 11
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 500
    m.params['evolution_time']=300e-6
    m.params['MW_pulse_delays'] = np.linspace(0.1e-6,10e-6,pts)#np.ones(pts)*m.params['evolution_time'] #during this time we shine in a laser
    m.params['detuning'] = 0e6 #artificial detuning

    # MW pulses
        ## First pulse
    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
    
        ## Second pulse
    m.params['MW_pulse_2_durations'] = np.linspace(0,0,pts) #m.params['MW_pulse_durations'] 
    m.params['MW_pulse_2_amps']      = np.linspace(0,0,pts) #m.params['MW_pulse_amps']
    m.params['MW_pulse_2_phases']    = np.linspace(0,0,pts) #np.linspace(0,360,pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'AWG repump time (us)'
    m.params['sweep_pts'] = m.params['MW_pulse_delays']/(1e-6)

    # laser beam
    m.params['dephasing_AOM'] = 'NewfocusAOM' 
    m.params['laser_dephasing_amplitude']= 18e-9 #in Watts
    
    funcs.finish(m, debug=False)
예제 #3
0
def run(name, **kw):
    m = pulsar_mbi_espin.Simple_Electron_repumping(name)
    funcs.prepare(m)

    max_duration = kw.get('max_duration', 3e-6)
    more_data_until = kw.pop('more_data_until', 0)
    m.params['init_state'] = kw.pop('init_state', 'm1')
    m.params['ro_state'] = kw.pop('ro_state', '0')

    pts = 50  # even number
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000
    m.params['detuning'] = 0e6  #artificial detuning

    m.params['repump_AOM'] = 'NewfocusAOM'
    m.params['laser_repump_amplitude'] = kw.get('newfocus_power', 5e-9)
    # m.params['repumper_amplitude'] = kw.get('repumper_power',5e-9)
    duration_sweep = True
    if duration_sweep:
        m.params['delay_before_MW'] = 0e-9 * np.ones(pts)
        m.params['delay_after_MW'] = 0e-9 * np.ones(pts)

        if more_data_until == 0 or more_data_until > max_duration:
            m.params['repumping_time'] = np.linspace(0.0e-6, max_duration, pts)
        else:
            m.params['repumping_time'] = np.append(
                np.linspace(0.0e-6, more_data_until, pts / 2),
                np.linspace(more_data_until, max_duration, pts / 2))
    else:
        m.params['repumping_time'] = np.ones(pts) * 30e-9
        m.params['delay_after_MW'] = np.linspace(0e-9, 500e-9, pts)
        m.params['delay_before_MW'] = np.linspace(0e-9, 500e-9, pts)

    m.params['MW_repump_delay1'] = np.ones(pts) * 1000e-9
    m.params['MW_repump_delay2'] = np.ones(pts) * 2500e-9
    m.params['Repump_multiplicity'] = np.ones(pts) * 1

    m.params['pumping_cycles'] = kw.get('pumping_cycles', 1)

    # for the autoanalysis
    if duration_sweep:
        m.params['sweep_name'] = 'Repump duration (ns)'
        m.params['sweep_pts'] = m.params['repumping_time'] / (1e-9)
    else:
        m.params['sweep_name'] = 'Repump MW delay (ns)'
        m.params['sweep_pts'] = m.params['delay_after_MW'] / (1e-9)
    funcs.finish(m, debug=kw.pop('debug', False))
예제 #4
0
def run(name):
    m = pulsar_mbi_espin.ElectronRamsey_Dephasing(name)
    funcs.prepare(m)

    pts = 51
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 200
    m.params['detuning'] = 0e6 #artificial detuning

    # sequence parameters
    m.params['readout_with_second_source'] = False
    m.params['pump_using_MW2'] = False
    m.params['init_with_second_source'] = False
    m.params['init_in_zero'] = True

    # MW pulses
    ps.X_pulse(m) #this updated fast_pi_amp
        ## First pulse
    m.params['MW_pulse_2_durations'] = np.ones(pts) * m.params['fast_pi_duration']
    m.params['MW_pulse_2_amps'] = np.ones(pts) * m.params['fast_pi_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
    
        ## Second pulse
    m.params['MW_pulse_durations'] = np.linspace(0,0,pts) 
    m.params['MW_pulse_amps']      = np.linspace(0,0,pts) 
    m.params['MW_pulse_2_phases']    = np.linspace(0,0,pts) 

    m.params['Repump_multiplicity'] = np.ones(pts)*1 ### this parameter is used for ionization studies.
    # laser beam
    m.params['dephasing_AOM'] = 'NewfocusAOM' 
    m.params['laser_dephasing_amplitude']= 1000e-9 #in Watts
    m.params['repumping_time'] = np.ones(pts)*0.7e-6 
    m.params['MW_repump_delay1'] =  np.ones(pts) * 500e-9
    #sweep param
    m.params['MW_repump_delay2'] = np.linspace(-0.5e-6, 0.5e-6,pts)


    # for the autoanalysis
    m.params['sweep_name'] = 'MW vs. repump delay'
    m.params['sweep_pts'] = m.params['MW_repump_delay2']/(1e-6)

    
    funcs.finish(m, debug=False)
예제 #5
0
def run(name, **kw):
    m = pulsar_mbi_espin.ElectronRamsey_Dephasing(name)
    funcs.prepare(m)
    pts = 30# even number
    m.params['pts'] = pts
    max_reps = kw.get('Element_reps',3000)
    m.params['Repump_multiplicity'] = np.round(np.arange(1,max_reps,(max_reps-1)/float(pts)))
    pts = len(m.params['Repump_multiplicity'])


    m.params['reps_per_ROsequence'] = 500
    m.params['detuning'] = 0e6 #artificial detuning (MW)

    # MW pulses
        ## First pulse
    #print 'PULSE AMP'
    #print m.params['fast_pi_amp']
    m.params['MW_pulse_durations'] = np.ones(pts) * m.params['fast_pi_duration']
    m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi_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
    
        ## Second pulse
    m.params['MW_pulse_2_durations'] = np.linspace(0,0,pts) 
    m.params['MW_pulse_2_amps']      = np.linspace(0,0,pts) 
    m.params['MW_pulse_2_phases']    = np.linspace(0,0,pts) 


    # laser beam
    m.params['dephasing_AOM'] = 'NewfocusAOM' 
    #m.params['laser_dephasing_amplitude']= 2400e-9 #in Watts
    m.params['repumping_time'] = np.ones(pts)*1.5e-6 
    #m.params['repumping_time'] = np.r_[np.linspace(0.03e-6,0.5e-6,pts/4.), np.linspace(0.2e-6,5e-6,3.*pts/4.)]
    m.params['MW_repump_delay1'] =  np.ones(pts) * 500e-9
    #sweep param
    m.params['MW_repump_delay2'] = np.ones(pts) * 2500e-9
    
    # for the autoanalysis
    m.params['sweep_name'] = 'Number of repetitions'
    m.params['sweep_pts'] = m.params['Repump_multiplicity']

    m.params['laser_dephasing_amplitude'] = kw.get('repump_power',2400e-9)
    funcs.finish(m, debug = kw.get('debug',False))
예제 #6
0
def run(name):
    m = pulsar_mbi_espin.ElectronRamsey_Dephasing(name)
    funcs.prepare(m)

    pts = 21
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 500
    m.params['detuning'] = 0e6 #artificial detuning

    # MW pulses
        ## First pulse
    #print 'PULSE AMP'
    #print m.params['fast_pi_amp']
    m.params['MW_pulse_durations'] = np.ones(pts) * m.params['fast_pi_duration']
    m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi_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
    
        ## Second pulse
    m.params['MW_pulse_2_durations'] = np.linspace(0,0,pts) 
    m.params['MW_pulse_2_amps']      = np.linspace(0,0,pts) 
    m.params['MW_pulse_2_phases']    = np.linspace(0,0,pts) 


    # laser beam
    m.params['dephasing_AOM'] = 'NewfocusAOM' 
    m.params['laser_dephasing_amplitude']= 110e-9 #in Watts
    m.params['repumping_time'] = np.linspace(0.0e-6,5e-6,pts) 
    m.params['MW_repump_delay1'] =  np.ones(pts) * 2500e-9
    #sweep param
    m.params['MW_repump_delay2'] = np.ones(pts) * 2500e-9

    # for the autoanalysis
    m.params['sweep_name'] = 'Repump duration (us)'
    m.params['sweep_pts'] = m.params['repumping_time']/(1e-6)

    
    funcs.finish(m, debug=False)
예제 #7
0
def run(name):
    m = pulsar_mbi_espin.ElectronRamsey(name)
    funcs.prepare(m, SIL_NAME)

    pts = 81
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 500

    m.params['MW_pulse_delays'] = np.linspace(0,10e-6,pts)
    m.params['detuning'] = 1e6 #artificial detuning

    # 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) * 180 + 360*m.params['detuning']*m.params['MW_pulse_delays']

    # 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)
예제 #8
0
def run(
    name,
    phase=0,
):
    m = pulsar_mbi_espin.ElectronRamsey(name)
    funcs.prepare(m, SIL_NAME)

    ### sweep the length of the second pulse
    MW_pulse_2_durations = np.arange(0, m.params['fast_pi_duration'] + 10e-9,
                                     8e-9)

    pts = len(MW_pulse_2_durations)
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 2000
    m.params['MW_pulse_delays'] = np.ones(
        pts) * 20e-6  # Time between the first and second pulse

    ## MW pulses
    m.params['MW_pulse_mod_frqs'] = np.ones(
        pts) * m.params['AWG_MBI_MW_pulse_mod_frq']

    ## First pulse
    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_1_phases'] = np.ones(pts) * 90

    ## Second pulse
    m.params['MW_pulse_2_durations'] = MW_pulse_2_durations
    m.params['MW_pulse_2_amps'] = np.ones(pts) * m.params['fast_pi_amp']
    m.params['MW_pulse_2_phases'] = np.ones(pts) * phase
    # for the autoanalysis
    m.params['sweep_name'] = 'MW_pulse_2_duration (ns)'
    m.params['sweep_pts'] = MW_pulse_2_durations / 1e-9

    funcs.finish(m, debug=False)
예제 #9
0
def run(name, **kw):
    m = pulsar_mbi_espin.ElectronRamsey_Dephasing(name)
    funcs.prepare(m)
    max_duration = kw.get('max_duration', 3e-6)
    pts = 50  # even number
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 200
    m.params['detuning'] = 0e6  #artificial detuning

    # MW pulses
    ## First pulse
    # m.params['MW_pulse_durations'] = np.ones(pts) * m.params['fast_pi_duration']
    # m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi_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['init_with_second_source'] = init_with_second_source
    m.params['readout_with_second_source'] = readout_with_second_source
    m.params['init_in_zero'] = init_in_zero

    ## this needs to be cleaner
    MW1_pi = ps.X_pulse(m)
    m.params['fast_pi_amp'] = MW1_pi.amplitude

    ## initialization microwave pulse
    if init_with_second_source:
        m.params['MW_pulse_durations'] = np.ones(
            pts) * m.params['mw2_fast_pi_duration']
        m.params['MW_pulse_amps'] = np.ones(pts) * m.params['mw2_fast_pi_amp']
    else:
        m.params['MW_pulse_durations'] = np.ones(
            pts) * m.params['fast_pi_duration']
        m.params['MW_pulse_amps'] = np.ones(pts) * m.params['fast_pi_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

    ## Readout microwave pulse
    if do_pm1_readout:
        if readout_with_second_source:
            m.params['MW_pulse_2_durations'] = np.ones(
                pts) * m.params['mw2_fast_pi_duration']
            m.params['MW_pulse_2_amps'] = np.ones(
                pts) * m.params['mw2_fast_pi_amp']
        else:
            m.params['MW_pulse_2_durations'] = np.ones(
                pts) * m.params['fast_pi_duration']
            m.params['MW_pulse_2_amps'] = np.ones(
                pts) * m.params['fast_pi_amp']
            m.params['MW_pulse_mod_frqs'] = np.ones(
                pts) * m.params['AWG_MBI_MW_pulse_mod_frq']
            m.params['MW_pulse_2_phases'] = np.ones(pts) * 0
    else:
        m.params['MW_pulse_2_durations'] = np.ones(pts) * 0
        m.params['MW_pulse_2_amps'] = np.ones(pts) * 0
        m.params['MW_pulse_2_phases'] = np.ones(pts) * 0

    m.params['pump_using_repumper'] = pump_using_repumper
    m.params['pump_using_newfocus'] = pump_using_newfocus
    m.params['pump_using_MW2'] = pump_using_MW2

    if pump_using_MW2:
        m.params['pump_MW2_durations'] = np.linspace(0.0e-6, max_duration, pts)
        m.params['pump_MW2_delay'] = np.ones(pts) * pump_MW2_delay
        m.params['pump_MW2_falltime'] = np.ones(pts) * pump_MW2_falltime

    # laser beam; called dephasing, but does repump
    m.params['dephasing_AOM'] = 'NewfocusAOM'
    #m.params['dephasing_AOM'] = 'RepumperAOM'
    m.params['laser_dephasing_amplitude'] = kw.get('newfocus_power', 20e-9)
    m.params['repumper_amplitude'] = kw.get('repumper_power', 20e-9)
    m.params['repumping_time'] = np.linspace(
        0.0e-6, max_duration, pts
    )  # np.r_[np.linspace(0.0e-6,0.2e-6,pts/2), np.linspace(1.2e-6,5e-6,pts/2)]
    #m.params['repumping_time'] = np.r_[np.linspace(0.03e-6,0.5e-6,pts/4.), np.linspace(0.2e-6,5e-6,3.*pts/4.)]

    m.params['MW_repump_delay1'] = np.ones(pts) * 500e-9
    m.params['MW_repump_delay2'] = np.ones(pts) * 2500e-9
    m.params['Repump_multiplicity'] = np.ones(pts) * 1

    # for the autoanalysis
    m.params['sweep_name'] = 'Repump duration (us)'
    m.params['sweep_pts'] = m.params['repumping_time'] / (1e-6)

    funcs.finish(m, debug=kw.get('debug', False))