Commit 14c18d34 authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

arregle el codigo de simple ir scan sacando cosas inncesarias

parent 2c77f34c
...@@ -23,14 +23,19 @@ class IR_Scan_simple(EnvExperiment): ...@@ -23,14 +23,19 @@ class IR_Scan_simple(EnvExperiment):
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=270.0, amp=0.7, name="IR2shift") #corresponde a 0.8 Vpp self.laserIR2shift = UrukulCh(self, ch=0, freq=270.0, amp=0.7, name="IR2shift") #corresponde a 0.8 Vpp
self.setattr_argument("Fine_scan", BooleanValue(1==0), "Experiment params")
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),
"Experiment params") "Experiment params")
self.setattr_argument("Heating", BooleanValue(1==0), "Heating")
self.setattr_argument(f"t_heating",
NumberValue(1*ms, unit='ms', scale=ms),
"Heating")
self.setattr_argument(f"IR1_cooling_freq", self.setattr_argument(f"IR1_cooling_freq",
NumberValue(229*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz), NumberValue(230*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Cooling params") "Cooling params")
self.setattr_argument(f"IR1_cooling_amp", self.setattr_argument(f"IR1_cooling_amp",
...@@ -38,11 +43,11 @@ class IR_Scan_simple(EnvExperiment): ...@@ -38,11 +43,11 @@ class IR_Scan_simple(EnvExperiment):
"Cooling params") "Cooling params")
self.setattr_argument(f"UV_cooling_freq", self.setattr_argument(f"UV_cooling_freq",
NumberValue(112*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz), NumberValue(108*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Cooling params") "Cooling params")
self.setattr_argument(f"UV_cooling_amp", self.setattr_argument(f"UV_cooling_amp",
NumberValue(0.1, min=0.0, max=0.3), NumberValue(0.05, min=0.0, max=0.3),
"Cooling params") "Cooling params")
self.setattr_argument(f"IR2_cooling_freq", self.setattr_argument(f"IR2_cooling_freq",
...@@ -54,11 +59,11 @@ class IR_Scan_simple(EnvExperiment): ...@@ -54,11 +59,11 @@ class IR_Scan_simple(EnvExperiment):
"Cooling params") "Cooling params")
self.setattr_argument(f"UV_CPT_freq", self.setattr_argument(f"UV_CPT_freq",
NumberValue(118*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")
self.setattr_argument(f"UV_CPT_amp", self.setattr_argument(f"UV_CPT_amp",
NumberValue(0.1, min=0.000, max=0.300, step=0.001), NumberValue(0.05, min=0.000, max=0.300, step=0.001),
"CPT params") "CPT params")
self.setattr_argument(f"IR2_CPT_freq", self.setattr_argument(f"IR2_CPT_freq",
...@@ -69,32 +74,9 @@ class IR_Scan_simple(EnvExperiment): ...@@ -69,32 +74,9 @@ 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"IR1_final_freq",
NumberValue(229*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Final params")
self.setattr_argument(f"IR1_final_amp",
NumberValue(0.23, min=0.0, max=0.35),
"Final params")
self.setattr_argument(f"UV_final_freq",
NumberValue(115*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Final params")
self.setattr_argument(f"UV_final_amp",
NumberValue(0.11, min=0.0, max=0.3),
"Final params")
self.setattr_argument(f"IR2_final_freq",
NumberValue(80*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Final params")
self.setattr_argument(f"IR2_final_amp",
NumberValue(0.3, min=0.0, max=0.8),
"Final params")
self.setattr_argument(f"t_cool", self.setattr_argument(f"t_cool",
NumberValue(1000*us, unit='us', scale=us, min=1*us), NumberValue(1*ms, unit='ms', scale=ms, min=0.001*ms),
"Experiment params") "Experiment params")
self.setattr_argument(f"t_trans", self.setattr_argument(f"t_trans",
...@@ -102,22 +84,17 @@ class IR_Scan_simple(EnvExperiment): ...@@ -102,22 +84,17 @@ class IR_Scan_simple(EnvExperiment):
"Experiment params") "Experiment params")
self.setattr_argument(f"t_readout", self.setattr_argument(f"t_readout",
NumberValue(50*us, unit='us', scale=us, min=1*us), NumberValue(200*us, unit='us', scale=us, min=1*us),
"Experiment params") "Experiment params")
self.setattr_argument(f"t_heating",
NumberValue(1*ms, unit='ms', scale=ms),
"Experiment params")
self.setattr_argument("Heating", BooleanValue(1==0), "Experiment params")
self.setattr_argument("Scan_type", self.setattr_argument("Scan_type",
EnumerationValue(["Calibrated_scan", "Defined_scan"]), EnumerationValue(["Calibrated_frequencies", "Specified_frequencies"]),
"Scan params") "Scan params")
self.setattr_argument("Scanning_frequencies", Scannable( self.setattr_argument("Scanning_frequencies", Scannable(
default=CenterScan(210*MHz, 20*MHz, 0.1*MHz), default=RangeScan(190*MHz, 230*MHz, 121),
unit="MHz", unit="MHz",
scale=MHz, scale=MHz,
global_min = 1*MHz, global_min = 1*MHz,
...@@ -184,15 +161,13 @@ class IR_Scan_simple(EnvExperiment): ...@@ -184,15 +161,13 @@ class IR_Scan_simple(EnvExperiment):
@rpc @rpc
def Get_Calibrated_Frequencies(self) -> TList(TFloat): def Get_Calibrated_Frequencies(self) -> TList(TFloat):
if self.Fine_scan:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR_fine") Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
else:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
self.set_dataset("IR1_Frequencies_calibrated", np.array(Calibrated_Experiment_freqs), broadcast=True, archive=True) self.set_dataset("IR1_Frequencies_calibrated", np.array(Calibrated_Experiment_freqs), broadcast=True, archive=True)
if self.Scan_type == "Calibrated_scan": if self.Scan_type == "Calibrated_frequencies":
Experiment_freqs = Calibrated_Experiment_freqs Experiment_freqs = Calibrated_Experiment_freqs
elif self.Scan_type == "Defined_scan": elif self.Scan_type == "Specified_frequencies":
Experiment_freqs = self.Scanning_frequencies.sequence Experiment_freqs = self.Scanning_frequencies.sequence
self.set_dataset("IR1_Frequencies", np.array(Experiment_freqs), broadcast=True, archive=True) self.set_dataset("IR1_Frequencies", np.array(Experiment_freqs), broadcast=True, archive=True)
self.set_dataset("no_freqs", len(Calibrated_Experiment_freqs), broadcast=True, archive=True) self.set_dataset("no_freqs", len(Calibrated_Experiment_freqs), broadcast=True, archive=True)
...@@ -202,21 +177,16 @@ class IR_Scan_simple(EnvExperiment): ...@@ -202,21 +177,16 @@ class IR_Scan_simple(EnvExperiment):
@rpc @rpc
def Get_Calibrated_Amplitudes(self) -> TList(TFloat): def Get_Calibrated_Amplitudes(self) -> TList(TFloat):
if self.Fine_scan:
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR_fine")) Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
else:
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
self.set_dataset("IR1_Amplitudes_calibrated", Calibrated_Experiment_amps, broadcast=True, archive=True) self.set_dataset("IR1_Amplitudes_calibrated", Calibrated_Experiment_amps, broadcast=True, archive=True)
if self.Scan_type == "Calibrated_scan": if self.Scan_type == "Calibrated_frequencies":
Experiment_amps = Calibrated_Experiment_amps Experiment_amps = Calibrated_Experiment_amps
elif self.Scan_type == "Defined_scan": elif self.Scan_type == "Specified_frequencies":
Experiment_amps = [] Experiment_amps = []
Experiment_freqs = self.Scanning_frequencies.sequence Experiment_freqs = self.Scanning_frequencies.sequence
if self.Fine_scan: Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR_fine")
else:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
for f in Experiment_freqs: for f in Experiment_freqs:
idx = (np.abs(np.asarray(Calibrated_Experiment_freqs) - f)).argmin() #busco el valor mas cercano en las freqs calibradas idx = (np.abs(np.asarray(Calibrated_Experiment_freqs) - f)).argmin() #busco el valor mas cercano en las freqs calibradas
Experiment_amps.append(Calibrated_Experiment_amps[idx]) Experiment_amps.append(Calibrated_Experiment_amps[idx])
...@@ -224,6 +194,18 @@ class IR_Scan_simple(EnvExperiment): ...@@ -224,6 +194,18 @@ class IR_Scan_simple(EnvExperiment):
return Experiment_amps return Experiment_amps
@rpc
def Get_Final_Params(self) -> TList(TFloat):
finalIR1_freq = self.get_dataset("IR1_freq")
finalIR1_amp = self.get_dataset("IR1_amp")
finalUV_freq = self.get_dataset("UV_freq")
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]
@kernel @kernel
def run(self): def run(self):
...@@ -276,10 +258,16 @@ class IR_Scan_simple(EnvExperiment): ...@@ -276,10 +258,16 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.select_profile(1) self.laserIR1.select_profile(1)
self.laserIR2.select_profile(1) self.laserIR2.select_profile(1)
self.laserUV.set_frequency(self.UV_final_freq, self.UV_final_amp, profile=1)
final = self.Get_Final_Params()
self.core.break_realtime()
delay(10*ms)
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(270*MHz, 0.7, profile=1) self.laserIR2shift.set_frequency(270*MHz, 0.7, profile=1)
self.laserIR1.set_frequency(self.IR1_final_freq, self.IR1_final_amp, profile=1)
self.laserIR2.set_frequency(self.IR2_final_freq, self.IR2_final_amp, profile=1)
print("jose maria listorti") print("jose maria listorti")
......
...@@ -13,7 +13,7 @@ class PMTCalibration(EnvExperiment): ...@@ -13,7 +13,7 @@ class PMTCalibration(EnvExperiment):
self.pmt = self.get_device("ttl0") self.pmt = self.get_device("ttl0")
self.led = self.get_device("ttl6") self.led = self.get_device("ttl6")
self.laserUV = UrukulCh(self, ch=2, freq=110.0, amp=0.1, name="UV") #corresponde a 0.7 Vpp self.laserUV = UrukulCh(self, ch=2, freq=110.0, amp=0.05, name="UV") #corresponde a 0.7 Vpp
self.laserIR = UrukulCh(self, ch=1, freq=220.0, amp=0.25, name="IR") #corresponde a 0.8 Vpp self.laserIR = UrukulCh(self, ch=1, freq=220.0, amp=0.25, name="IR") #corresponde a 0.8 Vpp
self.setattr_argument(f"t_readout", self.setattr_argument(f"t_readout",
...@@ -24,6 +24,22 @@ class PMTCalibration(EnvExperiment): ...@@ -24,6 +24,22 @@ class PMTCalibration(EnvExperiment):
self.setattr_argument("LED", BooleanValue(1==0), "Trapping") self.setattr_argument("LED", BooleanValue(1==0), "Trapping")
self.setattr_argument(f"UV_freq",
NumberValue(110*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Trapping")
self.setattr_argument(f"UV_amp",
NumberValue(0.05, min=0.000, max=0.300, step=0.001),
"Trapping")
self.setattr_argument(f"IR1_freq",
NumberValue(230*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Trapping")
self.setattr_argument(f"IR1_amp",
NumberValue(0.2, min=0., max=0.8),
"Trapping")
@rpc @rpc
def create_datasets(self): def create_datasets(self):
self.set_dataset("pmt_counts_diff", np.zeros(1, dtype=int), broadcast=True, archive=False) self.set_dataset("pmt_counts_diff", np.zeros(1, dtype=int), broadcast=True, archive=False)
...@@ -73,6 +89,8 @@ class PMTCalibration(EnvExperiment): ...@@ -73,6 +89,8 @@ class PMTCalibration(EnvExperiment):
self.laserIR.set_channel() self.laserIR.set_channel()
self.laserUV.set_channel() self.laserUV.set_channel()
self.core.wait_until_mu(now_mu()) self.core.wait_until_mu(now_mu())
delay(1*ms) delay(1*ms)
......
...@@ -11,8 +11,6 @@ class MasterControl(EnvExperiment): ...@@ -11,8 +11,6 @@ class MasterControl(EnvExperiment):
self.setattr_device("scheduler") self.setattr_device("scheduler")
self.setattr_device("core") self.setattr_device("core")
self.pmt = self.get_device("ttl0") self.pmt = self.get_device("ttl0")
self.led = self.get_device("ttl6")
self.laser423 = self.get_device("ttl7")
#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.laserIR = UrukulCh(self, ch=1, freq=208.0, amp=0.35, name="IR") #corresponde a 0.8 Vpp #self.laserIR = UrukulCh(self, ch=1, freq=208.0, amp=0.35, name="IR") #corresponde a 0.8 Vpp
...@@ -28,7 +26,7 @@ class MasterControl(EnvExperiment): ...@@ -28,7 +26,7 @@ class MasterControl(EnvExperiment):
"Laser params") "Laser params")
self.setattr_argument(f"IR1_amp", self.setattr_argument(f"IR1_amp",
NumberValue(0.25, min=0.0, max=0.35), NumberValue(0.2, min=0.0, max=0.35),
"Laser params") "Laser params")
self.setattr_argument(f"IR1_status", self.setattr_argument(f"IR1_status",
...@@ -37,11 +35,11 @@ class MasterControl(EnvExperiment): ...@@ -37,11 +35,11 @@ class MasterControl(EnvExperiment):
self.setattr_argument(f"UV_freq", self.setattr_argument(f"UV_freq",
NumberValue(115*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz), NumberValue(110*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Laser params") "Laser params")
self.setattr_argument(f"UV_amp", self.setattr_argument(f"UV_amp",
NumberValue(0.19, min=0.0, max=0.3), NumberValue(0.05, min=0.0, max=0.1),
"Laser params") "Laser params")
self.setattr_argument(f"UV_status", self.setattr_argument(f"UV_status",
...@@ -81,11 +79,12 @@ class MasterControl(EnvExperiment): ...@@ -81,11 +79,12 @@ class MasterControl(EnvExperiment):
self.setattr_argument("Change_laser_params", BooleanValue(1==0), "Trapping") self.setattr_argument("Change_laser_params", BooleanValue(1==0), "Trapping")
self.setattr_argument("Blink", BooleanValue(1==0), "Trapping") self.setattr_argument("Blink", BooleanValue(1==0), "Trapping")
self.setattr_argument("LED", BooleanValue(1==0), "Trapping")
self.setattr_argument("laser423", BooleanValue(1==0), "Trapping")
# if self.Change_laser_params: # if self.Change_laser_params:
# set_default_scheduling(priority=5) # self.set_default_scheduling(priority=5)
# else:
# self.set_default_scheduling(priority=0)
@rpc @rpc
def create_datasets(self): def create_datasets(self):
...@@ -93,6 +92,19 @@ class MasterControl(EnvExperiment): ...@@ -93,6 +92,19 @@ class MasterControl(EnvExperiment):
self.set_dataset("pmt_counts_on", np.zeros(1, dtype=int), broadcast=True, archive=False) self.set_dataset("pmt_counts_on", np.zeros(1, dtype=int), broadcast=True, archive=False)
self.set_dataset("pmt_counts_off", np.zeros(1, dtype=int), broadcast=True, archive=False) self.set_dataset("pmt_counts_off", np.zeros(1, dtype=int), broadcast=True, archive=False)
self.set_dataset("IR1_freq", self.IR1_freq, broadcast=True, archive=True)
self.set_dataset("IR1_amp", self.IR1_amp, broadcast=True, archive=True)
self.set_dataset("UV_freq", self.UV_freq, broadcast=True, archive=True)
self.set_dataset("UV_amp", self.UV_amp, broadcast=True, archive=True)
self.set_dataset("IR2_freq", self.IR2_freq, broadcast=True, archive=True)
self.set_dataset("IR2_amp", self.IR2_amp, broadcast=True, archive=True)
self.set_dataset("IR2shift_freq", self.IR2shift_freq, broadcast=True, archive=True)
self.set_dataset("IR2shift_amp", self.IR2shift_amp, broadcast=True, archive=True)
@rpc @rpc
def create_applets(self): def create_applets(self):
...@@ -127,8 +139,8 @@ class MasterControl(EnvExperiment): ...@@ -127,8 +139,8 @@ class MasterControl(EnvExperiment):
#self.laserIR.channel.init() #self.laserIR.channel.init()
#self.laserUV.initialize_channel() #self.laserUV.initialize_channel()
self.led.output() #prio=self.core.get_rt_priority()
self.laser423.output() #print(prio)
self.pmt.input() self.pmt.input()
...@@ -149,12 +161,6 @@ class MasterControl(EnvExperiment): ...@@ -149,12 +161,6 @@ class MasterControl(EnvExperiment):
delay(1*ms) delay(1*ms)
if self.LED==True:
self.led.off()
else:
self.led.on()
delay(1000*us)
def run(self): def run(self):
self.create_datasets() self.create_datasets()
...@@ -190,12 +196,12 @@ class MasterControl(EnvExperiment): ...@@ -190,12 +196,12 @@ class MasterControl(EnvExperiment):
self.core.break_realtime() self.core.break_realtime()
#self.laserUV.on() #self.laserUV.on()
if self.Blink: if self.Blink:
self.laserIR1.off() self.laserIR2.off()
delay(10*us) delay(10*us)
counts_off = self.readout() counts_off = self.readout()
self.mutate_dataset("pmt_counts_off", 0, counts_off) self.mutate_dataset("pmt_counts_off", 0, counts_off)
at_mu(self.core.get_rtio_counter_mu() + 10000) at_mu(self.core.get_rtio_counter_mu() + 10000)
self.laserIR1.on() self.laserIR2.on()
delay(10*us) delay(10*us)
counts_on = self.readout() counts_on = self.readout()
self.mutate_dataset("pmt_counts_on", 0, counts_on) self.mutate_dataset("pmt_counts_on", 0, counts_on)
...@@ -204,6 +210,13 @@ class MasterControl(EnvExperiment): ...@@ -204,6 +210,13 @@ class MasterControl(EnvExperiment):
@kernel @kernel
def set_lasers(self): def set_lasers(self):
self.core.break_realtime()
self.laserUV.select_profile(0)
self.laserIR1.select_profile(0)
self.laserIR2shift.select_profile(0)
self.laserIR2.select_profile(0)
self.core.break_realtime()
self.laserIR1.set_frequency(self.IR1_freq, self.IR1_amp, profile=0) self.laserIR1.set_frequency(self.IR1_freq, self.IR1_amp, profile=0)
self.core.break_realtime() self.core.break_realtime()
self.laserUV.set_frequency(self.UV_freq, self.UV_amp, profile=0) self.laserUV.set_frequency(self.UV_freq, self.UV_amp, profile=0)
......
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