예제 #1
0
def cal_CORPSE_pi2(name):
    """
    Do a pi/2 with and without a pi pulse afterward, sweeping the amplitude of the pi/2.
    """

    m = CORPSEPi2Calibration(name)
    funcs.prepare(m)

    pts = 21
    m.params['pts_awg'] = pts

    # we do actually two msmts for every sweep point, that's why the awg gets only half of the
    # pts;
    m.params['pts'] = 2 * pts

    m.params['repetitions'] = 2000
    m.params['wait_for_AWG_done'] = 1

    m.params['CORPSE_mod_frq'] = m.params['CORPSE_pi_mod_frq']
    sweep_axis = 0.42 + linspace(-0.06, 0.06, pts)
    m.params['CORPSE_pi2_sweep_amps'] = sweep_axis

    # for the autoanalysis
    m.params['sweep_name'] = 'MW pi/2 amp (V)'
    m.params['sweep_pts'] = np.sort(np.append(sweep_axis, sweep_axis))

    funcs.finish(m, upload=UPLOAD, debug=DEBUG)
예제 #2
0
def cal_CORPSE_pi2(name):
    m = CORPSEPi2Calibration(name + 'M=1')
    funcs.prepare(m)

    pts = 11
    m.params['pts'] = pts
    m.params['repetitions'] = 1000
    m.params['wait_for_AWG_done'] = 1

    # sweep params
    m.params['CORPSE_pi2_sweep_amps'] = np.linspace(0.42, 0.52, pts)  #
    m.params['multiplicity'] = 1
    name = name + 'M={}'.format(m.params['multiplicity'])
    m.params['delay_element_length'] = 1e-6

    # for the autoanalysis
    m.params['sweep_name'] = 'CORPSE pi/2 amplitude (V)'
    m.params['sweep_pts'] = m.params['CORPSE_pi2_sweep_amps']

    funcs.finish(m)
예제 #3
0
def cal_CORPSE_pi2_alternative(name, M):
    m = CORPSEPi2Calibration(name + str(M))
    funcs.prepare(m)
    ### Currently does not work, because element length fill-up causes dephasing.
    #Calibration method abandoned for now

    pts = 11
    m.params['pts'] = pts
    m.params['repetitions'] = 1000
    m.params['wait_for_AWG_done'] = 1

    # sweep params
    m.params['CORPSE_pi2_sweep_amps'] = np.linspace(0.5, 0.6, pts)  #
    m.params['multiplicity'] = M
    name = name + 'M={}'.format(m.params['multiplicity'])
    m.params['delay_element_length'] = 10e-9

    # for the autoanalysis
    m.params['sweep_name'] = 'CORPSE pi/2 amplitude (V)'
    m.params['sweep_pts'] = m.params['CORPSE_pi2_sweep_amps']

    funcs.finish(m)
예제 #4
0
def find_CORPSE_pi2_fidelity(name):
    m = CORPSEPi2Calibration(name + 'fidelity_M=1')
    funcs.prepare(m)

    pts = 11
    m.params['pts'] = pts
    m.params['repetitions'] = 1000
    m.params['wait_for_AWG_done'] = 1

    # sweep params
    m.params['CORPSE_pi2_sweep_amps'] = np.ones(pts) * m.params[
        'CORPSE_pi2_amp']  #np.linspace(0.54, 0.66, pts)#
    m.params['multiplicity'] = 1
    name = name + 'M={}'.format(m.params['multiplicity'])
    m.params['delay_element_length'] = 1e-6
    m.params['delay_reps'] = 15

    # for the autoanalysis
    m.params['sweep_name'] = ''
    m.params['sweep_pts'] = np.arange(pts)  # m.params['CORPSE_pi_sweep_amps']

    funcs.finish(m)