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

agrego meds

parent fef7ee12
......@@ -9,8 +9,8 @@ PORT = 60000
PASS = b'Secr3t Pa55W0rd'
from multiprocessing.connection import Client
class IR_Scan_DCvoltages(EnvExperiment):
"""IR scan with DC voltages changes ability"""
class IR_Scan_DCvoltages_heating(EnvExperiment):
"""IR scan with DC voltages changes and heating rate measurement habilities"""
def build(self):
# Agrego kernel invariants a ver si mejoro algo de la performance
kernel_invariants = getattr(self, 'kernel_invariants', set())
......@@ -330,7 +330,7 @@ class IR_Scan_DCvoltages(EnvExperiment):
self.enfriar_ion()
Sweep_type = "nona"
#Sweep_type = "nona"
if Sweep_type == "none":
iter_index = 0
......
......@@ -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.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.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",
NumberValue(2000, min=1, ndecimals=0, step=1),
......@@ -58,6 +58,15 @@ class IR_Scan_simple(EnvExperiment):
NumberValue(0.3, min=0.0, max=0.8),
"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",
NumberValue(110*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"CPT params")
......@@ -74,6 +83,13 @@ class IR_Scan_simple(EnvExperiment):
NumberValue(0.3, min=0., max=0.8),
"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",
NumberValue(1*ms, unit='ms', scale=ms, min=0.001*ms),
......@@ -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_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_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_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_trans", self.t_trans, 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):
finalUV_amp = self.get_dataset("UV_amp")
finalIR2_freq = self.get_dataset("IR2_freq")
finalIR2_amp = self.get_dataset("IR2_amp")
#finalIR2shift_freq = self.get_dataset("IR2shift_freq")
#finalIR2shift_amp = self.get_dataset("IR2shift_amp")
return [finalIR1_freq, finalIR1_amp, finalUV_freq, finalUV_amp, finalIR2_freq, finalIR2_amp]#, finalIR2shift_freq, finalIR2shift_amp]
#finalIR3_freq = self.get_dataset("IR3_freq")
#finalIR3_amp = self.get_dataset("IR3_amp")
return [finalIR1_freq, finalIR1_amp, finalUV_freq, finalUV_amp, finalIR2_freq, finalIR2_amp]#, finalIR3_freq, finalIR3_amp]
@kernel
......@@ -222,7 +244,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.on()
self.laserIR2.on()
self.laserIR2shift.on()
self.laserIR3.on()
self.laserUV.on()
self.enfriar_ion()
......@@ -267,7 +289,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.set_frequency(final[0], final[1], profile=1)
self.laserUV.set_frequency(final[2], final[3], 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")
......@@ -283,16 +305,16 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.set_channel()
self.laserUV.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.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.laserIR2.set_frequency(self.IR2_cooling_freq, self.IR2_cooling_amp, profile=0)
self.laserIR1.set_channel(profile=1)
self.core.break_realtime()
self.laserUV.set_channel(profile=1)
self.core.break_realtime()
self.laserIR2shift.set_channel(profile=1)
self.laserIR3.set_channel(profile=1)
self.core.break_realtime()
self.laserIR2.set_channel(profile=1)
self.core.break_realtime()
......@@ -301,7 +323,7 @@ class IR_Scan_simple(EnvExperiment):
self.core.break_realtime()
self.laserIR2.set_frequency(self.IR2_CPT_freq, self.IR2_CPT_amp, profile=1)
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.core.break_realtime()
#self.laserIR1.set_channel(profile=2)
......@@ -310,11 +332,11 @@ class IR_Scan_simple(EnvExperiment):
#self.core.break_realtime()
#self.laserIR2.set_channel(profile=2)
#self.core.break_realtime()
#self.laserIR2shift.set_channel(profile=2)
#self.laserIR3.set_channel(profile=2)
#self.core.break_realtime()
#self.laserIR1.set_frequency(self.IR1_cooling_freq, self.IR1_cooling_amp, profile=2)
#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.laserUV.set_frequency(self.UV_cooling_freq, self.UV_cooling_amp, profile=2)
#self.core.break_realtime()
......@@ -331,7 +353,7 @@ class IR_Scan_simple(EnvExperiment):
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.laserIR2.select_profile(0)
self.laserIR2shift.select_profile(0)
self.laserIR3.select_profile(0)
@kernel
def calentar_ion(self):
......@@ -345,7 +367,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserUV.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.laserIR2shift.select_profile(1)
self.laserIR3.select_profile(1)
delay(self.t_trans)
here = self.pmt.gate_rising(self.t_readout) # Que mida durante t_readout
......
......@@ -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'
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):
......@@ -102,7 +110,7 @@ class IR_Scan_simple(EnvExperiment):
self.setattr_argument("Comments", StringValue(" "), "General comments")
@rpc
def create_datasets(self):
......@@ -135,7 +143,7 @@ class IR_Scan_simple(EnvExperiment):
self.set_dataset("t_readout", self.t_readout, broadcast=False, archive=True)
self.set_dataset("Comments", self.Comments, broadcast=False, archive=True)
@rpc(flags={"async"})
def create_applets(self, no_freqs):
......@@ -143,7 +151,7 @@ class IR_Scan_simple(EnvExperiment):
self.ccb.issue("create_applet", "IR_espectro",
"${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_spectrum "
"--x Volage_iseg")
"--x Voltage_iseg")
@rpc
def Get_Voltage_list(self) -> TList(TFloat):
......@@ -170,19 +178,20 @@ class IR_Scan_simple(EnvExperiment):
@kernel
def run(self):
finalVolt = self.voltagecheck(2)
t_cool_mu = self.core.seconds_to_mu(self.t_cool) # Precomputo esto para despues
cuentas = 0
self.create_datasets()
Volts = self.Get_Voltage_list()
self.voltagecheck(2)
self.create_applets(len(Volts))
self.init_kernel()
delay(1*ms)
self.laserIR1.on()
self.laserIR2.on()
self.laserIR2.off()
self.laserIR3.on()
self.laserUV.on()
......@@ -198,11 +207,11 @@ class IR_Scan_simple(EnvExperiment):
delay(10000*us)
self.core.break_realtime()
for runN in range(self.no_measures):
if runN % 2 == 0:
delay(self.t_cool)
else:
delay(100*us)
#if runN % 2 == 0: #lo comento para ver si da mejor si siempre enfrio
# delay(self.t_cool)
#else:
# delay(100*us)
delay(self.t_cool)
cuentas = self.readout() # Hago la medicion y vuelvo con las cuentas
Accumulated_counts = Accumulated_counts + cuentas
self.mutate_dataset("counts_spectrum", iter_index, Accumulated_counts)
......@@ -225,7 +234,7 @@ class IR_Scan_simple(EnvExperiment):
self.laserUV.set_frequency(final[2], final[3], profile=1)
self.laserIR2.set_frequency(final[4], final[5], profile=1)
self.laserIR3.set_frequency(final[6], final[7], profile=1)
self.voltageupdate(2,finalVolt)
print("jose maria listorti")
@kernel
......@@ -269,7 +278,6 @@ class IR_Scan_simple(EnvExperiment):
"""Enfrio llevando el laser IR a una cierta frecuencia"""
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.laserIR2.select_profile(0)
self.laserIR2.off()
self.laserIR3.select_profile(0)
......@@ -291,6 +299,8 @@ class IR_Scan_simple(EnvExperiment):
delay(self.t_trans)
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
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