Ejemplo n.º 1
0
def CNOT_phase_check_sweep_CNOT_phase():
    m = CNOTPhaseCheckSweepCNOTphase('CNOT_phase')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['CNOT_phase'] = np.linspace(0,360,pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'first CNOT phase'
    m.params['sweep_pts'] = m.params['CNOT_phase']
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 2
0
def CNOT_phase_check_sweep_time():
    m = CNOTPhaseCheckSweepTime('CNOT_to_pi2')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['CNOT_to_pi2_time'] = np.linspace(150e-9, 250e-9, pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'second_CNOT_to_pi2_time'
    m.params['sweep_pts'] = m.params['CNOT_to_pi2_time']

    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 3
0
def CNOT_phase_check_sweep_time():
    m = CNOTPhaseCheckSweepTime('CNOT_to_pi2')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['CNOT_to_pi2_time'] = np.linspace(150e-9,250e-9,pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'second_CNOT_to_pi2_time'
    m.params['sweep_pts'] = m.params['CNOT_to_pi2_time']
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 4
0
def CNOT_phase_check_sweep_CNOT_phase():
    m = CNOTPhaseCheckSweepCNOTphase('CNOT_phase')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['CNOT_phase'] = np.linspace(0, 360, pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'first CNOT phase'
    m.params['sweep_pts'] = m.params['CNOT_phase']

    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 5
0
def CNOT_phase_check():
    m = CNOTPhaseCheck('2_times_CNOT')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['multiplicity'] = 2  #number of CNOT pulses
    m.params['analysis_phases'] = np.linspace(0, 360, pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'second pi/2 phase'
    m.params['sweep_pts'] = m.params['analysis_phases']

    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 6
0
def CNOT_phase_check_mI0_both_pi2_phases():
    m = CNOTPhaseCheckmI0BothPi2Phases('mI0_pi2_phases_sweep_both')
    BSM.prepare(m)

    pts = 16
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['analysis_phases'] = - 62 + np.linspace(0,360,pts)
    m.params['prepare_phases'] = - m.params['analysis_phases']

    # for the autoanalysis
    m.params['sweep_name'] = 'second pi/2 phase'
    m.params['sweep_pts'] = m.params['analysis_phases']
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 7
0
def CNOT_phase_check():
    m = CNOTPhaseCheck('2_times_CNOT')
    BSM.prepare(m)

    pts = 17
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['multiplicity'] = 2 #number of CNOT pulses
    m.params['analysis_phases'] = np.linspace(0,360,pts)

    # for the autoanalysis
    m.params['sweep_name'] = 'second pi/2 phase'
    m.params['sweep_pts'] = m.params['analysis_phases']
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 8
0
def CNOT_phase_check_mI0_both_pi2_phases():
    m = CNOTPhaseCheckmI0BothPi2Phases('mI0_pi2_phases_sweep_both')
    BSM.prepare(m)

    pts = 16
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    # MW pulses
    m.params['analysis_phases'] = -62 + np.linspace(0, 360, pts)
    m.params['prepare_phases'] = -m.params['analysis_phases']

    # for the autoanalysis
    m.params['sweep_name'] = 'second pi/2 phase'
    m.params['sweep_pts'] = m.params['analysis_phases']

    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 9
0
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.6, 0.8, 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)
Ejemplo n.º 10
0
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.6, 0.8, 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)
Ejemplo n.º 11
0
def do_N_FT_Polarisation_check():
    m = N_FT_Polarisation_Check('pulsed')
    BSM.prepare(m,yellow=True)
    
    #preparation line:
    m.params['init_line'] = '-1'  

    #readout pulse line:
    m.params['readout_line']='-1'
    
    m.name=m.name+'_init_'+ m.params['init_line']+'_ro_'+m.params['readout_line']
    
    m.params['FT_element_repetitions'] = np.array([1,1000,2000,3000,4000])
    pts = len(m.params['FT_element_repetitions'])
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    m.params['sp_duration'] = 20e-6
    
    m.params['FT_pulse_power']=100e-9
    m.params['FT_pulse_amp']=\
            m.A_aom.power_to_voltage(m.params['FT_pulse_power'], controller='sec')
    m.params['yellow_pulse_power'] = 50e-9
    m.params['yellow_pulse_amp'] =\
            m.yellow_aom.power_to_voltage(m.params['yellow_pulse_power'], controller='sec')
    

            # for the autoanalysis
    m.params['sweep_name'] = 'FT_element_repetitions'
    m.params['sweep_pts'] = m.params['FT_element_repetitions']
    
    
    if m.params['init_line'] == '-1':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIm1_mod_frq'] #ms=-1
    elif m.params['init_line'] == '0':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mI0_mod_frq'] #ms=0
    elif m.params['init_line'] == '+1':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIp1_mod_frq']#ms=+1 
        print 'dont use this --> CORPSE is bad for +1'
    else:
        raise(Exception('Unknown init line' + str(m.params['init_line'])))
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 12
0
def do_N_FT_Polarisation_check():
    m = N_FT_Polarisation_Check('pulsed')
    BSM.prepare(m,yellow=True)
    
    #preparation line:
    m.params['init_line'] = '-1'  

    #readout pulse line:
    m.params['readout_line']='-1'
    
    m.name=m.name+'_init_'+ m.params['init_line']+'_ro_'+m.params['readout_line']
    
    m.params['FT_element_repetitions'] = np.array([1,1000,2000,3000,4000])
    pts = len(m.params['FT_element_repetitions'])
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1000

    m.params['sp_duration'] = 20e-6
    
    m.params['FT_pulse_power']=100e-9
    m.params['FT_pulse_amp']=\
            m.A_aom.power_to_voltage(m.params['FT_pulse_power'], controller='sec')
    m.params['yellow_pulse_power'] = 50e-9
    m.params['yellow_pulse_amp'] =\
            m.yellow_aom.power_to_voltage(m.params['yellow_pulse_power'], controller='sec')
    

            # for the autoanalysis
    m.params['sweep_name'] = 'FT_element_repetitions'
    m.params['sweep_pts'] = m.params['FT_element_repetitions']
    
    
    if m.params['init_line'] == '-1':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIm1_mod_frq'] #ms=-1
    elif m.params['init_line'] == '0':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mI0_mod_frq'] #ms=0
    elif m.params['init_line'] == '+1':
        m.params['AWG_MBI_MW_pulse_mod_frq']=m.params['mIp1_mod_frq']#ms=+1 
        print 'dont use this --> CORPSE is bad for +1'
    else:
        raise(Exception('Unknown init line' + str(m.params['init_line'])))
    
    funcs.finish(m, debug=False, upload=True)
Ejemplo n.º 13
0
def cal_4mhz_rabi(name):
    m = pulsar_mbi_espin.ElectronRabi('cal_4mhz_rabi'+name)
    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.7
    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.º 14
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.º 15
0
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.linspace(0,5e-6,pts) + 5e-9
    m.params['MW_pulse_amps'] = np.ones(pts) * 0.03
    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.º 16
0
def cal_pi2pi_pi_len(name, mult=1):
    m = pulsar_mbi_espin.ElectronRabiSplitMultElements(
        'cal_pi2pi_pi_len_'+name+'_M=%d' % mult)
    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'] = 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)
Ejemplo n.º 17
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.º 18
0
def cal_hard_pi(name, mult=1):
    m = pulsar_mbi_espin.ElectronRabiSplitMultElements(
        'cal_hard_pi_'+name+'_M=%d' % mult)
    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
    
    # hard pi pulses
    m.params['MW_pulse_durations'] = 1e-9 * (np.ones(pts)*80)
    m.params['MW_pulse_amps'] = np.linspace(0.78,0.92,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)