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):
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.setattr_argument("Fine_scan", BooleanValue(1==0), "Experiment params")
self.setattr_argument("no_measures",
NumberValue(2000, min=1, ndecimals=0, step=1),
"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",
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")
self.setattr_argument(f"IR1_cooling_amp",
......@@ -38,11 +43,11 @@ class IR_Scan_simple(EnvExperiment):
"Cooling params")
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")
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")
self.setattr_argument(f"IR2_cooling_freq",
......@@ -54,11 +59,11 @@ class IR_Scan_simple(EnvExperiment):
"Cooling params")
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")
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")
self.setattr_argument(f"IR2_CPT_freq",
......@@ -69,32 +74,9 @@ class IR_Scan_simple(EnvExperiment):
NumberValue(0.3, min=0., max=0.8),
"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",
NumberValue(1000*us, unit='us', scale=us, min=1*us),
NumberValue(1*ms, unit='ms', scale=ms, min=0.001*ms),
"Experiment params")
self.setattr_argument(f"t_trans",
......@@ -102,22 +84,17 @@ class IR_Scan_simple(EnvExperiment):
"Experiment params")
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")
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",
EnumerationValue(["Calibrated_scan", "Defined_scan"]),
EnumerationValue(["Calibrated_frequencies", "Specified_frequencies"]),
"Scan params")
self.setattr_argument("Scanning_frequencies", Scannable(
default=CenterScan(210*MHz, 20*MHz, 0.1*MHz),
default=RangeScan(190*MHz, 230*MHz, 121),
unit="MHz",
scale=MHz,
global_min = 1*MHz,
......@@ -184,15 +161,13 @@ class IR_Scan_simple(EnvExperiment):
@rpc
def Get_Calibrated_Frequencies(self) -> TList(TFloat):
if self.Fine_scan:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR_fine")
else:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
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
elif self.Scan_type == "Defined_scan":
elif self.Scan_type == "Specified_frequencies":
Experiment_freqs = self.Scanning_frequencies.sequence
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)
......@@ -202,21 +177,16 @@ class IR_Scan_simple(EnvExperiment):
@rpc
def Get_Calibrated_Amplitudes(self) -> TList(TFloat):
if self.Fine_scan:
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR_fine"))
else:
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
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
elif self.Scan_type == "Defined_scan":
elif self.Scan_type == "Specified_frequencies":
Experiment_amps = []
Experiment_freqs = self.Scanning_frequencies.sequence
if self.Fine_scan:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR_fine")
else:
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
for f in Experiment_freqs:
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])
......@@ -224,6 +194,18 @@ class IR_Scan_simple(EnvExperiment):
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
def run(self):
......@@ -276,10 +258,16 @@ class IR_Scan_simple(EnvExperiment):
self.laserIR1.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.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")
......
......@@ -13,7 +13,7 @@ class PMTCalibration(EnvExperiment):
self.pmt = self.get_device("ttl0")
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.setattr_argument(f"t_readout",
......@@ -24,6 +24,22 @@ class PMTCalibration(EnvExperiment):
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
def create_datasets(self):
self.set_dataset("pmt_counts_diff", np.zeros(1, dtype=int), broadcast=True, archive=False)
......@@ -73,6 +89,8 @@ class PMTCalibration(EnvExperiment):
self.laserIR.set_channel()
self.laserUV.set_channel()
self.core.wait_until_mu(now_mu())
delay(1*ms)
......
......@@ -11,8 +11,6 @@ class MasterControl(EnvExperiment):
self.setattr_device("scheduler")
self.setattr_device("core")
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.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):
"Laser params")
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")
self.setattr_argument(f"IR1_status",
......@@ -37,11 +35,11 @@ class MasterControl(EnvExperiment):
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")
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")
self.setattr_argument(f"UV_status",
......@@ -81,11 +79,12 @@ class MasterControl(EnvExperiment):
self.setattr_argument("Change_laser_params", 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:
# set_default_scheduling(priority=5)
# self.set_default_scheduling(priority=5)
# else:
# self.set_default_scheduling(priority=0)
@rpc
def create_datasets(self):
......@@ -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_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
def create_applets(self):
......@@ -127,8 +139,8 @@ class MasterControl(EnvExperiment):
#self.laserIR.channel.init()
#self.laserUV.initialize_channel()
self.led.output()
self.laser423.output()
#prio=self.core.get_rt_priority()
#print(prio)
self.pmt.input()
......@@ -149,12 +161,6 @@ class MasterControl(EnvExperiment):
delay(1*ms)
if self.LED==True:
self.led.off()
else:
self.led.on()
delay(1000*us)
def run(self):
self.create_datasets()
......@@ -190,12 +196,12 @@ class MasterControl(EnvExperiment):
self.core.break_realtime()
#self.laserUV.on()
if self.Blink:
self.laserIR1.off()
self.laserIR2.off()
delay(10*us)
counts_off = self.readout()
self.mutate_dataset("pmt_counts_off", 0, counts_off)
at_mu(self.core.get_rtio_counter_mu() + 10000)
self.laserIR1.on()
self.laserIR2.on()
delay(10*us)
counts_on = self.readout()
self.mutate_dataset("pmt_counts_on", 0, counts_on)
......@@ -204,6 +210,13 @@ class MasterControl(EnvExperiment):
@kernel
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.core.break_realtime()
self.laserUV.set_frequency(self.UV_freq, self.UV_amp, profile=0)
......
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.
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