Example #1
0
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
Example #2
0
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)
Example #4
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)
Example #5
0
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
Example #8
0
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