Пример #1
0
def RO_saturation_power(name, yellow=False):
    m = ssro.AdwinSSRO('RO_saturation_power_'+name)
    
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['sil11-default']['AdwinSSRO'])
    
    m.params['SSRO_repetitions'] = 10000
    m.params['pts'] = 8
    pts = m.params['pts']

    #repump settings
    _set_repump_settings(m,yellow) 

    m.params['A_SP_amplitude'] = 20e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitudes'] = np.linspace(2e-9, 27e-9, 9)

    for i,p in enumerate(m.params['Ex_RO_amplitudes']):
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break
        print '{}/{}: P = {} '.format(i+1, pts, p) 
        m.params['Ex_RO_amplitude'] = p
        m.run()
        m.save('P_%dnW' % (p*1e9))
        
    m.finish()
Пример #2
0
def calibration(name, yellow=False):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)

    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    # parameters
    m.params['SSRO_repetitions'] = 5000

    #repump settings
    _set_repump_settings(m, yellow)

    # ms = 0 calibration
    m.params['A_SP_amplitude'] = 10e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitude'] = 5e-9

    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['A_SP_amplitude'] = 0
    m.params['Ex_SP_amplitude'] = 10e-9
    m.params['Ex_RO_amplitude'] = 5e-9

    m.run()
    m.save('ms1')
    m.finish()
def ssrocalibration(name):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])

    m.params.from_dict(qt.cfgman['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    # parameters
    m.params['SSRO_repetitions'] = 5000

    m.params['A_CR_amplitude'] = 40e-9  #5e-9
    m.params['E_CR_amplitude'] = 6e-9  #5e-9
    m.params['CR_duration'] = 50
    m.params['repump_duration'] = 50
    m.params['SSRO_duration'] = 50

    # ms = 0 calibration
    m.params['SP_duration'] = 250
    m.params['A_SP_amplitude'] = 40e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitude'] = 8e-9  #10e-9

    # m.autoconfig()
    # m.setup()

    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['SP_duration'] = 250
    m.params['A_SP_amplitude'] = 0.
    m.params['Ex_SP_amplitude'] = 10e-9  #10e-9

    #m.run()
    #m.save('ms1')
    m.finish()
Пример #4
0
def ssrocalibration(name, RO_power=None, SSRO_duration=None):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    # ####dirty hack to switch our lasers around
    # E_aom = m.E_aom
    # A_aom = m.A_aom
    # m.E_aom = A_aom
    # m.A_aom = E_aom
    if RO_power != None:
        m.params['Ex_RO_amplitude'] = RO_power
    if SSRO_duration != None:
        m.params['SSRO_duration'] = SSRO_duration

    # ms = 0 calibration
    #m.params['SP_duration']     = 500
    m.params['Ex_SP_amplitude'] = 0.
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['SP_duration'] = 500
    m.params['A_SP_amplitude'] = 0.
    m.params['Ex_SP_amplitude'] = 1e-9  #15e-9

    m.run()
    m.save('ms1')

    m.finish()
Пример #5
0
def RO_saturation_power(name):
    m = ssro.AdwinSSRO('RO_saturation_power_' + name)

    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols']['cr_mod'])

    m.params['SSRO_repetitions'] = 2000
    m.params['pts'] = 20
    pts = m.params['pts']
    step = 0.3e-9

    m.params['CR_preselect'] = 1000
    m.params['CR_probe'] = 1000
    m.params['A_SP_amplitude'] = 20e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitudes'] = np.arange(pts) * step + step
    m.params['SSRO_duration'] = 50

    for i, p in enumerate(m.params['Ex_RO_amplitudes']):
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break

        print
        print '{}/{}: P = {} '.format(i + 1, pts, p)
        m.params['Ex_RO_amplitude'] = p
        #m.params['A_RO_amplitude'] = p
        m.run()
        m.save('P_{:.1f}_nW'.format(p * 1e9))

    m.finish()
Пример #6
0
def max_probe_time_calibration(name, yellow=False):
    m = ssro.AdwinSSRO('cal_max_probe_time_th_40_1' + name)

    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    m.params['SSRO_repetitions'] = 5000

    #repump settings
    _set_repump_settings(m, yellow)

    m.params['A_CR_amplitude'] = 13e-9
    m.params['E_CR_amplitude'] = 4e-9
    m.params['CR_duration'] = 50

    m.params['A_SP_amplitude'] = 14e-9
    m.params['Ex_SP_amplitude'] = 0.e-9
    m.params['Ex_RO_amplitude'] = 5.e-9
    m.params['SP_duration'] = 50
    m.params['A_RO_amplitude'] = 0.e-9
    m.params['SSRO_duration'] = 100

    m.params['pts'] = 21
    pts = m.params['pts']
    m.params['CR_preselect'] = 40
    m.params['CR_probe'] = 1

    m.params['SSRO_repetitionss'] = np.linspace(5000, 10000, pts)
    m.params['CR_probe_max_times'] = np.linspace(
        10, 200010, pts
    )  # [10,100,1000,5000,10000,20000,50000,100000,500000,1000000]#np.linspace(10,30010,pts)

    for i, max_t in enumerate(m.params['CR_probe_max_times']):
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break

        print
        print '{}/{}: max_t = {} us'.format(i + 1, pts, max_t)

        m.params['CR_probe_max_time'] = int(m.params['CR_probe_max_times'][i])
        m.params['SSRO_repetitions'] = int(m.params['SSRO_repetitionss'][i])

        m.run()
        m.save('max_t_{}_us'.format(int(max_t)))

    m.finish()
Пример #7
0
def RO_saturation_power(name, yellow=False):
    m = ssro.AdwinSSRO('RO_saturation_power_'+name)
    
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['sil9-default']['AdwinSSRO'])
    
    #repump settings
    _set_repump_settings(m,yellow)
    
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitudes'] = np.arange(20)*2e-9 + 2e-9

    for p in m.params['Ex_RO_amplitudes']:
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break
        m.params['Ex_RO_amplitude'] = p
        m.run()
        m.save('P_%dnW' % (p*1e9))
        
    m.finish()
Пример #8
0
def calibration(name):

    m = ssro.AdwinSSRO('SSROCalibration_yellow_freq_'+name)
    m.adwin_process = 'singleshot_yellow_scan'
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['sil9-default']['AdwinSSRO'])
    
    #repump settings
    _set_repump_settings(m,True)
    
    m.params['freq_AOM_DAC_channel']=4
    m.params['repump_freq_control_offset']=5.
    
    #the frequency scan
    amp=4.#V
    dlen=m.params['repump_duration']
    xx=np.linspace(0.,2.*np.pi,dlen)
    m.params['yellow_freq_voltages']=amp*np.sin(xx)
    m.adwin_process_params['repump_freq_voltages'] = m.params['yellow_freq_voltages']
    
    
    # parameters
    m.params['SSRO_repetitions'] = 5000
    
    # ms = 0 calibration
    m.params['A_CR_amplitude'] = 30e-9
    m.params['Ex_CR_amplitude'] = 15e-9
    m.params['repump_amplitude']=50e-9 
    m.params['A_SP_amplitude'] = 20e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitude'] = 10e-9
    
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['A_SP_amplitude'] = 0
    m.params['Ex_SP_amplitude'] = 20e-9
    m.params['Ex_RO_amplitude'] = 10e-9

    m.run()
    m.save('ms1')
    m.finish()
Пример #9
0
def ssrocalibration(name):
    m = ssro.AdwinSSRO('SSROCalibration_'+name)
   
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['hans-sil4-default']['AdwinSSRO'])
    
    # ssro.AdwinSSRO.repump_aom = qt.instruments['YellowAOM_lt1']
    # m.params['repump_duration'] = m.params['yellow_repump_duration']
    # m.params['repump_amplitude'] = m.params['yellow_repump_amplitude']

    ssro.AdwinSSRO.repump_aom = qt.instruments['YellowAOM_lt1']
    m.params['repump_duration'] = m.params['yellow_repump_duration']
    m.params['repump_amplitude'] = m.params['yellow_repump_amplitude']

    # parameters
    m.params['CR_preselect'] = 1000
    m.params['CR_probe'] = 2
    m.params['SSRO_repetitions'] = 5000
    m.params['A_CR_amplitude'] = 20e-9
    m.params['Ex_CR_amplitude'] = 3e-9
    m.params['CR_duration'] = 100
    
    # ms = 0 calibration
    m.params['SP_duration'] = 250
    m.params['A_SP_amplitude'] = 50e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitude'] = 3e-9 #10e-9

    m.autoconfig()
    m.setup()
    
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['A_SP_amplitude'] = 0.
    m.params['SP_duration'] = 250
    m.params['Ex_SP_amplitude'] = 5e-9 #10e-9
    m.params['Ex_RO_amplitude'] = 3e-9 #10e-9

    m.run()
    m.save('ms1')
    m.finish()
def ssrocalibration(name, RO_power=None, SSRO_duration=None):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    if RO_power != None:
        m.params['Ex_RO_amplitude'] = RO_power
    if SSRO_duration != None:
        m.params['SSRO_duration'] = SSRO_duration

    m.params['CR_preselect'] = 10000
    m.params['CR_probe'] = 10000
    m.params['CR_repump'] = 10000

    # ms = 0 calibration
    m.params['Ex_SP_amplitude'] = 0
    run(m)
    m.save('ms0')

    m.finish()
Пример #11
0
def ssrocalibration(name):
    m = ssro.AdwinSSRO('SSROCalibration_'+name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    m.params['SSRO_duration']   = 100
    m.params['Ex_RO_amplitude'] =  1e-9

    m.params['SSRO_stop_after_first_photon'] = 1
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['SP_duration']     = 500
    m.params['A_SP_amplitude']  = 0.
    m.params['Ex_SP_amplitude'] = 15e-9
    m.run()
    m.save('ms1')

    m.finish()
Пример #12
0
def ssrocalibration(name):
    m = ssro.AdwinSSRO('SSROCalibration_'+name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols']['cr_mod'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    m.params['pos_mod_scan_length'] = 200
    m.params['pos_mod_atto_x'] = m.adwin.get_dac_voltage('atto_x')
    m.params['pos_mod_atto_y'] = m.adwin.get_dac_voltage('atto_y')
    m.params['pos_mod_atto_z'] = m.adwin.get_dac_voltage('atto_z')
    
        # parameters
    e_sp = m.params['Ex_SP_amplitude'] 
    a_sp =  m.params['A_SP_amplitude']

    # ms = 0 calibration
    m.params['SP_duration'] = m.params['SP_duration_ms0']
    m.params['Ex_SP_amplitude'] = 0.
    m.params['A_SP_amplitude'] = a_sp
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['SP_duration'] = m.params['SP_duration_ms1']
    m.params['A_SP_amplitude'] = 0
    m.params['Ex_SP_amplitude'] = e_sp
    #m.run()
    #m.save('ms1')

    m.params['atto_positions_after'] = m.adwin_var(('atto_positions',3))
    #print m.params['atto_positions_after'] 
    #print m.params['pos_mod_atto_x'],m.params['pos_mod_atto_y'],m.params['pos_mod_atto_z']
    m.adwin.set_dac_voltage(('atto_x',m.params['atto_positions_after'][0]))
    m.adwin.set_dac_voltage(('atto_y',m.params['atto_positions_after'][1]))
    m.adwin.set_dac_voltage(('atto_z',m.params['atto_positions_after'][2]))
    qt.instruments['master_of_space'].init_positions_from_adwin_dacs()

    #m.run()
    m.save('ms1')

    m.finish()
Пример #13
0
def cal_ssro_teleportation(name):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    funcs.prepare(m)
    m.params['SSRO_repetitions'] = 5000
    m.params['SP_duration'] = 250  # we want to calibrate the RO, not the SP
    m.params['SSRO_duration'] = 50

    # ms = 1 calibration

    m.params['Ex_SP_amplitude'] = 0
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['A_SP_amplitude'] = 0.
    m.params['Ex_SP_amplitude'] = m.params['E_SP_amplitude']

    m.run()
    m.save('ms1')
    m.finish()
Пример #14
0
def ssrocalibration_ms_0_p1(name):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols']['cr_mod'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['Magnetometry'])
    stools.turn_off_all_lasers()
    # parameters
    m.params['SSRO_repetitions'] = 5000
    m.params['SSRO_duration'] = 100
    m.params['SSRO_stop_after_first_photon'] = 0

    m.params['CR_preselect'] = 1000
    m.params['CR_repump'] = 1000
    m.params['CR_probe'] = 1000

    e_sp = 5e-9
    a_sp = m.params['A_SP_amplitude']

    #m.params['green_rempump_duration']=150
    #m.params['green_repump_amplitude'] = 30e-6
    #print m.params['Ex_CR_amplitude']

    # ms = 0 calibration
    m.params['SP_duration'] = 50
    m.params['Ex_SP_amplitude'] = 0.
    m.params['A_SP_amplitude'] = a_sp
    m.run()
    m.save('ms0')

    # ms = 1 calibration

    m.params['SP_duration'] = 300
    m.params['A_SP_amplitude'] = 0
    m.params['Ex_SP_amplitude'] = e_sp
    m.run()
    m.save('ms1')

    m.finish()
Пример #15
0
def ssrocalibration(name):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['Magnetometry'])
    # parameters
    m.params['SSRO_repetitions'] = 5000
    m.params['SSRO_duration'] = 100
    m.params['SSRO_stop_after_first_photon'] = 0

    m.params['CR_preselect'] = 1000
    m.params['CR_repump'] = 1000
    m.params['CR_probe'] = 1000

    e_sp = 18e-9
    a_sp = m.params['A_SP_amplitude']

    #m.params['green_rempump_duration']=150
    #m.params['green_repump_amplitude'] = 30e-6
    print m.params['Ex_CR_amplitude']
    ''' remains unchanged '''
    # ms = 0 calibration
    m.params['SP_duration'] = 200
    m.params['Ex_SP_amplitude'] = 0.
    m.params['A_SP_amplitude'] = a_sp
    m.run()
    m.save('ms0')
    ''' init via MW '''
    # ms = 1 calibration
    m.params['SP_duration'] = 300
    m.params['Ex_SP_amplitude'] = 0
    #init into ms = 0
    m.params['A_SP_amplitude'] = a_so

    # MW parameters
    m.run()
    m.save('ms1')

    m.finish()
Пример #16
0
def RO_optimal_power(name, yellow=False):
    m = ssro.AdwinSSRO('RO_saturation_power_'+name)
    
    m.params.from_dict(qt.cfgman['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.cfgman['protocols']['sil15-default']['AdwinSSRO'])
    
    #parameters
    m.params['SSRO_repetitions'] = 5000
    m.params['pts'] = 5
    pts = m.params['pts']

    #repump settings
    _set_repump_settings(m,yellow)
    
    m.params['A_SP_amplitude'] = 20e-9
    m.params['Ex_SP_amplitude'] = 0.
    m.params['Ex_RO_amplitudes'] = np.arange(pts)*2e-9 + 2e-9

    for p in m.params['Ex_RO_amplitudes']:
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break
        print 'ms0 1/{}: P = {} '.format(pts, p)
        m.params['Ex_RO_amplitude'] = p
        m.run()
        m.save('ms0_P_%dnW' % (p*1e9))
        
    m.params['A_SP_amplitude'] = 0e-9
    m.params['Ex_SP_amplitude'] = 20e-9
    m.params['Ex_RO_amplitudes'] = np.arange(pts)*2e-9 + 2e-9

    for p in m.params['Ex_RO_amplitudes']:
        if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break
        print 'ms1 1/{}: P = {} '.format(pts, p)
        m.params['Ex_RO_amplitude'] = p
        m.run()
        m.save('ms1_P_%dnW' % (p*1e9))
   

    m.finish()
Пример #17
0
def ssrocalibration(name, RO_power=None, SSRO_duration=None):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)
    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    if RO_power != None:
        m.params['Ex_RO_amplitude'] = RO_power
    if SSRO_duration != None:
        m.params['SSRO_duration'] = SSRO_duration

    # ms = 0 calibration
    m.params['Ex_SP_amplitude'] = 0
    m.run()
    m.save('ms0')

    # ms = 1 calibration
    m.params['SP_duration'] = 500
    m.params['A_SP_amplitude'] = 0.
    m.params['Ex_SP_amplitude'] = 15e-9  #20e-9
    m.run()
    m.save('ms1')

    m.finish()
Пример #18
0
def ssrocalibration(name, **additional_params):
    m = ssro.AdwinSSRO('SSROCalibration_' + name)

    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols']['cr_mod'])

    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])
    m.params.from_dict(additional_params)

    # ms = 0 calibration
    m.params['SP_duration'] = m.params['SP_duration_ms0']
    m.params['Ex_SP_amplitude'] = 0.
    m.params['A_SP_amplitude'] = m.params['A_SP_amplitude']
    if m.run():
        m.save('ms0')

        # ms = 1 calibration
        m.params['SP_duration'] = m.params['SP_duration_ms1']
        m.params['A_SP_amplitude'] = 0.
        m.params['Ex_SP_amplitude'] = m.params['Ex_SP_calib_amplitude']
        m.run()
        m.save('ms1')

    m.finish()
Пример #19
0
def threshold_calibration(name, yellow=False):

    max_rep = 1
    repetitions = np.arange(max_rep) + 1
    sweep_probes = [True]

    m = ssro.AdwinSSRO('SP_threshold_CRps_E12_13nW_Ey_5nW' + name)

    m.params.from_dict(qt.exp_params['protocols']['AdwinSSRO'])
    m.params.from_dict(qt.exp_params['protocols'][SAMPLE_CFG]['AdwinSSRO'])

    m.params['SSRO_repetitions'] = 5000

    #repump settings
    _set_repump_settings(m, yellow)

    #m.params['A_CR_amplitude'] = 13e-9
    #m.params['E_CR_amplitude'] = 5e-9
    #m.params['CR_duration'] = 50

    #m.params['A_SP_amplitude'] = 14e-9
    m.params['Ex_SP_amplitude'] = 0.e-9
    m.params['Ex_RO_amplitude'] = 5e-9
    #m.params['SP_duration'] = 50
    m.params['A_RO_amplitude'] = 0.e-9
    m.params['SSRO_duration'] = 100

    m.params['CR_probe_max_time'] = 1000000

    for r in repetitions:
        print '{}/{} repetitions'.format(r, max_rep)
        for t in sweep_probes:

            #sweep setting
            if t == True:
                m.params['pts'] = 12
                pts = m.params['pts']
                sweep_probe = True
                m.params['CR_preselects'] = np.ones(pts) * 48
                m.params['CR_probes'] = [
                    1, 2, 3, 4, 6, 8, 10, 16, 22, 28, 38, 48
                ]  #[1,2,3,4,6,8,10,15,20,25,30]#[1,2,3,4,6,8,10,15,20,30,40,60]#
            else:
                m.params['pts'] = 11
                pts = m.params['pts']
                sweep_probe = False

                m.params['CR_preselects'] = np.linspace(
                    6, 66, pts)  #np.ones(pts)*30 ### #np.ones(pts)*30#
                m.params['CR_probes'] = m.params[
                    'CR_preselects']  ### np.ones(pts)*30#

            if sweep_probe:
                pre = m.params['CR_preselects'][0]
                for i, pro in enumerate(m.params['CR_probes']):
                    if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break

                    print
                    print '{}/{}: pres. = {}, probe = {} '.format(
                        i + 1, pts, pre, pro)
                    m.params['CR_preselect'] = pre
                    m.params['CR_probe'] = pro
                    m.run()
                    m.save('th_pres_{}_probe_{}_r_{}_sweepprobe_{}'.format(
                        int(pre), int(pro), r, t))

            else:
                for i, pre in enumerate(m.params['CR_preselects']):
                    pro = pre  #when sweeping preselect, we want this threshold also for probe
                    if (msvcrt.kbhit() and (msvcrt.getch() == 'c')): break

                    print
                    print '{}/{}: pres. = {}, probe = {} '.format(
                        i + 1, pts, pre, pro)
                    m.params['CR_preselect'] = pre
                    m.params['CR_probe'] = pro
                    m.run()
                    m.save('th_pres_{}_probe_{}_r_{}_sweepprobe_{}'.format(
                        int(pre), int(pro), r, t))

    m.finish()