def crossbeam_evap(s, toENDBFIELD): #GET SECTION CONTENTS evp = gen.getsection('EVAP') lbf = gen.getsection('LATTICEBRAGGFIELD') # Add evaporation ramp to ODT, returns sequence right at the end of evaporation 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_evap(image) evap_ss = float(report['EVAP']['evapss']) # Set LCR preset value in the begining of evap 1 is lattice 0 is dimple lcr_preset = float(report['EVAP']['lcr_preset']) lcr1 = lattice.lattice_wave('lcr1',lcr_preset, evap_ss) lcr2 = lattice.lattice_wave('lcr2', lcr_preset, evap_ss) lcr3 = lattice.lattice_wave('lcr3', lcr_preset, evap_ss) lcr1.extend(ENDEVAP) lcr2.extend(ENDEVAP) lcr3.extend(ENDEVAP) s.analogwfm_add(evap_ss,[odtpow,ipganalog,lcr1,lcr2,lcr3]) #s.analogwfm_add(evap_ss,[odtpow]) # ENDEVAP should be equal to image s.wait(image) return s, cpowend
def crossbeam_evap(s, toENDBFIELD): #GET SECTION CONTENTS evp = gen.getsection('EVAP') lbf = gen.getsection('LATTICEBRAGGFIELD') # Add evaporation ramp to ODT, returns sequence right at the end of evaporation 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_evap(image) evap_ss = float(report['EVAP']['evapss']) # Set LCR preset value in the begining of evap 1 is lattice 0 is dimple lcr_preset = float(report['EVAP']['lcr_preset']) lcr1 = lattice.lattice_wave('lcr1', lcr_preset, evap_ss) lcr2 = lattice.lattice_wave('lcr2', lcr_preset, evap_ss) lcr3 = lattice.lattice_wave('lcr3', lcr_preset, evap_ss) lcr1.extend(ENDEVAP) lcr2.extend(ENDEVAP) lcr3.extend(ENDEVAP) s.analogwfm_add(evap_ss, [odtpow, ipganalog, lcr1, lcr2, lcr3]) #s.analogwfm_add(evap_ss,[odtpow]) # ENDEVAP should be equal to image s.wait(image) return s, cpowend
def crossbeam_evap_field_into_lattice(s, toENDBFIELD): #GET SECTION CONTENTS evp = gen.getsection('EVAP') lbf = gen.getsection('LATTICEBRAGGFIELD') # Add evaporation ramp to ODT, returns sequence right at the end of evaporation 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) bfield, odtpow, ENDEVAP, cpowend, ipganalog = odt_evap_field(image) evap_ss = float(report['EVAP']['evapss']) # Set LCR preset value in the begining of evap 1 is lattice 0 is dimple lcr_preset = float(report['EVAP']['lcr_preset']) lcr1 = lattice.lattice_wave('lcr1', lcr_preset, evap_ss) lcr2 = lattice.lattice_wave('lcr2', lcr_preset, evap_ss) lcr3 = lattice.lattice_wave('lcr3', lcr_preset, evap_ss) lcr1.extend(ENDEVAP) lcr2.extend(ENDEVAP) lcr3.extend(ENDEVAP) ir1 = lattice.lattice_wave('ir1pow', 0., evap_ss) ir2 = lattice.lattice_wave('ir2pow', 0., evap_ss) ir3 = lattice.lattice_wave('ir3pow', 0., evap_ss) gr1 = lattice.lattice_wave('greenpow1', 0., evap_ss) gr2 = lattice.lattice_wave('greenpow2', 0., evap_ss) gr3 = lattice.lattice_wave('greenpow3', 0., evap_ss) all = [ir1, ir2, ir3, gr1, gr2, gr3] pow = [evp.irpow, evp.irpow, evp.irpow, evp.grpow, evp.grpow, evp.grpow] for i, ch in enumerate(all): ch.appendhold(evp.latticet0) ch.tanhRise(pow[i], evp.latticedt, evp.tanhtau, evp.tanhshift) s.wait(evp.latticet0) s.digichg('irttl1', evp.irttl1) s.digichg('irttl2', evp.irttl2) s.digichg('irttl3', evp.irttl3) s.digichg('greenttl1', evp.irttl1) s.digichg('greenttl2', evp.irttl2) s.digichg('greenttl3', evp.irttl3) s.wait(-evp.latticet0) s.analogwfm_add(evap_ss, [ odtpow, ipganalog, bfield, ir1, ir2, ir3, gr1, gr2, gr3, lcr1, lcr2, lcr3 ]) # ENDEVAP should be equal to image s.wait(image) return s, cpowend
def crossbeam_evap_field_into_lattice(s, toENDBFIELD): #GET SECTION CONTENTS evp = gen.getsection('EVAP') lbf = gen.getsection('LATTICEBRAGGFIELD') # Add evaporation ramp to ODT, returns sequence right at the end of evaporation 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) bfield, odtpow, ENDEVAP, cpowend, ipganalog = odt_evap_field(image) evap_ss = float(report['EVAP']['evapss']) # Set LCR preset value in the begining of evap 1 is lattice 0 is dimple lcr_preset = float(report['EVAP']['lcr_preset']) lcr1 = lattice.lattice_wave('lcr1',lcr_preset, evap_ss) lcr2 = lattice.lattice_wave('lcr2', lcr_preset, evap_ss) lcr3 = lattice.lattice_wave('lcr3', lcr_preset, evap_ss) lcr1.extend(ENDEVAP) lcr2.extend(ENDEVAP) lcr3.extend(ENDEVAP) ir1 = lattice.lattice_wave('ir1pow', 0., evap_ss) ir2 = lattice.lattice_wave('ir2pow', 0., evap_ss) ir3 = lattice.lattice_wave('ir3pow', 0., evap_ss) gr1 = lattice.lattice_wave('greenpow1', 0., evap_ss) gr2 = lattice.lattice_wave('greenpow2', 0., evap_ss) gr3 = lattice.lattice_wave('greenpow3', 0., evap_ss) all = [ir1,ir2,ir3,gr1,gr2,gr3] pow = [evp.irpow, evp.irpow, evp.irpow, evp.grpow, evp.grpow, evp.grpow] for i,ch in enumerate(all): ch.appendhold( evp.latticet0 ) ch.tanhRise(pow[i], evp.latticedt, evp.tanhtau, evp.tanhshift) s.wait(evp.latticet0) s.digichg( 'irttl1', evp.irttl1) s.digichg( 'irttl2', evp.irttl2) s.digichg( 'irttl3', evp.irttl3) s.digichg( 'greenttl1', evp.irttl1) s.digichg( 'greenttl2', evp.irttl2) s.digichg( 'greenttl3', evp.irttl3) s.wait(-evp.latticet0) s.analogwfm_add(evap_ss,[odtpow,ipganalog, bfield,ir1,ir2,ir3,gr1,gr2,gr3,lcr1,lcr2,lcr3]) # ENDEVAP should be equal to image s.wait(image) return s, cpowend
print "...adding path " + p sys.path.append(p) import time t0=time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice #REPORT report=gen.getreport() #GET SECTION CONTENTS lbf = gen.getsection('LATTICEBRAGGFIELD') evap = gen.getsection('EVAP') zc = gen.getsection('ZEROCROSS') Andor= gen.getsection('ANDOR') Manta= gen.getsection('MANTA') #SEQUENCE stepsize = float(report['SEQ']['stepsize']) s=seq.sequence(stepsize) s=gen.initial(s) s.digichg('hfimg',1) s.digichg('odt7595',0) # Do CNC, UVMOT, and field ramps
sys.path.append(p) import time t0 = time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report = gen.getreport() # ---GET SECTION CONTENTS SEQ = gen.getsection("SEQ") EVAP = gen.getsection("EVAP") ANDOR = gen.getsection("ANDOR") ODT = gen.getsection("ODT") FB = gen.getsection("FESHBACH") ZC = gen.getsection("ZEROCROSS") L = gen.getsection("LATTICE") # ---SEQUENCE s = seq.sequence(SEQ.stepsize) s = gen.initial(s) # Get hfimg ready s.digichg("hfimg", 1) # If using analoghfimg get it ready
import shutil import pprint import matplotlib as mpl mpl.use("Agg") # This is for making the pyplot not complaining when there is no x server import copy import re import matplotlib.pyplot as plt import manta from scipy import interpolate from bfieldwfm import gradient_wave # GET SECTION CONTENTS DIMPLE = gen.getsection("DIMPLE") DL = gen.getsection("DIMPLELATTICE") ANDOR = gen.getsection("ANDOR") MANTA = gen.getsection("MANTA") class lattice_wave(wfm.wave): """The lattice_wave class helps construct the waveforms that will be used to ramp the lattice. Several methods are added that allow doing special ramps """ def interpolate_subramp(pts, yoffset): newpts = []
print "...adding path " + p sys.path.append(p) import time t0=time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report=gen.getreport() #---GET SECTION CONTENTS SEQ = gen.getsection('SEQ') EVAP = gen.getsection('EVAP') ANDOR = gen.getsection('ANDOR') ODT = gen.getsection('ODT') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') LI = gen.getsection('LATTICEINT') #---SEQUENCE s=seq.sequence(SEQ.stepsize) s=gen.initial(s) #Get hfimg ready s.digichg('hfimg',1) #If using analoghfimg get it ready
print "...adding path " + p sys.path.append(p) import time t0 = time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice # REPORT report = gen.getreport() # GET SECTION CONTENTS DIMPLE = gen.getsection("DIMPLE") EVAP = gen.getsection("EVAP") FB = gen.getsection("FESHBACH") ZC = gen.getsection("ZEROCROSS") ANDOR = gen.getsection("ANDOR") DL = gen.getsection("DIMPLELATTICE") MANTA = gen.getsection("MANTA") print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = %s\n" % (DL.camera) # When only use one camera the reading of DL.camera will be a string instead of a list of string. As a consequence we need to check the type. gen.save_to_report("SEQ", "camera", DL.camera if type(DL.camera) == type("string") else ",".join(DL.camera)) # SEQUENCE
import math import gen, manta ANDOR = gen.getsection("ANDOR") def getAndorConf(): # The parameters are loaded from the andorconf.INI file from configobj import ConfigObj andorconf = ConfigObj("L:/software/apparatus3/andor/andorconf.INI") return andorconf def OpenShuttersFluor(s): # open camera and probe beam shutters (back in time) # for test purposes give it an extra 1.0ms test = 2.0 # cameraSHUT=3.4+test #full-on time for the camera shutter (3.4ms) # s.wait(-cameraSHUT) # s.digichg('camerashut',1) # s.wait(cameraSHUT) motSHUT = 5.5 + test # full-on time for the MOT shutter s.wait(-motSHUT) s.digichg("motshutter", 0) s.wait(motSHUT) return s def OpenProbeShutter(s):
import os sys.path.append(os.path.split(os.path.dirname(os.path.realpath(__file__)))[0]) import seqconf for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0 = time.time() import sys, math import seq, wfm, gen, uvmot, basler, andor report = gen.getreport() #GET SECTION CONTENTS UVSEC = gen.getsection('UV') ODTSEC = gen.getsection('ODT') BASLER = gen.getsection('BASLER') ANDOR = gen.getsection('ANDOR') print "\n----- basler_uv_repump.py -----\n" #PARAMETERS stepsize = float(report['SEQ']['stepsize']) tof = float(report['BASLER']['tof']) preexp = float(report['BASLER']['preexp']) texp = float(report['BASLER']['exp']) postexp = float(report['BASLER']['postexp']) #SEQUENCE s = seq.sequence(stepsize)
VMaxd['greenpow3'] = 10.0 #V min Servo VMinServod = {} VMinServod['ir1pow'] = 0.022 + 0.005 VMinServod['ir2pow'] = 0.019 + 0.005 VMinServod['ir3pow'] = 0.035 + 0.005 VMinServod['greenpow1'] = 0.014 + 0.010 VMinServod['greenpow2'] = 0.020 + 0.005 VMinServod['greenpow3'] = 0.020 + 0.005 try: ODT = gen.getsection('ODT') ODTCALIB = gen.getsection('ODTCALIB') if ODT.use_servo == 0: b = ODTCALIB.b_nonservo m1 = ODTCALIB.m1_nonservo m2 = ODTCALIB.m2_nonservo m3 = ODTCALIB.m3_nonservo kink1 = ODTCALIB.kink1_nonservo kink2 = ODTCALIB.kink2_nonservo elif ODT.use_servo == 1: b = ODTCALIB.b m1 = ODTCALIB.m1 m2 = ODTCALIB.m2 m3 = 0. kink1 = ODTCALIB.kink kink2 = 11.
sys.path.append(p) import time t0=time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report=gen.getreport() #GET SECTION CONTENTS SEQ = gen.getsection('SEQ') EVAP = gen.getsection('EVAP') ANDOR = gen.getsection('ANDOR') ODT = gen.getsection('ODT') FESHBACH = gen.getsection('FESHBACH') ZEROCROSS = gen.getsection('ZEROCROSS') RF = gen.getsection('RF') #SEQUENCE s=seq.sequence(SEQ.stepsize) s=gen.initial(s) s.wait(0.0) #Get hfimg ready s.digichg('hfimg',1)
import pprint import matplotlib as mpl mpl.use('Agg') # This is for making the pyplot not complaining when there is no x server numpy.seterr(all='raise') import copy import re import matplotlib.pyplot as plt import manta from scipy import interpolate from bfieldwfm import gradient_wave #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') DL = gen.getsection('DIMPLELATTICE') ANDOR = gen.getsection('ANDOR') MANTA = gen.getsection('MANTA') RT = gen.getsection('ROUNDTRIP') class lattice_wave(wfm.wave): """The lattice_wave class helps construct the waveforms that will be used to ramp the lattice. Several methods are added that allow doing special ramps """
import matplotlib as mpl #mpl.use('Agg') # This is for making the pyplot not complaining when there is no x server numpy.seterr(all='raise') np = numpy import copy import re import matplotlib.pyplot as plt import manta from scipy import interpolate from bfieldwfm import gradient_wave #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') DL = gen.getsection('DIMPLELATTICE') ANDOR = gen.getsection('ANDOR') MANTA = gen.getsection('MANTA') RT = gen.getsection('ROUNDTRIP') def makeplot(ylist, ss=None, name=None): """useful for debugging stuff""" figure = plt.figure(figsize=(5., 4.)) ax0 = figure.add_subplot(111) for y in ylist: if isinstance(y, wfm.wave): ax0.plot(y.ss * np.arange(len(y.y)), y.y) else: if ss is not None:
print "...adding path " + p sys.path.append(p) import time t0 = time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice, physics from bfieldwfm import gradient_wave #REPORT report = gen.getreport() #gen.get_lattice_webcam_data() #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') EVAP = gen.getsection('EVAP') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') ANDOR = gen.getsection('ANDOR') SHUNT = gen.getsection('SHUNT') #SEQUENCE stepsize = float(report['SEQ']['stepsize']) s = seq.sequence(stepsize) s = gen.initial(s) s.digichg('hfimg', 1) s.digichg('odt7595', 0) #Get hfimg ready s.digichg('hfimg', 1)
import math import gen,manta ANDOR = gen.getsection('ANDOR') def getAndorConf(): #The parameters are loaded from the andorconf.INI file from configobj import ConfigObj andorconf=ConfigObj('L:/software/apparatus3/andor/andorconf.INI') return andorconf def OpenShuttersFluor(s): #open camera and probe beam shutters (back in time) #for test purposes give it an extra 1.0ms test=2.0 #cameraSHUT=3.4+test #full-on time for the camera shutter (3.4ms) #s.wait(-cameraSHUT) #s.digichg('camerashut',1) #s.wait(cameraSHUT) motSHUT=5.5+test#full-on time for the MOT shutter s.wait(-motSHUT) s.digichg('motshutter',0) s.wait(motSHUT) return s def OpenProbeShutter(s): probeSHUT=5.0#full-on time for the probe shutter s.wait(-probeSHUT) s.digichg('prshutter',0)
"""Constructs the ramps for doing UV cooling and fluorescence imaging """ import wfm, gen, math, cnc report=gen.getreport() def f(sec,key): global report return float(report[sec][key]) #GET SECTION CONTENTS uvsec = gen.getsection('UV') def uvRamps(motpow, bfield, ENDCNC): ss=f('CNC','cncstepsize') uvdt = f('UV','dt') #---Ramp down red power motpow.linear( 0.002, uvdt) #0.002 is max attenuation before RF switch #---Bfield ramp dtload = f('UV','dtload_bfield') dtcnc = f('UV','dtcnc_bfield') uvhold = f('UV','uvhold') #OBSOLETE #bfield.linear( f('UV','uvbfield'), uvdt) #bfield.appendhold(dtload)
sys.path.append(p) import time t0=time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report=gen.getreport() #GET SECTION CONTENTS SEQ = gen.getsection('SEQ') EVAP = gen.getsection('EVAP') ANDOR = gen.getsection('ANDOR') ODT = gen.getsection('ODT') FESHBACH = gen.getsection('FESHBACH') ZEROCROSS = gen.getsection('ZEROCROSS') RF = gen.getsection('RF') if EVAP.andor2 == 1: print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = andor,andor2\n" gen.save_to_report('SEQ','camera', 'andor,andor2') #SEQUENCE s=seq.sequence(SEQ.stepsize)
import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report=gen.getreport() #PARAMETERS stepsize = float(report['SEQ']['stepsize']) tof = float(report['ANDOR']['tof']) exp = float(report['ANDOR']['exp']) noatoms = float(report['ANDOR']['noatoms']) #GET SECTION CONTENTS evapsec = gen.getsection('EVAP') #SEQUENCE s=seq.sequence(stepsize) s=gen.initial(s) s.wait(0.0) s.digichg('hfimg',1) #s.digichg('hfimg2',0) s.digichg('odt7595',0) if evapsec.lattice == 1.0: s.digichg('irttl1', evapsec.irttl1) s.digichg('irttl2', evapsec.irttl2)
for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0 = time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice, roundtrip #REPORT report = gen.getreport() #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') EVAP = gen.getsection('EVAP') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') ANDOR = gen.getsection('ANDOR') DL = gen.getsection('DIMPLELATTICE') MANTA = gen.getsection('MANTA') LATTICEMOD = gen.getsection('LatticeMod') RT = gen.getsection('ROUNDTRIP') print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = %s\n" % (DL.camera) # When only use one camera the reading of DL.camera will be a string instead of a list of string. As a consequence we need to check the type. gen.save_to_report( 'SEQ', 'camera', DL.camera if type(DL.camera) == type("string") else ",".join(DL.camera))
for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0 = time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice #REPORT report = gen.getreport() #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') EVAP = gen.getsection('EVAP') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') ANDOR = gen.getsection('ANDOR') DL = gen.getsection('DIMPLELATTICE') MANTA = gen.getsection('MANTA') print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = %s\n" % (DL.camera) # When only use one camera the reading of DL.camera will be a string instead of a list of string. As a consequence we need to check the type. gen.save_to_report( 'SEQ', 'camera', DL.camera if type(DL.camera) == type("string") else ",".join(DL.camera)) #SEQUENCE
""" Does CNCMOT then loads UVMOT and then ramps up to high field. Atoms in the trap at high field are the starting point for many experiments""" import wfm, gen, math, cnc, uvmot, odt report=gen.getreport() #GET SECTION CONTENTS SEQ = gen.getsection('SEQ') UV = gen.getsection('UV') SHUNT = gen.getsection('SHUNT') FB = gen.getsection('FESHBACH') ODT = gen.getsection('ODT') def go_to_highfield(s): #---Keep ODT on odton = gen.bstr('ODT',report) if odton == True: s.digichg('odtttl',1) s.wait(20.0) ss = SEQ.analogstepsize #---Cool and Compress MOT #---ENDCNC is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() #---Load UVMOT from CNCMOT uvpow2, uvpow, motpow, bfield, ENDUVMOT = uvmot.uvRamps(motpow, bfield, ENDCNC)
"""Constructs ramps relevant to the ODT """ import sys #~ sys.path.append('L:/software/apparatus3/seq') #~ sys.path.append('L:/software/apparatus3/seq/utilspy') #~ sys.path.append('L:/software/apparatus3/seq/seqspy') #~ sys.path.append('L:/software/apparatus3/convert') import seqconf, wfm, gen, math, cnc, time, os, numpy, hashlib, evap, lattice, physics, errormsg report=gen.getreport() from bfieldwfm import gradient_wave #GET SECTION CONTENTS ODT = gen.getsection('ODT') EVAP = gen.getsection('EVAP') DIMPLE = gen.getsection('DIMPLE') FB = gen.getsection('FESHBACH') LBF = gen.getsection('LATTICEBRAGGFIELD') IL = gen.getsection('INTOLATTICE') def f(sec,key): global report return float(report[sec][key]) def odt_evap(scale=1.0): odtpow = odt_wave('odtpow', ODT.p0, ODT.evapss) ### SELECT EVAP TRAJECTORY HERE###
#~ sys.path.append('L:/software/apparatus3/seq/seqspy') #~ sys.path.append('L:/software/apparatus3/convert') import seqconf, wfm, gen, math, cnc, time, os, numpy, hashlib, evap, physics, errormsg, odt, bfieldwfm import shutil import matplotlib as mpl mpl.use( 'Agg' ) # This is for making the pyplot not complaining when there is no x server import matplotlib.pyplot as plt from scipy import interpolate from bfieldwfm import gradient_wave #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') DL = gen.getsection('DIMPLELATTICE') ANDOR = gen.getsection('ANDOR') MANTA = gen.getsection('MANTA') class lattice_wave(wfm.wave): """The lattice_wave class helps construct the waveforms that will be used to ramp the lattice. Several methods are added that allow doing special ramps """ def interpolate_subramp(pts, yoffset): newpts = []
import seqconf, wfm, gen, math, cnc, time, os, numpy, hashlib, evap, physics, errormsg, odt, bfieldwfm import shutil import pprint import matplotlib as mpl mpl.use('Agg') # This is for making the pyplot not complaining when there is no x server import copy import re import matplotlib.pyplot as plt import manta from scipy import interpolate from bfieldwfm import gradient_wave #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') DL = gen.getsection('DIMPLELATTICE') ANDOR = gen.getsection('ANDOR') MANTA = gen.getsection('MANTA') class lattice_wave(wfm.wave): """The lattice_wave class helps construct the waveforms that will be used to ramp the lattice. Several methods are added that allow doing special ramps """ def interpolate_subramp( pts , yoffset):
sys.path.append(os.path.split(os.path.dirname(os.path.realpath(__file__)))[0]) import seqconf for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0 = time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report = gen.getreport() #---GET SECTION CONTENTS SEQ = gen.getsection('SEQ') EVAP = gen.getsection('EVAP') ANDOR = gen.getsection('ANDOR') ODT = gen.getsection('ODT') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') LI = gen.getsection('LATTICEINT') #---SEQUENCE s = seq.sequence(SEQ.stepsize) s = gen.initial(s) #Get hfimg ready s.digichg('hfimg', 1) #If using analoghfimg get it ready
print "...adding path " + p sys.path.append(p) import time t0=time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice from bfieldwfm import gradient_wave #REPORT report=gen.getreport() #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') EVAP = gen.getsection('EVAP') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') ANDOR= gen.getsection('ANDOR') SHUNT= gen.getsection('SHUNT') #SEQUENCE stepsize = float(report['SEQ']['stepsize']) s=seq.sequence(stepsize) s=gen.initial(s) s.digichg('hfimg',1) s.digichg('odt7595',0) #Get hfimg ready
import time t0 = time.time() import sys, math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot report = gen.getreport() # GET SECTION CONTENTS SEQ = gen.getsection("SEQ") EVAP = gen.getsection("EVAP") ANDOR = gen.getsection("ANDOR") ODT = gen.getsection("ODT") FESHBACH = gen.getsection("FESHBACH") ZEROCROSS = gen.getsection("ZEROCROSS") RF = gen.getsection("RF") if EVAP.andor2 == 1: print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = andor,andor2\n" gen.save_to_report("SEQ", "camera", "andor,andor2") # SEQUENCE s = seq.sequence(SEQ.stepsize)
for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0=time.time() import math import seq, wfm, gen, cnc, odt, andor, highfield_uvmot, manta, lattice #REPORT report=gen.getreport() #GET SECTION CONTENTS DIMPLE = gen.getsection('DIMPLE') EVAP = gen.getsection('EVAP') FB = gen.getsection('FESHBACH') ZC = gen.getsection('ZEROCROSS') ANDOR = gen.getsection('ANDOR') DL = gen.getsection('DIMPLELATTICE') MANTA = gen.getsection('MANTA') LATTICEMOD = gen.getsection('LatticeMod') print "\n...SEQ:camera will be modified in report" print "\tNEW SEQ:camera = %s\n" % ( DL.camera ) # When only use one camera the reading of DL.camera will be a string instead of a list of string. As a consequence we need to check the type. gen.save_to_report('SEQ','camera', DL.camera if type(DL.camera) == type("string") else ",".join(DL.camera))
VMaxd['ir3pow'] = 10.0 VMaxd['greenpow1'] = 3.12 VMaxd['greenpow2'] = 3.18 VMaxd['greenpow3'] = 10.0 #V min Servo VMinServod = {} VMinServod['ir1pow'] = 0.022 + 0.005 VMinServod['ir2pow'] = 0.019 + 0.005 VMinServod['ir3pow'] = 0.035 + 0.005 VMinServod['greenpow1'] = 0.014 + 0.010 VMinServod['greenpow2'] = 0.020 + 0.005 VMinServod['greenpow3'] = 0.020 + 0.005 try: ODT = gen.getsection('ODT') ODTCALIB = gen.getsection('ODTCALIB') if ODT.use_servo == 0: b = ODTCALIB.b_nonservo m1 = ODTCALIB.m1_nonservo m2 = ODTCALIB.m2_nonservo m3 = ODTCALIB.m3_nonservo kink1 = ODTCALIB.kink1_nonservo kink2 = ODTCALIB.kink2_nonservo elif ODT.use_servo == 1: b = ODTCALIB.b m1 = ODTCALIB.m1 m2 = ODTCALIB.m2 m3 = 0. kink1 = ODTCALIB.kink kink2 = 11.
for p in seqconf.import_paths(): print "...adding path " + p sys.path.append(p) import time t0=time.time() import sys, math import seq, wfm, gen, uvmot, basler, andor report=gen.getreport() #GET SECTION CONTENTS UVSEC = gen.getsection('UV') ODTSEC = gen.getsection('ODT') BASLER = gen.getsection('BASLER') ANDOR = gen.getsection('ANDOR') print "\n----- basler_uv_repump.py -----\n" #PARAMETERS stepsize =float(report['SEQ']['stepsize']) tof =float(report['BASLER']['tof']) preexp =float(report['BASLER']['preexp']) texp =float(report['BASLER']['exp']) postexp =float(report['BASLER']['postexp']) #SEQUENCE