Exemple #1
0
def phase_calibration(name, debug=False, upload_only=False):
    """
    Calibrate the interferometer parameters

    """
    # adwin = qt.get_instruments()['adwin']
    # PhaseAOM = qt.get_instruments()['PhaseAOM']
    # PhaseAOM.set_power(0.08e-9)
    # adwin.start_fibre_stretcher_setpoint(delay=2)       # delay in 1/10 ms
    # qt.msleep(10)                                       # wait and get count ratios of APD detectors
    # adwin.stop_fibre_stretcher_setpoint()

    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    pts = 1
    m.params['reps_per_ROsequence'] = 1

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.
    m.params[
        'is_two_setup_experiment'] = 0  ## set to 1 in case you want to do optical pi pulses on lt4!
    m.params['do_phase_stabilisation'] = 0
    m.params['only_meas_phase'] = 1
    m.params['modulate_stretcher_during_phase_msmt'] = 1

    m.params['stretcher_V_max'] = 1.0 * m.params['stretcher_V_2pi']
    m.params[
        'sample_points'] = 30  # How many points to sample the phase at during the expm part
    m.params[
        'count_int_time_meas'] = 1000  # How long to integrate counts for in microseconds for phase meas

    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #2
0
def test_pulses(name, debug=True, upload_only=True, local=False):
    """
    Generically chuck in some pulses, for e.g. measuring optical path length difference between two setups.
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)
    sweep_sce_expm.turn_all_sequence_elements_off(m)

    ### general params
    pts = 1
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 10000

    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'aom_amplitude'
    m.params['general_sweep_pts'] = [m.params['aom_amplitude']]

    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']

    ### which parts of the sequence do you want to incorporate.
    ### --> for this measurement: none.
    m.joint_params['LDE_attempts'] = 250

    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!

    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #3
0
def phase_stability(name, debug=False, upload_only=False):
    """
    Just runs a phase stability meausrement
    """
    # adwin = qt.get_instruments()['adwin']
    # PhaseAOM = qt.get_instruments()['PhaseAOM']
    # PhaseAOM.set_power(0.08e-9)
    # adwin.start_fibre_stretcher_setpoint(delay=2)       # delay in 1/10 ms
    # qt.msleep(10)                                       # wait and get count ratios of APD detectors
    # adwin.stop_fibre_stretcher_setpoint()

    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    pts = 1
    m.params['reps_per_ROsequence'] = 5

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.
    m.params[
        'is_two_setup_experiment'] = 0  ## set to 1 in case you want to do optical pi pulses on lt4!
    m.params['do_phase_stabilisation'] = 1
    m.params['only_meas_phase'] = 1

    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #4
0
def do_rejection(name, debug=False, upload_only=False):
    """
    does some adwin live filtering on the pulse. we also employ a slightly longer pulse here.
    we only store the histogram on both sides to save some storage capacity
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)
    sweep_sce_expm.turn_all_sequence_elements_off(m)

    m.params['eom_pulse_duration'] = 5e-9
    m.joint_params['LDE_attempts'] = 1000

    ### general params
    pts = 1
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 30000
    m.params['AWG_SP_power'] = 0.
    m.params['do_general_sweep'] = False
    m.params['MW_during_LDE'] = 0
    m.params['Yellow_AWG_power'] = 0e-9

    m.joint_params['opt_pi_pulses'] = 1
    m.params['PLU_during_LDE'] = 1
    m.params[
        'is_two_setup_experiment'] = 1  ## set to 1 in case you want to do optical pi pulses on lt4!

    if qt.current_setup == 'lt4':
        m.params['pulse_start_bin'] = m.params['pulse_start_bin']
        m.params['pulse_stop_bin'] = m.params[
            'pulse_stop_bin'] + 2 * m.params['eom_pulse_duration']

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=True)
Exemple #5
0
def EntangleOnDemand(name, debug=False, upload_only=False, include_CR=False):
    """
    Run a msmt at a fixed theta, can measure in different bases
    """
    if include_CR:
        m = EntangleOnDemandExp(name)
    else:
        m = PQSingleClickEntExpm(name)

    sweep_sce_expm.prepare(m)

    sweep_sce_expm.turn_all_sequence_elements_off(m)

    m.params['do_phase_stabilisation'] = 1
    m.params['do_dynamical_decoupling'] = 1
    m.params['reps_per_ROsequence'] = 2000
    m.params['measurement_time'] = 20 * 60  # Eight minutes
    m.params['MW_during_LDE'] = 1

    m.joint_params['do_final_mw_LDE'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1

    if include_CR:
        m.params['reps_per_ROsequence'] = 250

    m.params['sin2_theta'] = 0.15
    m.params['do_calc_theta'] = 1

    if m.params['sin2_theta'] > 0.5:
        raise Exception('What are you doing? sin2 theta is too big!!!')

    LDE_attempt_dict = {
        '0.1': 24.4e3,
        '0.15': 19.794e3,
        '0.2': 16137,
        '0.25': 13443,
        '0.4': 11e3,
    }
    m.joint_params[
        'LDE_attempts'] = 14e3 + 1.818e3  ### calculated from our simulations ####

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False

    m.params['do_general_sweep'] = 1
    m.params['general_sweep_name'] = 'tomography_basis'
    m.params['general_sweep_pts'] = ['X', 'Y', 'Z']
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = [1, 2, 3]  #m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])

    ### upload and run

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #6
0
def TPQI(name, debug=False, upload_only=False):

    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    pts = 1
    m.params['reps_per_ROsequence'] = 50000
    sweep_sce_expm.turn_all_sequence_elements_off(m)

    m.params['do_phase_stabilisation'] = 1

    m.params['MIN_SYNC_BIN'] = 1e6
    m.params['MAX_SYNC_BIN'] = 13e6
    m.params['is_TPQI'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.params['do_general_sweep'] = 0
    m.params['MW_during_LDE'] = 0

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False

    m.joint_params['LDE_element_length'] = 13e-6
    m.joint_params['opt_pi_pulses'] = 10
    m.joint_params['opt_pulse_separation'] = 1000e-9
    m.joint_params['LDE_attempts'] = 400

    #####################################################
    #   These parameters have not beeen reviewed!!      #
    #####################################################

    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'] = 1e3
        m.params['MAX_SYNC_BIN'] = 13e3
        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_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #7
0
def MW_Position(name, debug=False, upload_only=False):
    """ 
    This script runs the usual LDE element and is used to check timings.

    #############
    # IMPORTANT #
    #############

    For optimal results insert the following line of code in sequence.py:
    qt.pulsar.set_channel_opt('AOM_Newfocus','low',  0.5)

    THIS MEASUREMENT RUNS EXCLUSIVELY ON THE TIMEHARP!
    NK 2017
    """

    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    # load_TH_params(m)

    ### general params
    pts = 1
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 20000

    sweep_sce_expm.turn_all_sequence_elements_off(m)

    ### sequence specific parameters
    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'] = 1
    m.params['do_phase_stabilisation'] = 0

    m.joint_params['LDE_attempts'] = 250
    m.params['first_mw_pulse_is_pi2'] = 1

    # #### additional stuff from norbert for prjectivity:
    # m.params['check_EOM_projective_noise'] = 1
    # m.params['MW_opt_puls1_separation']   = 120e-9 - 220e-9 #

    ### prepare sweep / necessary for the measurement that we under go.
    m.params['do_general_sweep'] = False

    #### for this measurement we want the entire timeharp trace.
    if qt.current_setup == 'lt4':
        m.params['MIN_SYNC_BIN'] = int(0e6)
        m.params['MAX_SYNC_BIN'] = int(6e6)

    elif qt.current_setup == 'lt3':
        m.params['MIN_SYNC_BIN'] = int(0e3)
        m.params['MAX_SYNC_BIN'] = int(6e3)
    ### upload and run
    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #8
0
def Do_BK_XX(name, debug=False, upload_only=False):
    """
    Performs the Barrett & Kok protocol.
    WATCH OUT FOR THE PLU SCRIPT YOU ARE USING!
    """

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False
    m = PQSingleClickEntExpm(name)

    sweep_sce_expm.prepare(m)

    ### general params
    m.params['reps_per_ROsequence'] = 200
    pts = 1
    m.joint_params['LDE_element_length'] = 9e-6
    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.
    m.params['MW_pi_during_LDE'] = 1  ## turn pi pulse on or off for spcorrs
    m.params['first_mw_pulse_is_pi2'] = 1
    m.params['LDE_final_mw_phase'] = m.params['X_phase']
    m.params['do_general_sweep'] = False
    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1
    ### only one setup is allowed to sweep the phase.
    if qt.current_setup == 'lt3':
        hist_only = True

    else:
        hist_only = False
        m.params['MIN_SYNC_BIN'] = int(1.75e6)  #5 us
        m.params['MAX_SYNC_BIN'] = int(8.5e6)  #15 us # XXX was 15us
        m.params['MIN_HIST_SYNC_BIN'] = int(1.65e6)  #XXXX was 5438*1e3
        m.params['MAX_HIST_SYNC_BIN'] = int(8.5e6)

    m.joint_params['do_final_mw_LDE'] = 1

    m.joint_params['opt_pi_pulses'] = 2
    m.params['LDE_decouple_time'] = 2 * m.params['LDE_decouple_time']
    m.params['opt_pulse_separation'] = m.params['LDE_decouple_time'] + 200e-9
    m.joint_params['LDE_attempts'] = 250

    ### upload

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #9
0
def EntangleSweepTheta(name,
                       debug=False,
                       upload_only=False,
                       tomography_basis='Y'):
    """
    Sweeps the superposition angle of the states
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    pts = 6

    m.params['do_phase_stabilisation'] = 1

    m.params['reps_per_ROsequence'] = 400
    m.params['MW_during_LDE'] = 1
    m.joint_params['do_final_mw_LDE'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1
    m.joint_params['LDE_attempts'] = 250
    m.params['measurement_time'] = 20 * 60  # Eight minutes

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False

    m.params['tomography_basis'] = tomography_basis

    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'sin2_theta'
    m.params['general_sweep_pts'] = np.linspace(0.05, 0.3, pts)
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])
    m.params['do_phase_stabilisation'] = 1
    m.params['do_calc_theta'] = 1
    m.params['do_post_ent_phase_msmt'] = 1

    ### upload and run

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #10
0
def SPCorrs_ZPL_sweep_theta(name,
                            debug=False,
                            upload_only=False,
                            MW_pi_during_LDE=1):
    """
    Performs a Spin-photon correlation measurement including the PLU.
    """

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False
    m = PQSingleClickEntExpm(name)

    sweep_sce_expm.prepare(m)

    ### general params
    m.params['reps_per_ROsequence'] = 100
    pts = 7

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.
    m.params[
        'MW_pi_during_LDE'] = MW_pi_during_LDE  ## turn pi pulse on or off for spcorrs
    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'sin2_theta'
    m.params['general_sweep_pts'] = np.linspace(0.1, 0.5, pts)
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])
    m.params['do_phase_stabilisation'] = 0
    m.params['do_calc_theta'] = 1

    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1
    m.joint_params['do_final_mw_LDE'] = 0

    m.joint_params['opt_pi_pulses'] = 1
    m.joint_params['LDE_attempts'] = 250

    ### upload

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #11
0
def EntangleXcalibrateMWPhase(name, debug=False, upload_only=False):
    """
    Sweeps the phase of the last pi/2 pulse on one of the two setups to measure the 
    stabilized phase of the entangled state.
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    sweep_sce_expm.turn_all_sequence_elements_off(m)

    m.params['do_phase_stabilisation'] = 1

    m.params['reps_per_ROsequence'] = 100
    m.params['MW_during_LDE'] = 1
    m.joint_params['do_final_mw_LDE'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1
    m.joint_params['LDE_attempts'] = 250
    m.params['sin2_theta'] = 0.4
    m.params['do_calc_theta'] = 1
    m.params['do_post_ent_phase_msmt'] = 1
    m.params['measurement_time'] = 20 * 60  # Eight minutes

    ### only one setup is allowed to sweep the phase.
    if qt.current_setup == 'lt3':
        hist_only = True
        m.params['general_sweep_pts'] = np.array([0] * 10)
    else:
        hist_only = False
        m.params['general_sweep_pts'] = m.params[
            'LDE_final_mw_phase'] + np.linspace(0, 360, 10)

    m.params['do_general_sweep'] = 1
    m.params['general_sweep_name'] = 'LDE_final_mw_phase'
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])

    ### upload and run

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #12
0
def ionization_non_local(name,
                         debug=False,
                         upload_only=False,
                         use_yellow=False):
    """
    Two setup experiment where LT3 does optical pi pulses only
    While LT4 repetitively runs the entire LDE element.
    We additionally monitor the fluorescence to see whether optical pi pulses actually arrive
    at both setups
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    ### general params
    pts = 10
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 250

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    if qt.current_setup == 'lt3':
        m.params['do_only_opt_pi'] = 1
        m.joint_params['opt_pi_pulses'] = 1

    ### sequence specific parameters
    m.params['MW_during_LDE'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.joint_params['do_final_mw_LDE'] = 0
    # m.params['first_pulse_is_pi2'] = True
    # m.params['mw_first_pulse_amp'] = 0
    ### prepare sweep
    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'LDE_attempts'
    print 'sweeping the', m.params['general_sweep_name']
    m.params['general_sweep_pts'] = np.linspace(1, 500, pts)
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']
    m.params['do_yellow_with_AWG'] = use_yellow
    ### upload and run

    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #13
0
def Entangle(name, debug=False, upload_only=False):
    """
    Run a msmt at a fixed theta, can measure in different bases
    """
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    sweep_sce_expm.turn_all_sequence_elements_off(m)

    m.params['do_phase_stabilisation'] = 1

    m.params['reps_per_ROsequence'] = 2000
    m.params['measurement_time'] = 8 * 60  # Eight minutes
    m.params['MW_during_LDE'] = 1
    m.joint_params['do_final_mw_LDE'] = 1
    m.params['is_two_setup_experiment'] = 1
    m.params['PLU_during_LDE'] = 1
    m.joint_params['LDE_attempts'] = 250
    m.params['sin2_theta'] = 0.2
    m.params['do_calc_theta'] = 1

    if qt.current_setup == 'lt3':
        hist_only = True
    else:
        hist_only = False

    m.params['do_general_sweep'] = 1
    m.params['general_sweep_name'] = 'tomography_basis'
    m.params['general_sweep_pts'] = ['X', 'Y', 'Z']
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = [1, 2, 3]  #m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])

    ### upload and run

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=hist_only)
Exemple #14
0
def check_for_projective_noise(name, debug=False, upload_only=False):
    """
    This measurement adds a pi pulse to take the NV dark, then optical pi, then immediately pi/2.
    Used to check for projective noise.
    """
    m = sce_expm.SingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    ### general params
    pts = 21
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 1500

    sweep_sce_expm.turn_all_sequence_elements_off(m)

    ### sequence specific parameters
    m.params['MW_during_LDE'] = 1
    m.joint_params['opt_pi_pulses'] = 1
    m.joint_params['LDE_attempts'] = 400
    m.joint_params['do_final_mw_LDE'] = 1
    m.params['first_mw_pulse_is_pi2'] = True
    m.params['check_EOM_projective_noise'] = 1
    m.params['MW_opt_puls1_separation'] = 120e-9 - 200e-9  #
    m.joint_params['LDE_element_length'] = 5e-6
    m.params['LDE_final_mw_phase'] = 90.0
    m.params['is_two_setup_experiment'] = 1
    ### prepare sweep
    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'MW_opt_puls1_separation'
    print 'sweeping the', m.params['general_sweep_name']
    m.params['general_sweep_pts'] = m.params[
        'MW_opt_puls1_separation'] + np.linspace(-40e-9, 100e-9, pts)
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']

    ### upload and run

    sweep_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #15
0
def SPCorrs_PSB_singleSetup(name, debug=False, upload_only=False):
    """
    Performs a Spin-photon correlation measurement in the PSB (therefore post selected).
    """
    ### general params
    m = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)
    load_TH_params(m)  # has to be after prepare(m)

    ### general params
    m.params['reps_per_ROsequence'] = 50000

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.

    m.params['do_general_sweep'] = True
    m.params['general_sweep_name'] = 'MW_pi_during_LDE'
    m.params['general_sweep_pts'] = np.array(
        [0, 1])  ## turn pi pulse on or off for spcorrs
    m.params['sweep_name'] = m.params['general_sweep_name']
    m.params['sweep_pts'] = m.params['general_sweep_pts']
    m.params['pts'] = len(m.params['sweep_pts'])

    m.joint_params['do_final_mw_LDE'] = 0

    m.joint_params['opt_pi_pulses'] = 1
    m.joint_params['LDE_attempts'] = 250
    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_sce_expm.run_sweep(m, debug=debug, upload_only=upload_only)
Exemple #16
0
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 = PQSingleClickEntExpm(name)
    sweep_sce_expm.prepare(m)

    ### general params
    pts = 14
    m.params['pts'] = pts
    m.params['reps_per_ROsequence'] = 3000

    sweep_sce_expm.turn_all_sequence_elements_off(m)
    ### which parts of the sequence do you want to incorporate.
    ### --> for this measurement: none.
    m.joint_params['LDE_attempts'] = 1

    m.joint_params['opt_pi_pulses'] = 1
    m.params['MW_during_LDE'] = 1

    m.params['MW_pi_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!

    # put sweep together:
    sweep_off_voltage = False
    m.params['do_general_sweep'] = True
    sweep_ms0_delay = True
    if sweep_off_voltage:
        m.params['general_sweep_name'] = 'eom_overshoot1'
        print 'sweeping the', m.params['general_sweep_name']
        m.params['general_sweep_pts'] = np.linspace(-0.13, 0.06,
                                                    pts)  #(-0.04,-0.02,pts)
    elif sweep_ms0_delay:
        m.params['general_sweep_name'] = 'MW_repump_distance'
        m.params['LDE_SP_delay'] = 5e-6
        print 'sweeping the', m.params['general_sweep_name']
        m.params['general_sweep_pts'] = np.append(
            np.array([-2.6e-6, -2.2e-6, -2.0e-6]),
            np.linspace(-1.6e-6, -1.15e-6, pts - 3)) - 60e-9

    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'] * 1e6
    ### upload

    sweep_sce_expm.run_sweep(m,
                             debug=debug,
                             upload_only=upload_only,
                             hist_only=False)