s.digichg('odt7595', 0) #Do CNC, UVMOT, and field ramps s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) # Add evaporation ramp to ODT free = float(report['EVAP']['free']) image = float(report['EVAP']['image']) buffer = 10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD: print 'Need at list ' + str( buffer) + 'ms of free evap before evaporation can be triggered' print 'Currently ramps end at %f , and free is %f' % (toENDBFIELD, free) exit(1) s.wait(free) odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(image) evap_ss = float(report['EVAP']['evapss']) s.analogwfm_add(evap_ss, [odtpow]) # ENDEVAP should be equal to image s.wait(image) #RELEASE FROM IR TRAP s.digichg('odtttl', 0) odttof = float(report['ODT']['odttof']) s.wait(odttof) #TAKE PICTURES light = 'probe' #light = 'motswitch' #light = 'bragg' trap_on_picture = 1
#Do CNC, UVMOT, and field ramps s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) print toENDBFIELD # Add evaporation ramp to ODT free = float(report['EVAP']['free']) evapdt = float(report['FLICKER']['evapdt']) buffer = 10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD: print 'Need at list %.3f ms of free evap before evaporation can be triggered' % ( buffer + toENDBFIELD) exit(1) s.wait(free) odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(evapdt) evap_ss = float(report['EVAP']['evapss']) s.analogwfm_add(evap_ss, [odtpow]) # ENDEVAP should be equal to image s.wait(evapdt) #Trigger new waveform to do trap frequency measurement buffer = 10.0 s.wait(buffer) odtpow2, bfield2, ENDFLICK = odt.odt_flicker(odtpow.last()) flicker_ss = float(report['FLICKER']['flicker_ss']) s.analogwfm_add(flicker_ss, [odtpow2, bfield2]) # Goes to when the modulation is finished s.wait(ENDFLICK)
s.digichg('hfimg',1) s.digichg('odt7595',0) #Do CNC, UVMOT, and field ramps s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) # Add evaporation ramp to ODT free = float(report['EVAP']['free']) image= float(report['EVAP']['image']) buffer=10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD : print 'Need at list ' + str(buffer) + 'ms of free evap before evaporation can be triggered' print 'Currently ramps end at %f , and free is %f' % (toENDBFIELD,free) exit(1) s.wait(free) odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(image) evap_ss = float(report['EVAP']['evapss']) bias = float(report['FESHBACH']['bias']) zcrampdt = float(report['ZEROCROSS']['zcrampdt']) zcdt = float(report['ZEROCROSS']['zcdt']) zcbias = float(report['ZEROCROSS']['zcbias']) bfield = wfm.wave('bfield',bias,evap_ss) #~ bfield.extend(odtpow.dt()-zcdt-zcrampdt) #~ bfield.linear(zcbias,zcrampdt) #~ bfield.extend(odtpow.dt()) bfield.extend(odtpow.dt())
s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) #Allow time for free evaporation (also helps provide buffer to reload the analog chs) buffer=10.0 #Time needed to re-latch the trigger for the AOUTS if EVAP.free < buffer + toENDBFIELD : print 'Need at list ' + str(buffer) + 'ms of EVAP.free evap before evaporation can be triggered' print 'Currently ramps end at %f , and EVAP.free is %f' % (toENDBFIELD,EVAP.free) exit(1) s.wait(EVAP.free) #Do Evap if int(EVAP.use_field_ramp) == 1: bfield, odtpow, ENDEVAP, cpowend, ipganalog= odt.odt_evap_field(EVAP.scale) else: odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(EVAP.scale) bfield = wfm.wave('bfield',FESHBACH.bias,EVAP.evapss) bfield.extend(odtpow.dt()) #Use the EVAP.image time equal to EVAP.image times EVAP.scale for the sequence after the part. EVAP.image = EVAP.image *EVAP.scale #Ramp the field to the zerocrossing bfield.linear(ZEROCROSS.zcbias,ZEROCROSS.zcrampdt) bfield.appendhold(ZEROCROSS.zcdt) odtpow.extend(bfield.dt()) ipganalog.extend(bfield.dt()) #Recompress with the ODT if int(EVAP.use_odt_lock) == 1:
s.digichg('odt7595',0) #Do CNC, UVMOT, and field ramps s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) print toENDBFIELD # Add evaporation ramp to ODT free = float(report['EVAP']['free']) evapdt= float(report['FLICKER']['evapdt']) buffer=10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD : print 'Need at list %.3f ms of free evap before evaporation can be triggered' % (buffer+toENDBFIELD) exit(1) s.wait(free) odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(evapdt) evap_ss = float(report['EVAP']['evapss']) s.analogwfm_add(evap_ss,[odtpow]) # ENDEVAP should be equal to image s.wait(evapdt) #Trigger new waveform to do trap frequency measurement buffer=10.0 s.wait(buffer) odtpow2, bfield2, ENDFLICK = odt.odt_flicker(odtpow.last()) flicker_ss = float(report['FLICKER']['flicker_ss']) s.analogwfm_add(flicker_ss,[odtpow2,bfield2]) # Goes to when the modulation is finished s.wait(ENDFLICK)
s, toENDBFIELD = highfield_uvmot.go_to_highfield(s) # Allow time for free evaporation (also helps provide buffer to reload the analog chs) buffer = 10.0 # Time needed to re-latch the trigger for the AOUTS if EVAP.free < buffer + toENDBFIELD: print "Need at list " + str(buffer) + "ms of EVAP.free evap before evaporation can be triggered" print "Currently ramps end at %f , and EVAP.free is %f" % (toENDBFIELD, EVAP.free) exit(1) s.wait(EVAP.free) # Do Evap if int(EVAP.use_field_ramp) == 1: bfield, odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap_field(EVAP.scale) else: odtpow, ENDEVAP, cpowend, ipganalog = odt.odt_evap(EVAP.scale) bfield = wfm.wave("bfield", FESHBACH.bias, EVAP.evapss) bfield.extend(odtpow.dt()) # Use the EVAP.image time equal to EVAP.image times EVAP.scale for the sequence after the part. EVAP.image = EVAP.image * EVAP.scale # Ramp the field to the zerocrossing bfield.linear(ZEROCROSS.zcbias, ZEROCROSS.zcrampdt) bfield.appendhold(ZEROCROSS.zcdt) odtpow.extend(bfield.dt()) ipganalog.extend(bfield.dt()) # Recompress with the ODT if int(EVAP.use_odt_lock) == 1:
s.wait(-switchdelay-quickdelay-2*switchdt-offdelay) #At this point the time sequence is at ENDUVMOT #This is the time until the end of the bfield ramp toENDBFIELD = biasrampdt + switchdelay + quickdelay + 2*switchdt + offdelay # Add evaporation ramp to ODT free = float(report['EVAP']['free']) image= float(report['EVAP']['image']) buffer=10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD : print 'Need at list ' + str(buffer) + 'ms of free evap before evaporation can be triggered' exit(1) s.wait(free) odtpow, ENDEVAP = odt.odt_evap(image) evap_ss = float(report['EVAP']['evapss']) s.analogwfm_add(evap_ss,[odtpow]) # ENDEVAP should be equal to image s.wait(image) #RELEASE FROM IR TRAP s.digichg('odtttl',0) odttof = float(report['ODT']['odttof']) s.wait(odttof) #TAKE PICTURES light = 'probe' #light = 'motswitch' #light = 'bragg'
#At this point the time sequence is at ENDUVMOT #This is the time until the end of the bfield ramp toENDBFIELD = biasrampdt + switchdelay + quickdelay + 2 * switchdt + offdelay # Add evaporation ramp to ODT free = float(report['EVAP']['free']) image = float(report['EVAP']['image']) buffer = 10.0 #Time needed to re-latch the trigger for the AOUTS if free < buffer + toENDBFIELD: print 'Need at list ' + str( buffer) + 'ms of free evap before evaporation can be triggered' exit(1) s.wait(free) odtpow, ENDEVAP = odt.odt_evap(image) evap_ss = float(report['EVAP']['evapss']) s.analogwfm_add(evap_ss, [odtpow]) # ENDEVAP should be equal to image s.wait(image) #RELEASE FROM IR TRAP s.digichg('odtttl', 0) odttof = float(report['ODT']['odttof']) s.wait(odttof) #TAKE PICTURES light = 'probe' #light = 'motswitch' #light = 'bragg' trap_on_picture = 1