示例#1
0
def check_magneticField(breakstatement=False):
    if not breakstatement:
        DESR_msmt.darkesr('magnet_' +  'msm1', ms = 'msm',
        range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0m_temp*1e9,# - N_hyperfine,
        pulse_length = 8e-6, ssbmod_amplitude = 0.0025)


        DESR_msmt.darkesr('magnet_' +  'msp1', ms = 'msp',
        range_MHz=range_fine, pts=pts_fine, reps=reps_fine, freq=f0p_temp*1e9,# + N_hyperfine,
        pulse_length = 8e-6, ssbmod_amplitude = 0.006,mw_switch = True)
示例#2
0
                            MBE(SAMPLE + '00_negative_test_RO' + str(test_RO) +
                                '_k0_sign1_' + test_state + '_test',
                                RO_C=test_RO,
                                logic_state=test_state,
                                el_RO='negative',
                                error_sign=1,
                                error_on_qubit='all',
                                error_probability_list=e_list,
                                parity_orientations=['positive', 'positive'])

                    DESR_msmt.darkesr(
                        'magnet_' + 'msm1',
                        ms='msm',
                        range_MHz=range_fine,
                        pts=pts_fine,
                        reps=reps_fine,
                        freq=f0m_temp * 1e9,  # - N_hyperfine,
                        pulse_length=8e-6,
                        ssbmod_amplitude=0.0025)

                    DESR_msmt.darkesr(
                        'magnet_' + 'msp1',
                        ms='msp',
                        range_MHz=range_fine,
                        pts=pts_fine,
                        reps=reps_fine,
                        freq=f0p_temp * 1e9,  # + N_hyperfine, 
                        pulse_length=8e-6,
                        ssbmod_amplitude=0.006)
示例#3
0
    d_steps = [0]
    f0m = [0]
    u_f0m = [0]
    delta_f0m = [0]
    iterations_list = [0]

    #turn on magnet stepping in Z
    #Change mode to step for normal operation
    mom.set_mode('Z_axis', 'gnd')

    # start: define B-field and position by first ESR measurement
    DESR_msmt.darkesr(
        'magnet_' + 'Z_axis_' + 'msm1',
        ms='msm',
        range_MHz=range_fine,
        pts=pts_fine,
        reps=reps_fine,
        freq=(f0m_temp) * 1e9,  # - N_hyperfine,
        pulse_length=8e-6,
        ssbmod_amplitude=0.0015,
        mw_switch=False)  #0.0025
    f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr_double()
    f0m_temp = f0m_temp  # + N_hyperfine*1e-9
    delta_f0m_temp = f0m_temp * 1e6 - current_f_msm1 * 1e-3

    # start to list all the measured values
    iterations = 0
    iterations_list.append(iterations)
    f0m.append(f0m_temp)
    u_f0m.append(u_f0m_temp)
    delta_f0m.append(delta_f0m_temp)
    d_steps.append(
示例#4
0
        # msm1
        f0 = []
        u_f0 = []
        iterations_list = []
        magnet_postion_list = []
        fit_failed_list = []
        f0_p = []
        u_f0_p = []
        f0_avg
        D_ZFS_list = []

        DESR_msmt.darkesr('magnet_' + axis + 'msm1_coarse',
                          ms='msm',
                          ssbmod_amplitude=0.004,
                          range_MHz=coarse_range,
                          pts=coarse_pts,
                          reps=coarse_reps,
                          freq=f0m_temp * 1e9,
                          mw_switch=False)
        # Do the fitting, returns in MHz, input in GHz

        f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr_double(
            do_plot=True)

        #msp1

        DESR_msmt.darkesr('magnet_' + axis + 'msp1_coarse',
                          ms='msp',
                          range_MHz=coarse_range,
                          pts=coarse_pts,
                          ssbmod_amplitude=0.009,
示例#5
0
    ###########
    ## Start ##
    ###########

    #create the data lists
    d_steps = []
    f0 = []
    u_f0 = []
    delta_f0 = []
    #turn on magnet stepping in Z
    mom.set_mode('Z_axis', 'stp')

    # start: define B-field and position by first ESR measurement
    DESR_msmt.darkesr('magnet_Zpos_optimize_fine',
                      ms='msp',
                      range_MHz=DESR_range,
                      pts=pts,
                      reps=reps)
    # do the fitting, returns in MHz, input in GHz
    f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr(
        current_f_msp1 * 1e-9,
        qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9)
    delta_f0_temp = f0_temp * 1e6 - current_f_msp1 * 1e-3

    # start to list all the measured values
    iterations = 0
    f0.append(f0_temp)
    u_f0.append(u_f0_temp)
    delta_f0.append(delta_f0_temp)

    print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str(
示例#6
0
            qt.msleep(5)
            if (msvcrt.kbhit() and (msvcrt.getch() == 'q')):
                break

            magnet_Z_scanner.MoveRelative(magnet_positions_list[k])

            print 'Current magnet position is ' + str(
                magnet_Z_scanner.GetPosition())
            # magnet_scanner_position = magnet_Z_scanner.GetPosition()

            DESR_msmt.darkesr('magnet_scanner_calib_coarse' + str(ll) + '_' +
                              str(k),
                              ms='msm',
                              range_MHz=range_coarse,
                              pts=pts_coarse,
                              reps=reps_coarse,
                              freq=f0m_temp * 1e9,
                              pulse_length=3e-6,
                              ssbmod_amplitude=0.08,
                              mw_power=-1,
                              mw_switch=False)

            f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr(
                f0m_temp,
                qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9,
                do_save=save_plots,
                sweep_direction='right')

            #ms=-1 fine
            DESR_msmt.darkesr(
                'magnet_scanner_calib_fine' + str(ll) + '_' + str(k),
def auto_z_magnet_optimize():

    ######################
    ## Input parameters ##
    ######################
    safemode = False
    maximum_magnet_step_size = 50
    opimization_target = 10  # target difference in kHz (or when 0 magnet steps are required)

    ### for the remainder of the steps
    range_fine = 0.4
    pts_fine = 51
    reps_fine = 100

    ###########
    ## Start ##
    ###########

    #create the data lists
    d_steps = [0]
    f0 = [0]
    u_f0 = [0]
    delta_f0 = [0]
    iterations_list = [0]

    #turn on magnet stepping in Z
    mom.set_mode('Z_axis', 'stp')

    # start: define B-field and position by first ESR measurement
    DESR_msmt.darkesr(
        'magnet_' + 'Z_axis_' + 'msm1',
        ms='msm',
        range_MHz=range_fine,
        pts=pts_fine,
        reps=reps_fine,
        freq=f0_temp * 1e9,  # - N_hyperfine,
        pulse_length=8e-6,
        ssbmod_amplitude=0.0025)
    f0_temp, u_f0_temp = dark_esr_auto_analysis.analyze_dark_esr_double(
        do_ROC=False, do_plot=False)
    f0_temp = f0_temp  # + N_hyperfine*1e-9
    delta_f0_temp = f0_temp * 1e6 - current_f_msm1 * 1e-3

    # start to list all the measured values
    iterations = 0
    iterations_list.append(iterations)
    f0.append(f0_temp)
    u_f0.append(u_f0_temp)
    delta_f0.append(delta_f0_temp)
    d_steps.append(
        int(
            round(
                mt.steps_to_frequency(freq=f0_temp * 1e9,
                                      freq_id=current_f_msm1,
                                      ms='plus'))))

    print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str(
        u_f0_temp * 1e6) + ' kHz'
    print 'Difference = ' + str(delta_f0_temp) + ' kHz'

    while abs(delta_f0_temp) > opimization_target:
        iterations += 1
        print 'move magnet in Z with ' + str(d_steps[iterations]) + ' steps'

        if abs(d_steps[iterations]) > maximum_magnet_step_size:
            print 'd_steps>+/-00, step only 50 steps!'
            if d_steps[iterations] > 0:
                d_steps[iterations] = maximum_magnet_step_size
            if d_steps[iterations] < 0:
                d_steps[iterations] = -1 * maximum_magnet_step_size
        elif d_steps[iterations] == 0:
            print 'Steps = 0 optimization converted'
            break
        if safemode == True:
            ri = raw_input('move magnet? (y/n)')
            if str(ri) == 'y':
                mom.step('Z_axis', d_steps[iterations])
            else:
                break
        else:
            mom.step('Z_axis', d_steps[iterations])

        DESR_msmt.darkesr(
            'fine_optimize_magnet_' + 'Z_axis_' + 'msm1',
            ms='msm',
            range_MHz=range_fine,
            pts=pts_fine,
            reps=reps_fine,
            freq=f0_temp * 1e9,  # - N_hyperfine,
            pulse_length=8e-6,
            ssbmod_amplitude=0.0025)

        f0_temp, u_f0_temp, folder = dark_esr_auto_analysis.analyze_dark_esr_double(
            do_ROC=False, ret_folder=True, do_plot=False)
        f0_temp = f0_temp  # + N_hyperfine*1e-9
        delta_f0_temp = f0_temp * 1e6 - current_f_msm1 * 1e-3

        d_steps.append(
            int(
                round(
                    mt.steps_to_frequency(freq=f0_temp * 1e9,
                                          freq_id=current_f_msm1,
                                          ms='plus'))))

        f0.append(f0_temp)
        u_f0.append(u_f0_temp)
        delta_f0.append(delta_f0_temp)

        print 'Measured frequency = ' + str(f0_temp) + ' GHz +/- ' + str(
            u_f0_temp * 1e6) + ' kHz'
        print 'Difference = ' + str(f0_temp * 1e6 -
                                    current_f_msm1 * 1e-3) + ' kHz'

        iterations_list.append(iterations)

    total_d_steps = np.sum(d_steps)

    #create a file to save data to --> what is a good way to save this?
    d = qt.Data(name='magnet_auto_Z_optimization_overview')
    d.add_coordinate('iteration')
    d.add_value('frequency [GHz]')
    d.add_value('frequency error [GHz]')
    d.add_value('frequency difference [GHz]')
    d.add_value('number of steps')
    d.create_file()
    filename = d.get_filepath()[:-4]
    print iterations_list
    print f0
    print u_f0
    print delta_f0
    print d_steps
    d.add_data_point(iterations_list, f0, u_f0, delta_f0, d_steps)
    d.close_file()

    print 'Z position fine optimization finished, stepped the magnet ' + str(
        total_d_steps) + ' in ' + str(iterations + 1) + ' iterations'
示例#8
0
        if No_steps == False:
            if axis == 'Y_axis' and steps[k] != 0:
                magnet_Y_scanner.MoveRelative(steps[k])
                print 'Moving the magnet along Y with ' + str(steps[k])
            elif axis == 'X_axis' and steps[k] != 0:
                magnet_X_scanner.MoveRelative(steps[k])
                print 'Moving the magnet along X with ' + str(steps[k])

        position = position + steps[k]

        #ms=-1 coarse
        DESR_msmt.darkesr('magnet_' + 'msm1_coarse',
                          ms='msm',
                          range_MHz=range_coarse,
                          pts=pts_coarse,
                          reps=reps_coarse,
                          freq=f0m_temp * 1e9,
                          pulse_length=3e-6,
                          ssbmod_amplitude=0.08,
                          mw_power=-1,
                          mw_switch=True)

        f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr(
            f0m_temp,
            qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9,
            do_save=save_plots,
            sweep_direction='right')

        #ms=+1 coarse
        DESR_msmt.darkesr('magnet_' + 'msp1_coarse',
                          ms='msp',
                          range_MHz=range_coarse,
示例#9
0
            break

        #use a higher threshold at the very end
        GreenAOM.set_power(5e-6)
        ins_counters.set_is_running(0)
        int_time = 1000
        cnts = ins_adwin.measure_counts(int_time)[0]
        print 'counts = ' + str(cnts)
        if cnts < 30e4:
            optimiz0r.optimize(dims=['x', 'y', 'z'])

        #measure both frequencies
        #ms=-1 coarse
        DESR_msmt.darkesr('magnet_msm1_coarse',
                          ms='msm',
                          range_MHz=range_coarse,
                          pts=pts_coarse,
                          reps=reps_coarse)
        f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr(
            current_f_msm1 * 1e-9,
            qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9)
        #ms=-1 fine
        DESR_msmt.darkesr('magnet_msm1_fine',
                          ms='msm',
                          range_MHz=range_fine,
                          pts=pts_fine,
                          reps=reps_fine,
                          freq=f0m_temp * 1e9)
        f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr_single(
            current_f_msp1 * 1e-9)
示例#10
0
                    (i != abs(step) / magnet_step_size - 1)):
                    optimiz0r.optimize(dims=['x', 'y', 'z'])
                print 'press q to stop magnet movement loop'
                qt.msleep(0.5)
                if (msvcrt.kbhit() and (msvcrt.getch() == 'q')):
                    break

                optimiz0r.optimize(dims=['x', 'y', 'z'])

        #measure both frequencies
        #ms=-1 coarse
        if fine_only == False:
            DESR_msmt.darkesr('magnet_' + axis + 'msm1_coarse',
                              ms='msm',
                              ssbmod_amplitude=0.004,
                              range_MHz=range_coarse,
                              pts=pts_coarse,
                              reps=reps_coarse,
                              freq=f0m_temp * 1e9,
                              mw_switch=False)
            f0m_temp, u_f0m_temp = dark_esr_auto_analysis.analyze_dark_esr(
                f0m_temp,
                qt.exp_params['samples'][SAMPLE]['N_HF_frq'] * 1e-9,
                do_save=save_plots,
                sweep_direction='right')
            #ms=-1 fine

        if do_m1_fine == True or coarse_only == False or u_f0m_temp > 1e-4:  ## uncertainty larger than 100 kHz triggers the fine measurement.
            DESR_msmt.darkesr(
                'magnet_' + axis + 'msm1',
                ms='msm',
                range_MHz=range_fine,