def NuclearRamseyWithInitialization_cal(name,
                                        carbon_nr=1,
                                        carbon_init_state='up',
                                        el_RO='positive',
                                        detuning=0.5e3,
                                        evo_time=400e-6,
                                        el_state=1,
                                        debug=False,
                                        free_evolution_time=400e-6 +
                                        np.linspace(0., 6.0e-3, 44)):

    m = DD.NuclearRamseyWithInitialization(name)
    funcs.prepare(m)
    '''Set parameters'''

    ### Sweep parameters
    m.params['reps_per_ROsequence'] = 250
    m.params['C13_MBI_RO_state'] = 0
    ### overwritten from msmnt params

    ####################################
    ### Option 1; Sweep waiting time ###
    ####################################

    ## '''1A - Rotating frame with detuning'''
    m.params['add_wait_gate'] = True
    m.params['pts'] = len(free_evolution_time)
    m.params['free_evolution_time'] = free_evolution_time

    # m.params['free_evolution_time'] = 180e-6 + np.linspace(0e-6, 4*1./74e3,m.params['pts'])

    m.params['C' + str(carbon_nr) + '_freq_0'] += detuning
    m.params['C' + str(carbon_nr) + '_freq_1' +
             m.params['electron_transition']] += detuning
    m.params['C_RO_phase'] = np.ones(m.params['pts']) * 0

    m.params['sweep_name'] = 'free_evolution_time'
    m.params['sweep_pts'] = m.params['free_evolution_time']

    ############################################
    ### Option 2; Sweep RO phase at set time ###
    ############################################
    # m.params['pts'] = 21
    # m.params['add_wait_gate'] = False
    # m.params['free_evolution_time'] = np.ones(m.params['pts'] )*evo_time
    # m.params['C_RO_phase'] = np.linspace(-20, 400,m.params['pts'])

    # m.params['sweep_name'] = 'phase'
    # m.params['sweep_pts']  = m.params['C_RO_phase']
    '''Derived and fixed parameters'''

    m.params['electron_readout_orientation'] = el_RO
    m.params['carbon_nr'] = carbon_nr
    m.params['init_state'] = carbon_init_state
    m.params['electron_after_init'] = str(el_state)
    m.params['Nr_C13_init'] = 1
    m.params['Nr_MBE'] = 0
    m.params['Nr_parity_msmts'] = 0

    funcs.finish(m, upload=True, debug=debug)
def NuclearRamseyWithInitialization_phase(name, 
        carbon_nr           = 1,               
        carbon_init_state   = 'up', 
        el_RO               = 'positive',
        el_state            = 0,
        debug               = False):

    m = DD.NuclearRamseyWithInitialization(name)
    funcs.prepare(m)

    '''Set parameters'''

    ### Sweep parameters
    m.params['reps_per_ROsequence'] = phase_reps
    m.params['C13_MBI_RO_state'] =0
    m.params['pts'] = 25
    if carbon_nr == 6 and SETUP == 'lt2':
        m.params['pts'] = 21

    m.params['add_wait_gate'] = False
    # m.params['free_evolution_time'] = np.ones(m.params['pts'] )*360e-6
    m.params['C_RO_phase'] = np.linspace(-60, 400,m.params['pts'])    

    m.params['sweep_name'] = 'phase'
    m.params['sweep_pts']  = m.params['C_RO_phase']

    '''Derived and fixed parameters'''

    m.params['electron_readout_orientation'] = el_RO
    m.params['carbon_nr']                    = carbon_nr
    m.params['init_state']                   = carbon_init_state  
    m.params['electron_after_init'] = str(el_state)

    m.params['Nr_C13_init']       = 1
    m.params['Nr_MBE']            = 0
    m.params['Nr_parity_msmts']   = 0

  
    funcs.finish(m, upload =True, debug=debug)
Example #3
0
def measure_T2star(name,
                   carbon_nr=5,
                   carbon_init_state='up',
                   detuning=0.5e3,
                   el_state=0,
                   debug=False):
    m = DD.NuclearRamseyWithInitialization(name)
    funcs.prepare(m)
    '''Set parameters'''

    ### Sweep parameters
    m.params['reps_per_ROsequence'] = 2000
    m.params['C13_MBI_RO_state'] = 0
    ### overwritten from msmnt params

    ####################################
    ### Option 1; Sweep waiting time ###
    ####################################

    # 1A - Rotating frame with detuning
    m.params['add_wait_gate'] = True
    m.params['pts'] = 25
    m.params['free_evolution_time'] = 400e-6 + np.linspace(
        0e-6, 3 * 1. / detuning, m.params['pts'])
    # m.params['free_evolution_time'] = 180e-6 + np.linspace(0e-6, 4*1./74e3,m.params['pts'])

    m.params['C' + str(carbon_nr) + '_freq_0'] += detuning
    m.params['C' + str(carbon_nr) + '_freq_1' +
             m.params['electron_transition']] += detuning
    m.params['C_RO_phase'] = 'X'

    m.params['sweep_name'] = 'free_evolution_time'
    m.params['sweep_pts'] = m.params['free_evolution_time']
    '''Derived and fixed parameters'''
    #
    m.params['carbon_nr'] = carbon_nr
    m.params['init_state'] = carbon_init_state
    m.params['electron_after_init'] = str(el_state)
    m.params['Nr_C13_init'] = 1
    m.params['Nr_MBE'] = 0
    m.params['Nr_parity_msmts'] = 0

    Tomography_list = ['X', 'Y']

    readout_orientations = {'positive', 'negative'}

    for ero in readout_orientations:
        if not stop_msmt():
            break
        m.params['electron_readout_orientation'] = ero
        for tomo in Tomography_list:
            if not stop_msmt():
                break
            m.params['C_RO_phase'] = [tomo] * m.params['pts']
            save_name = "%s_%s" % (tomo, ero)
            print("Measuring " + save_name)
            funcs.finish(m,
                         upload=True,
                         debug=debug,
                         save_name=save_name,
                         last_msmt=False)

    m.finish()