def BarretKok_SPCorrs(name, debug=False, upload_only=False): """ Performs a regular Spin-photon correlation measurement with the Barret & Kok timing parameters. """ m = purify(name) sweep_purification.prepare(m) load_BK_params(m) m.joint_params['do_final_mw_LDE'] = 1 #m.params['LDE_final_mw_amplitude'] = 0 ### general params m.params['pts'] = 1 m.params['reps_per_ROsequence'] = 5000 sweep_purification.turn_all_sequence_elements_off(m) ### which parts of the sequence do you want to incorporate. m.params['do_general_sweep'] = False m.params['PLU_during_LDE'] = 1 m.joint_params['opt_pi_pulses'] = 2 ### this can also be altered to the actual theta pulse by negating the if statement if True: m.params['mw_first_pulse_amp'] = m.params['Hermite_pi2_amp'] m.params['mw_first_pulse_length'] = m.params['Hermite_pi2_length'] m.params[ 'is_two_setup_experiment'] = 1 # XXX this has to be changed once we use one EOM only ### upload sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def Determine_eta(name, debug=False, upload_only=False): """ Performs a regular Spin-photon correlation measurement. """ m = purify(name) sweep_purification.prepare(m) ### general params m.params['pts'] = 1 m.params['reps_per_ROsequence'] = 10000 sweep_purification.turn_all_sequence_elements_off(m) ### which parts of the sequence do you want to incorporate. m.params['do_general_sweep'] = False m.joint_params['do_final_mw_LDE'] = 1 # m.params['LDE_final_mw_amplitude'] = 0 ### dirty hack #m.params['LDE_decouple_time'] = m.params['LDE_decouple_time'] + 500e-9 m.joint_params[ 'LDE_element_length'] = 10e-6 #m.joint_params['LDE_element_length'] + 1e-6 m.params['is_two_setup_experiment'] = 1 m.params['PLU_during_LDE'] = 1 m.params['no_repump_after_LDE1'] = 1 m.joint_params['opt_pi_pulses'] = 1 m.joint_params['opt_pulse_separation'] = m.params['LDE_decouple_time'] m.joint_params['LDE1_attempts'] = 250 ### upload sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def SPCorrsPuri_PSB_singleSetup(name, debug=False, upload_only=False): """ Performs a regular Spin-photon correlation measurement. """ m = purify(name) sweep_purification.prepare(m) load_TH_params(m) # has to be after prepare(m) ### general params m.params['pts'] = 1 m.params['reps_per_ROsequence'] = 50000 sweep_purification.turn_all_sequence_elements_off(m) ### which parts of the sequence do you want to incorporate. m.params['do_general_sweep'] = False m.params['PLU_during_LDE'] = 0 m.joint_params['LDE1_attempts'] = 1 m.joint_params['opt_pi_pulses'] = 2 m.joint_params['opt_pulse_separation'] = m.params['LDE_decouple_time'] ### this can also be altered to the actual theta pulse by negating the if statement if True: m.params['mw_first_pulse_amp'] = m.params['Hermite_pi2_amp'] m.params['mw_first_pulse_length'] = m.params['Hermite_pi2_length'] m.params['is_two_setup_experiment'] = 0 ### upload sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def PurifyYY(name, debug=False, upload_only=False): m = purify(name) sweep_purification.prepare(m) pts = 1 m.params['reps_per_ROsequence'] = 500 m.params['do_general_sweep'] = 0 m.params['Tomography_bases'] = ['Y'] sweep_purification.turn_all_sequence_elements_on(m) sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def tail_sweep(name, debug=True, upload_only=True, minval=0.1, maxval=0.8, local=False): """ Performs a tail_sweep in the LDE_1 element """ m = purify(name) sweep_purification.prepare(m) ### general params pts = 15 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 1000 sweep_purification.turn_all_sequence_elements_off(m) ### which parts of the sequence do you want to incorporate. ### --> for this measurement: none. m.joint_params['LDE1_attempts'] = 250 m.joint_params['opt_pi_pulses'] = 0 m.params['MW_during_LDE'] = 0 m.params['PLU_during_LDE'] = 0 if local: m.params[ 'is_two_setup_experiment'] = 0 ## set to 1 in case you want to do optical pi pulses on lt4! else: m.params[ 'is_two_setup_experiment'] = 1 ## set to 1 in case you want to do optical pi pulses on lt4! # ### need to find this out! # m.params['MIN_SYNC_BIN'] = 000 # m.params['MAX_SYNC_BIN'] = 7000e3 # put sweep together: sweep_off_voltage = False m.params['do_general_sweep'] = True if sweep_off_voltage: m.params['general_sweep_name'] = 'eom_off_amplitude' print 'sweeping the', m.params['general_sweep_name'] m.params['general_sweep_pts'] = np.linspace(-0.1, 0.06, pts) #(-0.04,-0.02,pts) else: m.params['general_sweep_name'] = 'aom_amplitude' print 'sweeping the', m.params['general_sweep_name'] m.params['general_sweep_pts'] = np.linspace(minval, maxval, pts) m.params['sweep_name'] = m.params['general_sweep_name'] m.params['sweep_pts'] = m.params['general_sweep_pts'] ### upload sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def MW_Position(name, debug=False, upload_only=False): """ Initializes the electron in ms = -1 Put a very long repumper. Leave one MW pi pulse to find the microwave position. THIS MEASUREMENT RUNS EXCLUSIVELY ON THE TIMEHARP! NK 2016 """ m = purify(name) sweep_purification.prepare(m) # load_TH_params(m) #load_BK_params(m) ### general params pts = 1 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 2000 sweep_purification.turn_all_sequence_elements_off(m) ### sequence specific parameters m.params['MW_before_LDE1'] = 1 # allows for init in -1 before LDE m.params['input_el_state'] = 'mZ' m.params['MW_during_LDE'] = 1 m.params['PLU_during_LDE'] = 0 m.joint_params['opt_pi_pulses'] = 1 m.params['is_two_setup_experiment'] = 0 m.joint_params['LDE1_attempts'] = 250 m.params['LDE_SP_delay'] = 0e-6 ### prepare sweep / necessary for the measurement that we under go. m.params['do_general_sweep'] = True m.params['general_sweep_name'] = 'LDE_SP_duration' print 'sweeping the', m.params['general_sweep_name'] m.params['general_sweep_pts'] = np.array([ m.joint_params['LDE_element_length'] - 200e-9 - m.params['LDE_SP_delay'] ]) m.params['general_sweep_pts'] = np.array([2e-6]) m.params['sweep_name'] = m.params['general_sweep_name'] m.params['sweep_pts'] = m.params['general_sweep_pts'] * 1e9 ### upload and run sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def optical_rabi(name, debug=True, upload_only=True, local=False): """ Very similar to tail sweep. """ m = purify(name) sweep_purification.prepare(m) ### general params pts = 1 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 10000 sweep_purification.turn_all_sequence_elements_off(m) ### which parts of the sequence do you want to incorporate. ### --> for this measurement: none. m.joint_params['opt_pi_pulses'] = 1 m.params['MW_during_LDE'] = 0 m.params['PLU_during_LDE'] = 0 if local: m.params[ 'is_two_setup_experiment'] = 0 ## set to 1 in case you want to do optical pi pulses on lt4! else: m.params[ 'is_two_setup_experiment'] = 1 ## set to 1 in case you want to do optical pi pulses on lt4! ### need to find this out! # m.params['MIN_SYNC_BIN'] = 5000 # m.params['MAX_SYNC_BIN'] = 9000 # put sweep together: m.params['do_general_sweep'] = True m.params['general_sweep_name'] = 'eom_pulse_duration' print 'sweeping the', m.params['general_sweep_name'] m.params['general_sweep_pts'] = np.linspace(39e-9, 40e-9, pts) m.params['sweep_name'] = m.params['general_sweep_name'] m.params['sweep_pts'] = m.params['general_sweep_pts'] ### upload sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def TPQI(name, debug=False, upload_only=False): m = purify(name) sweep_purification.prepare(m) pts = 1 m.params['reps_per_ROsequence'] = 50000 sweep_purification.turn_all_sequence_elements_off(m) m.params['MIN_SYNC_BIN'] = 1.5e6 m.params['MAX_SYNC_BIN'] = 9e6 m.params['is_TPQI'] = 1 m.params['is_two_setup_experiment'] = 1 m.params['do_general_sweep'] = 0 m.params['MW_during_LDE'] = 0 m.joint_params['LDE_element_length'] = 10e-6 m.joint_params['opt_pi_pulses'] = 5 m.joint_params['opt_pulse_separation'] = 1400e-9 m.joint_params['LDE1_attempts'] = 100 m.params['pulse_start_bin'] = 2625e3 - m.params['MIN_SYNC_BIN'] m.params['pulse_stop_bin'] = 2635e3 - m.params['MIN_SYNC_BIN'] m.params['tail_start_bin'] = 2635e3 - m.params['MIN_SYNC_BIN'] m.params['tail_stop_bin'] = 2700e3 - m.params['MIN_SYNC_BIN'] if qt.current_setup == 'lt3': m.params['pulse_start_bin'] = 2625e3 - m.params['MIN_SYNC_BIN'] m.params['pulse_stop_bin'] = 2635e3 - m.params['MIN_SYNC_BIN'] m.params['tail_start_bin'] = 2100e3 - m.params['MIN_SYNC_BIN'] m.params['tail_stop_bin'] = 2800e3 - m.params['MIN_SYNC_BIN'] m.params['MIN_SYNC_BIN'] = 1.5e3 m.params['MAX_SYNC_BIN'] = 9e3 m.params['pulse_start_bin'] = m.params['pulse_start_bin'] / 1e3 m.params['pulse_stop_bin'] = m.params['pulse_stop_bin'] / 1e3 m.params['tail_start_bin'] = m.params['tail_start_bin'] / 1e3 m.params['tail_stop_bin'] = m.params['tail_stop_bin'] / 1e3 ### upload and run sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def EntangleZZ(name, debug=False, upload_only=False): m = purify(name) sweep_purification.prepare(m) pts = 1 m.params['reps_per_ROsequence'] = 200 sweep_purification.turn_all_sequence_elements_off(m) load_BK_params(m) m.params['do_general_sweep'] = 0 m.params['MW_during_LDE'] = 1 m.params['is_two_setup_experiment'] = 1 m.params['PLU_during_LDE'] = 1 m.joint_params['LDE1_attempts'] = 250 m.params['LDE_final_mw_amplitude'] = 0 ### upload and run sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def test_adwin_communication(name, debug=False, upload_only=False): """ Initializes the electron in ms = -1 and sweeps the repump duration at the beginning of LDE_1 """ m = purify_slave.purify_single_setup(name) sweep_purification.prepare(m) ### general params pts = 5 m.params['pts'] = pts m.params['reps_per_ROsequence'] = 500 sweep_purification.turn_all_sequence_elements_off(m) ### sequence specific parameters m.params['is_two_setup_experiment'] = 1 m.params['MW_before_LDE1'] = 0 # allows for init in -1 before LDE m.params['LDE_1_is_init'] = 1 m.params['input_el_state'] = 'mZ' m.params['MW_during_LDE'] = 0 m.joint_params['opt_pi_pulses'] = 0 m.joint_params['LDE_attempts'] = 1 # m.params['Hermite_pi_amp'] = 0 ### prepare sweep m.params['do_general_sweep'] = True m.params['general_sweep_name'] = 'LDE_SP_duration' print 'sweeping the', m.params['general_sweep_name'] m.params['general_sweep_pts'] = np.linspace(0.0, 2.e-6, pts) m.params['sweep_name'] = m.params['general_sweep_name'] m.params['sweep_pts'] = m.params['general_sweep_pts'] * 1e9 ### upload and run sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)
def EntangleXX(name, debug=False, upload_only=False): m = purify(name) sweep_purification.prepare(m) pts = 1 m.params['reps_per_ROsequence'] = 200 sweep_purification.turn_all_sequence_elements_off(m) load_BK_params(m) m.params['do_general_sweep'] = 0 m.params['MW_during_LDE'] = 1 m.params['is_two_setup_experiment'] = 1 m.params['PLU_during_LDE'] = 1 m.joint_params['LDE1_attempts'] = 250 ### upload and run ### this can also be altered to the actual theta pulse by negating the if statement if True: m.params['mw_first_pulse_amp'] = m.params['Hermite_pi2_amp'] m.params['mw_first_pulse_length'] = m.params['Hermite_pi2_length'] sweep_purification.run_sweep(m, debug=debug, upload_only=upload_only)