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)
......
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