def MBE(name,
        carbon_list=[5, 1],
        carbon_init_list=[1, 5],
        carbon_init_states=2 * ['up'],
        carbon_init_methods=2 * ['swap'],
        carbon_init_thresholds=2 * [0],
        number_of_MBE_steps=0,
        mbe_bases=['X', 'X'],
        MBE_threshold=1,
        number_of_parity_msmnts=0,
        parity_msmnts_threshold=1,
        el_RO='positive',
        debug=False):

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

    m.params['C13_MBI_threshold_list'] = carbon_init_thresholds
    ''' set experimental parameters '''

    m.params['reps_per_ROsequence'] = 1000

    ### Carbons to be used
    m.params['carbon_list'] = carbon_list

    ### Carbon Initialization settings

    m.params['carbon_init_list'] = carbon_init_list
    m.params['init_method_list'] = carbon_init_methods
    m.params['init_state_list'] = carbon_init_states
    m.params['Nr_C13_init'] = len(carbon_init_list)
    m.params['el_after_init'] = '0'
    ##################################
    ### RO bases (sweep parameter) ###
    ##################################

    #m.params['Tomography Bases'] = 'full'
    m.params['Tomography Bases'] = ([['X', 'I'], ['Y', 'I'], ['Z', 'I'],
                                     ['I', 'X'], ['I', 'Y'], ['I', 'Z'],
                                     ['X', 'X'], ['X', 'Y'], ['X', 'Z'],
                                     ['Y', 'X'], ['Y', 'Y'], ['Y', 'Z'],
                                     ['Z', 'X'], ['Z', 'Y'], ['Z', 'Z']])

    # m.params['Tomography Bases'] = ([
    #         ['X','I'],['Y','I'],['Z','I'],
    #        ['I','X'],['I','Y'],['I','Z']])

    # m.params['Tomography Bases'] = ([
    #         ['X','X'],['X','Y'],['X','Z'],
    #         ['Y','X'],['Y','Y'],['Y','Z'],
    #         ['Z','X'],['Z','Z']])

    # m.params['Tomography Bases'] = ([
    #         ['X','I'],['Y','I'],['Z','I']])
    # m.params['Tomography Bases'] = ([['I','X'],['X','I'],['X','X']])#,['Y','X'],['Y','Y'],['X','X'],['I','Y'],['Y','I']])
    # m.params['Tomography Bases'] = ([
    #         ['X','I','I'],['Y','I','I'],['Z','I','I'],
    #         ['I','X','I'],['I','Y','I'],['I','Z','I'],
    #         ['I','I','X'],['I','I','Y'],['I','I','Z']])

    # m.params['Tomography Bases'] = TD.get_tomo_bases(nr_of_qubits = 1)

    ####################
    ### MBE settings ###
    ####################

    m.params['Nr_MBE'] = number_of_MBE_steps
    m.params['MBE_bases'] = mbe_bases
    m.params['MBE_threshold'] = MBE_threshold

    ###################################
    ### Parity measurement settings ###
    ###################################

    m.params['Nr_parity_msmts'] = number_of_parity_msmnts
    m.params['Parity_threshold'] = parity_msmnts_threshold

    ### Derive other parameters
    m.params['pts'] = len(m.params['Tomography Bases'])
    m.params['sweep_name'] = 'Tomography Bases'
    m.params['sweep_pts'] = []

    ### RO params
    m.params['electron_readout_orientation'] = el_RO
    for BP in m.params['Tomography Bases']:
        if len(carbon_list) == 2:
            m.params['sweep_pts'].append(BP[0] + BP[1])
        elif len(carbon_list) == 3:
            m.params['sweep_pts'].append(BP[0] + BP[1] + BP[2])
    print m.params['sweep_pts']

    funcs.finish(m, upload=True, debug=debug)
Beispiel #2
0
def MBE(name, carbon            =   1,               
        
        carbon_init_list        =   [1],
        carbon_init_states      =   ['up'], 
        carbon_init_methods     =   ['swap'], 
        carbon_init_thresholds  =   [0],  
        el_RO               = 'positive',
        debug               = False):

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


    m.params['el_after_init']                = '0'


    m.params['C13_MBI_threshold_list'] = carbon_init_thresholds

    ''' set experimental parameters '''

    m.params['reps_per_ROsequence'] = 1000

    ### Carbons to be used
    m.params['carbon_list']         = [carbon]

    ### Carbon Initialization settings 
    m.params['carbon_init_list']    = carbon_init_list
    m.params['init_method_list']    = carbon_init_methods    
    m.params['init_state_list']     = carbon_init_states    
    m.params['Nr_C13_init']         = len(carbon_init_list)

    ##################################
    ### RO bases (sweep parameter) ###
    ##################################

    m.params['Tomography Bases'] = TD.get_tomo_bases(nr_of_qubits = 1)
    # m.params['Tomography Bases'] = [['X'],['Y'],['Z']]
    # m.params['Tomography Bases'] = [['X'],['Y']]
    # m.params['Tomography Bases'] = [['X']]
        
    ####################
    ### MBE settings ###
    ####################

    m.params['Nr_MBE']              = 0 
    m.params['MBE_bases']           = []
    m.params['MBE_threshold']       = 1
    
    ###################################
    ### Parity measurement settings ###
    ###################################

    m.params['Nr_parity_msmts']     = 0
    m.params['Parity_threshold']    = 1
    
    ### Derive other parameters
    m.params['pts']                 = len(m.params['Tomography Bases'])
    m.params['sweep_name']          = 'Tomography Bases' 
    m.params['sweep_pts']           = []
    
    ### RO params
    m.params['electron_readout_orientation'] = el_RO
    for BP in m.params['Tomography Bases']:
        m.params['sweep_pts'].append(BP[0])
    
    funcs.finish(m, upload =True, debug=debug)