Commit 28fdba13 authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

agrego meds

parent fef7ee12
...@@ -9,8 +9,8 @@ PORT = 60000 ...@@ -9,8 +9,8 @@ PORT = 60000
PASS = b'Secr3t Pa55W0rd' PASS = b'Secr3t Pa55W0rd'
from multiprocessing.connection import Client from multiprocessing.connection import Client
class IR_Scan_DCvoltages(EnvExperiment): class IR_Scan_DCvoltages_heating(EnvExperiment):
"""IR scan with DC voltages changes ability""" """IR scan with DC voltages changes and heating rate measurement habilities"""
def build(self): def build(self):
# Agrego kernel invariants a ver si mejoro algo de la performance # Agrego kernel invariants a ver si mejoro algo de la performance
kernel_invariants = getattr(self, 'kernel_invariants', set()) kernel_invariants = getattr(self, 'kernel_invariants', set())
...@@ -330,7 +330,7 @@ class IR_Scan_DCvoltages(EnvExperiment): ...@@ -330,7 +330,7 @@ class IR_Scan_DCvoltages(EnvExperiment):
self.enfriar_ion() self.enfriar_ion()
Sweep_type = "nona" #Sweep_type = "nona"
if Sweep_type == "none": if Sweep_type == "none":
iter_index = 0 iter_index = 0
......
...@@ -21,7 +21,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -21,7 +21,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserUV = UrukulCh(self, ch=2, freq=110.0, amp=0.3, name="UV") #corresponde a 0.7 Vpp self.laserUV = UrukulCh(self, ch=2, freq=110.0, amp=0.3, name="UV") #corresponde a 0.7 Vpp
self.laserIR1 = UrukulCh(self, ch=1, freq=208.0, amp=0.35, name="IR1") #corresponde a 0.8 Vpp self.laserIR1 = UrukulCh(self, ch=1, freq=208.0, amp=0.35, name="IR1") #corresponde a 0.8 Vpp
self.laserIR2 = UrukulCh(self, ch=3, freq=80.0, amp=0.2, name="IR2") #corresponde a 0.8 Vpp self.laserIR2 = UrukulCh(self, ch=3, freq=80.0, amp=0.2, name="IR2") #corresponde a 0.8 Vpp
self.laserIR2shift = UrukulCh(self, ch=0, freq=215.0, amp=0.5, name="IR2shift") #corresponde a 0.8 Vpp self.laserIR3 = UrukulCh(self, ch=0, freq=215.0, amp=0.5, name="IR3") #corresponde a 0.8 Vpp
self.setattr_argument("no_measures", self.setattr_argument("no_measures",
NumberValue(2000, min=1, ndecimals=0, step=1), NumberValue(2000, min=1, ndecimals=0, step=1),
...@@ -58,6 +58,15 @@ class IR_Scan_simple(EnvExperiment): ...@@ -58,6 +58,15 @@ class IR_Scan_simple(EnvExperiment):
NumberValue(0.3, min=0.0, max=0.8), NumberValue(0.3, min=0.0, max=0.8),
"Cooling params") "Cooling params")
self.setattr_argument(f"IR3_cooling_freq",
NumberValue(215*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Cooling params")
self.setattr_argument(f"IR3_cooling_amp",
NumberValue(0.50, min=0.0, max=0.8),
"Cooling params")
self.setattr_argument(f"UV_CPT_freq", self.setattr_argument(f"UV_CPT_freq",
NumberValue(110*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz), NumberValue(110*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"CPT params") "CPT params")
...@@ -74,6 +83,13 @@ class IR_Scan_simple(EnvExperiment): ...@@ -74,6 +83,13 @@ class IR_Scan_simple(EnvExperiment):
NumberValue(0.3, min=0., max=0.8), NumberValue(0.3, min=0., max=0.8),
"CPT params") "CPT params")
self.setattr_argument(f"IR3_CPT_freq",
NumberValue(215*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"CPT params")
self.setattr_argument(f"IR3_CPT_amp",
NumberValue(0.5, min=0., max=0.8),
"CPT params")
self.setattr_argument(f"t_cool", self.setattr_argument(f"t_cool",
NumberValue(1*ms, unit='ms', scale=ms, min=0.001*ms), NumberValue(1*ms, unit='ms', scale=ms, min=0.001*ms),
...@@ -126,12 +142,18 @@ class IR_Scan_simple(EnvExperiment): ...@@ -126,12 +142,18 @@ class IR_Scan_simple(EnvExperiment):
self.set_dataset("IR2_cooling_freq", self.IR2_cooling_freq, broadcast=False, archive=True) self.set_dataset("IR2_cooling_freq", self.IR2_cooling_freq, broadcast=False, archive=True)
self.set_dataset("IR2_cooling_amp", self.IR2_cooling_amp, broadcast=False, archive=True) self.set_dataset("IR2_cooling_amp", self.IR2_cooling_amp, broadcast=False, archive=True)
self.set_dataset("IR3_cooling_freq", self.IR3_cooling_freq, broadcast=False, archive=True)
self.set_dataset("IR3_cooling_amp", self.IR3_cooling_amp, broadcast=False, archive=True)
self.set_dataset("UV_CPT_freq", self.UV_CPT_freq, broadcast=False, archive=True) self.set_dataset("UV_CPT_freq", self.UV_CPT_freq, broadcast=False, archive=True)
self.set_dataset("UV_CPT_amp", self.UV_CPT_amp, broadcast=False, archive=True) self.set_dataset("UV_CPT_amp", self.UV_CPT_amp, broadcast=False, archive=True)
self.set_dataset("IR2_CPT_freq", self.IR2_CPT_freq, broadcast=False, archive=True) self.set_dataset("IR2_CPT_freq", self.IR2_CPT_freq, broadcast=False, archive=True)
self.set_dataset("IR2_CPT_amp", self.IR2_CPT_amp, broadcast=False, archive=True) self.set_dataset("IR2_CPT_amp", self.IR2_CPT_amp, broadcast=False, archive=True)
self.set_dataset("IR3_CPT_freq", self.IR3_CPT_freq, broadcast=False, archive=True)
self.set_dataset("IR3_CPT_amp", self.IR3_CPT_amp, broadcast=False, archive=True)
self.set_dataset("t_cool", self.t_cool, broadcast=False, archive=True) self.set_dataset("t_cool", self.t_cool, broadcast=False, archive=True)
self.set_dataset("t_trans", self.t_trans, broadcast=False, archive=True) self.set_dataset("t_trans", self.t_trans, broadcast=False, archive=True)
self.set_dataset("t_readout", self.t_readout, broadcast=False, archive=True) self.set_dataset("t_readout", self.t_readout, broadcast=False, archive=True)
...@@ -202,9 +224,9 @@ class IR_Scan_simple(EnvExperiment): ...@@ -202,9 +224,9 @@ class IR_Scan_simple(EnvExperiment):
finalUV_amp = self.get_dataset("UV_amp") finalUV_amp = self.get_dataset("UV_amp")
finalIR2_freq = self.get_dataset("IR2_freq") finalIR2_freq = self.get_dataset("IR2_freq")
finalIR2_amp = self.get_dataset("IR2_amp") finalIR2_amp = self.get_dataset("IR2_amp")
#finalIR2shift_freq = self.get_dataset("IR2shift_freq") #finalIR3_freq = self.get_dataset("IR3_freq")
#finalIR2shift_amp = self.get_dataset("IR2shift_amp") #finalIR3_amp = self.get_dataset("IR3_amp")
return [finalIR1_freq, finalIR1_amp, finalUV_freq, finalUV_amp, finalIR2_freq, finalIR2_amp]#, finalIR2shift_freq, finalIR2shift_amp] return [finalIR1_freq, finalIR1_amp, finalUV_freq, finalUV_amp, finalIR2_freq, finalIR2_amp]#, finalIR3_freq, finalIR3_amp]
@kernel @kernel
...@@ -222,7 +244,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -222,7 +244,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.on() self.laserIR1.on()
self.laserIR2.on() self.laserIR2.on()
self.laserIR2shift.on() self.laserIR3.on()
self.laserUV.on() self.laserUV.on()
self.enfriar_ion() self.enfriar_ion()
...@@ -267,7 +289,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -267,7 +289,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.set_frequency(final[0], final[1], profile=1) self.laserIR1.set_frequency(final[0], final[1], profile=1)
self.laserUV.set_frequency(final[2], final[3], profile=1) self.laserUV.set_frequency(final[2], final[3], profile=1)
self.laserIR2.set_frequency(final[4], final[5], profile=1) self.laserIR2.set_frequency(final[4], final[5], profile=1)
self.laserIR2shift.set_frequency(215*MHz, 0.5, profile=1) self.laserIR3.set_frequency(215*MHz, 0.5, profile=1)
print("jose maria listorti") print("jose maria listorti")
...@@ -283,16 +305,16 @@ class IR_Scan_simple(EnvExperiment): ...@@ -283,16 +305,16 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.set_channel() self.laserIR1.set_channel()
self.laserUV.set_channel() self.laserUV.set_channel()
self.laserIR2.set_channel() self.laserIR2.set_channel()
self.laserIR2shift.set_channel() self.laserIR3.set_channel()
self.laserIR1.set_frequency(self.IR1_cooling_freq, self.IR1_cooling_amp, profile=0) self.laserIR1.set_frequency(self.IR1_cooling_freq, self.IR1_cooling_amp, profile=0)
self.laserIR2shift.set_frequency(215*MHz, 0.5, profile=0) self.laserIR3.set_frequency(215*MHz, 0.5, profile=0)
self.laserUV.set_frequency(self.UV_cooling_freq, self.UV_cooling_amp, profile=0) self.laserUV.set_frequency(self.UV_cooling_freq, self.UV_cooling_amp, profile=0)
self.laserIR2.set_frequency(self.IR2_cooling_freq, self.IR2_cooling_amp, profile=0) self.laserIR2.set_frequency(self.IR2_cooling_freq, self.IR2_cooling_amp, profile=0)
self.laserIR1.set_channel(profile=1) self.laserIR1.set_channel(profile=1)
self.core.break_realtime() self.core.break_realtime()
self.laserUV.set_channel(profile=1) self.laserUV.set_channel(profile=1)
self.core.break_realtime() self.core.break_realtime()
self.laserIR2shift.set_channel(profile=1) self.laserIR3.set_channel(profile=1)
self.core.break_realtime() self.core.break_realtime()
self.laserIR2.set_channel(profile=1) self.laserIR2.set_channel(profile=1)
self.core.break_realtime() self.core.break_realtime()
...@@ -301,7 +323,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -301,7 +323,7 @@ class IR_Scan_simple(EnvExperiment):
self.core.break_realtime() self.core.break_realtime()
self.laserIR2.set_frequency(self.IR2_CPT_freq, self.IR2_CPT_amp, profile=1) self.laserIR2.set_frequency(self.IR2_CPT_freq, self.IR2_CPT_amp, profile=1)
self.core.break_realtime() self.core.break_realtime()
self.laserIR2shift.set_frequency(215*MHz, 0.5, profile=1) self.laserIR3.set_frequency(215*MHz, 0.5, profile=1)
#self.laserTISA.set_frequency(self.TISA_CPT_freq, 0.035, profile=1) #self.laserTISA.set_frequency(self.TISA_CPT_freq, 0.035, profile=1)
self.core.break_realtime() self.core.break_realtime()
#self.laserIR1.set_channel(profile=2) #self.laserIR1.set_channel(profile=2)
...@@ -310,11 +332,11 @@ class IR_Scan_simple(EnvExperiment): ...@@ -310,11 +332,11 @@ class IR_Scan_simple(EnvExperiment):
#self.core.break_realtime() #self.core.break_realtime()
#self.laserIR2.set_channel(profile=2) #self.laserIR2.set_channel(profile=2)
#self.core.break_realtime() #self.core.break_realtime()
#self.laserIR2shift.set_channel(profile=2) #self.laserIR3.set_channel(profile=2)
#self.core.break_realtime() #self.core.break_realtime()
#self.laserIR1.set_frequency(self.IR1_cooling_freq, self.IR1_cooling_amp, profile=2) #self.laserIR1.set_frequency(self.IR1_cooling_freq, self.IR1_cooling_amp, profile=2)
#self.core.break_realtime() #self.core.break_realtime()
#self.laserIR2shift.set_frequency(270*MHz, 0.7, profile=2) #self.laserIR3.set_frequency(270*MHz, 0.7, profile=2)
#self.core.break_realtime() #self.core.break_realtime()
#self.laserUV.set_frequency(self.UV_cooling_freq, self.UV_cooling_amp, profile=2) #self.laserUV.set_frequency(self.UV_cooling_freq, self.UV_cooling_amp, profile=2)
#self.core.break_realtime() #self.core.break_realtime()
...@@ -331,7 +353,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -331,7 +353,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.select_profile(0) # Pongo el laser en el perfil referencia self.laserIR1.select_profile(0) # Pongo el laser en el perfil referencia
self.laserUV.select_profile(0) # Pongo el laser en el perfil referencia self.laserUV.select_profile(0) # Pongo el laser en el perfil referencia
self.laserIR2.select_profile(0) self.laserIR2.select_profile(0)
self.laserIR2shift.select_profile(0) self.laserIR3.select_profile(0)
@kernel @kernel
def calentar_ion(self): def calentar_ion(self):
...@@ -345,7 +367,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -345,7 +367,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserUV.select_profile(1) # Paso al perfil que cambia self.laserUV.select_profile(1) # Paso al perfil que cambia
self.laserIR1.select_profile(1) # Paso al perfil que cambia self.laserIR1.select_profile(1) # Paso al perfil que cambia
self.laserIR2.select_profile(1) # Paso al perfil que cambia self.laserIR2.select_profile(1) # Paso al perfil que cambia
self.laserIR2shift.select_profile(1) self.laserIR3.select_profile(1)
delay(self.t_trans) delay(self.t_trans)
here = self.pmt.gate_rising(self.t_readout) # Que mida durante t_readout here = self.pmt.gate_rising(self.t_readout) # Que mida durante t_readout
......
...@@ -11,6 +11,14 @@ class IR_Scan_simple(EnvExperiment): ...@@ -11,6 +11,14 @@ class IR_Scan_simple(EnvExperiment):
BASE_URL = 'http://liaf-iseg/api/setItem/55005e1a49cad-69/0/0/'+f'{channel:.0f}'+'/Control.voltageSet/'+f'{voltage:.2f}'+'/V' BASE_URL = 'http://liaf-iseg/api/setItem/55005e1a49cad-69/0/0/'+f'{channel:.0f}'+'/Control.voltageSet/'+f'{voltage:.2f}'+'/V'
response = urllib.request.urlopen(f"{BASE_URL}").read() response = urllib.request.urlopen(f"{BASE_URL}").read()
def voltagecheck(self,channel) -> TFloat:
BASE_URL = 'http://liaf-iseg/api/getItem/55005e1a49cad-69/0/0/'+f'{channel:.0f}'+'/Control.voltageSet/'
response = urllib.request.urlopen(f"{BASE_URL}").read()
texto = response.decode("utf-8")
volts = float(texto.split(',')[6].split(':')[1][1:-1])
return volts
def build(self): def build(self):
...@@ -102,7 +110,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -102,7 +110,7 @@ class IR_Scan_simple(EnvExperiment):
self.setattr_argument("Comments", StringValue(" "), "General comments") self.setattr_argument("Comments", StringValue(" "), "General comments")
@rpc @rpc
def create_datasets(self): def create_datasets(self):
...@@ -135,7 +143,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -135,7 +143,7 @@ class IR_Scan_simple(EnvExperiment):
self.set_dataset("t_readout", self.t_readout, broadcast=False, archive=True) self.set_dataset("t_readout", self.t_readout, broadcast=False, archive=True)
self.set_dataset("Comments", self.Comments, broadcast=False, archive=True) self.set_dataset("Comments", self.Comments, broadcast=False, archive=True)
@rpc(flags={"async"}) @rpc(flags={"async"})
def create_applets(self, no_freqs): def create_applets(self, no_freqs):
...@@ -143,7 +151,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -143,7 +151,7 @@ class IR_Scan_simple(EnvExperiment):
self.ccb.issue("create_applet", "IR_espectro", self.ccb.issue("create_applet", "IR_espectro",
"${python} -m pyLIAF.artiq.applets.plot_xy " "${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_spectrum " "counts_spectrum "
"--x Volage_iseg") "--x Voltage_iseg")
@rpc @rpc
def Get_Voltage_list(self) -> TList(TFloat): def Get_Voltage_list(self) -> TList(TFloat):
...@@ -170,19 +178,20 @@ class IR_Scan_simple(EnvExperiment): ...@@ -170,19 +178,20 @@ class IR_Scan_simple(EnvExperiment):
@kernel @kernel
def run(self): def run(self):
finalVolt = self.voltagecheck(2)
t_cool_mu = self.core.seconds_to_mu(self.t_cool) # Precomputo esto para despues t_cool_mu = self.core.seconds_to_mu(self.t_cool) # Precomputo esto para despues
cuentas = 0 cuentas = 0
self.create_datasets() self.create_datasets()
Volts = self.Get_Voltage_list() Volts = self.Get_Voltage_list()
self.voltagecheck(2)
self.create_applets(len(Volts)) self.create_applets(len(Volts))
self.init_kernel() self.init_kernel()
delay(1*ms) delay(1*ms)
self.laserIR1.on() self.laserIR1.on()
self.laserIR2.on() self.laserIR2.off()
self.laserIR3.on() self.laserIR3.on()
self.laserUV.on() self.laserUV.on()
...@@ -198,11 +207,11 @@ class IR_Scan_simple(EnvExperiment): ...@@ -198,11 +207,11 @@ class IR_Scan_simple(EnvExperiment):
delay(10000*us) delay(10000*us)
self.core.break_realtime() self.core.break_realtime()
for runN in range(self.no_measures): for runN in range(self.no_measures):
if runN % 2 == 0: #if runN % 2 == 0: #lo comento para ver si da mejor si siempre enfrio
delay(self.t_cool) # delay(self.t_cool)
else: #else:
delay(100*us) # delay(100*us)
delay(self.t_cool)
cuentas = self.readout() # Hago la medicion y vuelvo con las cuentas cuentas = self.readout() # Hago la medicion y vuelvo con las cuentas
Accumulated_counts = Accumulated_counts + cuentas Accumulated_counts = Accumulated_counts + cuentas
self.mutate_dataset("counts_spectrum", iter_index, Accumulated_counts) self.mutate_dataset("counts_spectrum", iter_index, Accumulated_counts)
...@@ -225,7 +234,7 @@ class IR_Scan_simple(EnvExperiment): ...@@ -225,7 +234,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserUV.set_frequency(final[2], final[3], profile=1) self.laserUV.set_frequency(final[2], final[3], profile=1)
self.laserIR2.set_frequency(final[4], final[5], profile=1) self.laserIR2.set_frequency(final[4], final[5], profile=1)
self.laserIR3.set_frequency(final[6], final[7], profile=1) self.laserIR3.set_frequency(final[6], final[7], profile=1)
self.voltageupdate(2,finalVolt)
print("jose maria listorti") print("jose maria listorti")
@kernel @kernel
...@@ -269,7 +278,6 @@ class IR_Scan_simple(EnvExperiment): ...@@ -269,7 +278,6 @@ class IR_Scan_simple(EnvExperiment):
"""Enfrio llevando el laser IR a una cierta frecuencia""" """Enfrio llevando el laser IR a una cierta frecuencia"""
self.laserIR1.select_profile(0) # Pongo el laser en el perfil referencia self.laserIR1.select_profile(0) # Pongo el laser en el perfil referencia
self.laserUV.select_profile(0) # Pongo el laser en el perfil referencia self.laserUV.select_profile(0) # Pongo el laser en el perfil referencia
self.laserIR2.select_profile(0)
self.laserIR2.off() self.laserIR2.off()
self.laserIR3.select_profile(0) self.laserIR3.select_profile(0)
...@@ -291,6 +299,8 @@ class IR_Scan_simple(EnvExperiment): ...@@ -291,6 +299,8 @@ class IR_Scan_simple(EnvExperiment):
delay(self.t_trans) delay(self.t_trans)
here = self.pmt.gate_rising(self.t_readout) # Que mida durante t_readout here = self.pmt.gate_rising(self.t_readout) # Que mida durante t_readout
self.laserIR2.off()
self.laserIR3.on()
self.enfriar_ion() # ya pongo a enfriar, asi todos los retardos estan enfriando self.enfriar_ion() # ya pongo a enfriar, asi todos los retardos estan enfriando
return self.pmt.count(here) # recupero las cuentas medidas return self.pmt.count(here) # recupero las cuentas medidas
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment