def run(s, camera): global report ss = f('CNC', 'cncstepsize') # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcoolRamps( motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps( motpow, repdet, trapdet, reppow, trappow, bfield, camera) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) #Add the waveforms s.analogwfm_add( ss, [motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDUVMOT = ss * math.ceil(ENDUVMOT / ss) #insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr('CNC', report) == True else 0 s.digichg('quick', quickval) s.wait(10.0) #insert UV pulse s.wait(ENDCNC) s.wait(f('UVRED', 'uvtime')) #Shut down the UVAOM's and open the shutter s.wait(-50.0) s.digichg('uvaom1', 0) s.digichg('uvaom2', 0) s.digichg('uvshutter', 1) s.wait(50.0) #Turn on UVAOM s.digichg('uvaom1', 1) s.wait(-f('UVRED', 'uvtime') - ENDCNC) #Go to MOT release time turn off UV and set QUICK back to low s.wait(ENDUVMOT) s.digichg('uvaom1', 0) s.digichg('quick', 0) #print s.tcur return s, ENDUVMOT
def run(s,camera): global report ss=f('CNC','cncstepsize') # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcoolRamps(motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps(motpow, repdet, trapdet, reppow, trappow, bfield,camera) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) #Add the waveforms s.analogwfm_add(ss,[ motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDUVMOT = ss*math.ceil(ENDUVMOT/ss) #insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr('CNC',report) == True else 0 s.digichg('quick',quickval) s.wait(10.0) #insert UV pulse s.wait(ENDCNC) s.wait(f('UVRED','uvtime')) #Shut down the UVAOM's and open the shutter s.wait(-50.0) s.digichg('uvaom1',0) s.digichg('uvaom2',0) s.digichg('uvshutter',1) s.wait(50.0) #Turn on UVAOM s.digichg('uvaom1',1) s.wait(-f('UVRED','uvtime') - ENDCNC) #Go to MOT release time turn off UV and set QUICK back to low s.wait(ENDUVMOT) s.digichg('uvaom1',0) s.digichg('quick',0) #print s.tcur return s, ENDUVMOT
ss=float(report['CNC']['cncstepsize']) # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcooling.uvcoolRamps(motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC) # Optical pumping motpow, repdet, trapdet, reppow, trappow, bfield, ENDPUMPING= cnc.statetransfer_wprobe(motpow, repdet, trapdet, reppow, trappow, bfield) ENDPUMPING=ENDPUMPING-ENDUVMOT # Imaging camera='ANDOR' motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps(motpow, repdet, trapdet, reppow, trappow, bfield,camera) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) #Add the waveforms s.analogwfm_add(ss,[ motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDUVMOT = ss*math.ceil(ENDUVMOT/ss) #insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr('CNC',report) == True else 0 s.digichg('quick',quickval) s.wait(10.0)
#Keep ODT on ODT = gen.bstr('ODT', report) if ODT == True: s.digichg('odtttl', 1) s.wait(20.0) ss = float(report['CNC']['cncstepsize']) camera = 'ANDOR' # 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() # Set imaging values motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps( motpow, repdet, trapdet, reppow, trappow, bfield, camera) # Add modulation to odt odtpow = odt.odt_modulationRamps(ss, ENDCNC) #Add waveforms to sequence s.analogwfm_add(ss, [motpow, repdet, trapdet, reppow, trappow, bfield, odtpow]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDCNC = ss * math.ceil(ENDCNC / ss) #insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr('CNC', report) == True else 0 s.digichg('quick', quickval)
def run(s,camera): global report ss=f('CNC','cncstepsize') # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow2, uvpow, motpow, bfield, ENDUVMOT = uvRamps(motpow, bfield, ENDCNC) repdet.extend(ENDUVMOT) trapdet.extend(ENDUVMOT) reppow.extend(ENDUVMOT) trappow.extend(ENDUVMOT) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps(motpow, repdet, trapdet, reppow, trappow, bfield,camera) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) uvpow2.extend(maxDT) #---Add waveforms to sequence s.analogwfm_add(ss,[ motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow, uvpow2]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDUVMOT = ss*math.ceil(ENDUVMOT/ss) #---Insert QUICK pulse for fast ramping of the field gradient during CNC s.wait(-10.0) quickval = 1 if gen.bstr('CNC',report) == True else 0 s.digichg('quick',quickval) s.wait(10.0) s.wait(ENDCNC) #s.digichg('quick',0) #---Go back in time, shut down the UVAOM's and open the shutter s.wait(-50.0) s.digichg('uvaom1',0) s.digichg('uvaom2',0) s.digichg('uvshutter',1) s.wait(50.0) #---Turn OFF red light delay_red = float(report['UV']['delay_red']) s.wait(delay_red) s.digichg('motswitch',0) #s.digichg('motshutter',1) s.wait(-delay_red) #---Turn ON UVAOM's delay_uv = float(report['UV']['delay_uv']) s.wait(delay_uv) s.digichg('uvaom1',1) s.digichg('uvaom2',1) s.wait(-delay_uv) s.wait(-ENDCNC) #---Go to MOT release time and set QUICK back to low, turn off UV s.wait(ENDUVMOT) s.digichg('quick',0) s.digichg('uvaom1',0) s.digichg('uvaom2',0) #---Turn red light back on for imaging. s.digichg('motswitch',1) #print s.tcur return s, ENDUVMOT
def run_proberepump(s, camera): global report ss = f("CNC", "cncstepsize") # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcoolRamps_proberepump( motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC ) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps( motpow, repdet, trapdet, reppow, trappow, bfield, camera ) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) # Add the waveforms s.analogwfm_add(ss, [motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow]) # wait normally rounds down using floor, here the duration is changed before so that # the wait is rounded up ENDUVMOT = ss * math.ceil(ENDUVMOT / ss) # insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr("CNC", report) == True else 0 s.digichg("quick", quickval) s.wait(10.0) # go to end of CNC s.wait(ENDCNC) # insert UV pulse s.wait(f("UV", "uvtime")) # turn off MOT light , turn on probe to use as repump s.digichg("motswitch", 0) s.wait(-10.0) s.digichg("prshutter", 0) s.wait(10.0) s.digichg("probe", 1) s.digichg("uvaom1", 1) s.wait(-f("UV", "uvtime") - ENDCNC) # Go to MOT release time turn off UV and set QUICK back to low s.wait(ENDUVMOT) s.digichg("uvaom1", 0) s.digichg("quick", 0) # also turn off probe s.digichg("probe", 0) s.digichg("prshutter", 1) # print s.tcur return s, ENDUVMOT
def run_uvrepump(s, camera): global report ss = f("CNC", "cncstepsize") # Cool and Compress MOT # DURATION is defined as the time up to release from the MOT motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC = cnc.cncRamps() # Load UVMOT from CNCMOT uvfppiezo, uvpow2, uvpow, motpow, repdet, trapdet, reppow, trappow, bfield, ENDUVMOT = uvcoolRamps_repump( motpow, repdet, trapdet, reppow, trappow, bfield, ENDCNC ) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps( motpow, repdet, trapdet, reppow, trappow, bfield, camera ) uvfppiezo.extend(maxDT) uvpow.extend(maxDT) uvpow2.extend(maxDT) # Add the waveforms s.analogwfm_add(ss, [motpow, repdet, trapdet, bfield, reppow, trappow, uvfppiezo, uvpow, uvpow2]) # wait normally rounds down using floor, here the duration is changed before so that # the wait is rounded up ENDUVMOT = ss * math.ceil(ENDUVMOT / ss) # insert QUICK pulse for fast ramping of the field gradient s.wait(-10.0) quickval = 1 if gen.bstr("CNC", report) == True else 0 s.digichg("quick", quickval) s.wait(10.0) # insert UV pulse s.wait(ENDCNC) s.wait(f("UV", "uvtime")) # Shut down the UVAOM's and open the shutter s.wait(-50.0) s.digichg("uvaom1", 0) s.digichg("uvaom2", 0) s.digichg("uvshutter", 1) s.wait(50.0) # Turn on UVAOM s.digichg("uvaom1", 1) s.wait(-f("UV", "uvtime")) # Turn off Red Light Completly and turn UV repump after uvramp uvreptime = float(report["UV"]["uvreptime"]) s.wait(uvreptime) s.digichg("uvaom2", 1) s.digichg("motswitch", 0) s.wait(-uvreptime) s.wait(-ENDCNC) # Go to MOT release time turn off UV and set QUICK back to low s.wait(ENDUVMOT) # Turn red light back on for imaging. s.digichg("uvaom1", 0) s.digichg("quick", 0) s.digichg("uvaom2", 0) s.digichg("motswitch", 1) # print s.tcur return s, ENDUVMOT
def run(s,camera): global report ss=f('CNC','cncstepsize') # Cool and Compress MOT # DURATION 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 = uvRamps(motpow, bfield, ENDCNC) repdet.extend(ENDUVMOT) trapdet.extend(ENDUVMOT) reppow.extend(ENDUVMOT) trappow.extend(ENDUVMOT) # Imaging motpow, repdet, trapdet, reppow, trappow, bfield, maxDT = cnc.imagingRamps(motpow, repdet, trapdet, reppow, trappow, bfield,camera) uvpow.extend(maxDT) uvpow2.extend(maxDT) #---Add waveforms to sequence s.analogwfm_add(ss,[ motpow, repdet, trapdet, bfield, reppow, trappow, uvpow, uvpow2]) #wait normally rounds down using floor, here the duration is changed before so that #the wait is rounded up ENDUVMOT = ss*math.ceil(ENDUVMOT/ss) #---Insert QUICK pulse for fast ramping of the field gradient during CNC s.wait(-10.0) quickval = 1 if gen.bstr('CNC',report) == True else 0 s.digichg('quick',quickval) s.wait(10.0) s.wait(ENDCNC) #s.digichg('quick',0) #---Go back in time, shut down the UVAOM's and open the shutter s.wait(-50.0) s.digichg('uvaom1',0) s.digichg('uvaom2',0) s.digichg('uvshutter',1) s.wait(50.0) #---Turn OFF red light delay_red = float(report['UV']['delay_red']) s.wait(delay_red) s.digichg('motswitch',0) #s.digichg('motshutter',1) s.wait(-delay_red) #---Turn ON UVAOM's delay_uv = float(report['UV']['delay_uv']) s.wait(delay_uv) s.digichg('uvaom1',1) s.digichg('uvaom2',1) s.wait(-delay_uv) s.wait(-ENDCNC) #---Go to MOT release time and set QUICK back to low, turn off UV s.wait(ENDUVMOT) s.digichg('quick',0) s.digichg('uvaom1',0) s.digichg('uvaom2',0) #---Turn red light back on for imaging. s.digichg('motswitch',1) #print s.tcur return s, ENDUVMOT