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