Commit fb5fc202 authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

meds de espectros de cristal de 6 iones con 1 impureza

parent cbda2280
...@@ -26,12 +26,14 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment): ...@@ -26,12 +26,14 @@ class IR_Scan_withcal_optimized_andor(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("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.number_of_rois = self.get_argument(f"ROIs_no", NumberValue(2, ndecimals=0, scale=1, step=1))
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(229*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
"Cooling params") "Cooling params")
...@@ -184,23 +186,21 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment): ...@@ -184,23 +186,21 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment):
# "IR1_Amplitudes " # "IR1_Amplitudes "
# "--x IR1_Frequencies") # "--x IR1_Frequencies")
for ii in range(self.number_of_rois):
self.ccb.issue("create_applet", f"ROI{1+ii}_Fluo_vs_frequency_andor",
"${python} -m pyLIAF.artiq.applets.plot_xy "
f"counts_roi{1+ii} "
"--x IR1_Frequencies")
self.ccb.issue("create_applet", "ROI1_Fluo_vs_frequency_andor", # self.ccb.issue("create_applet", "ROI2_Fluo_vs_frequency_andor",
"${python} -m pyLIAF.artiq.applets.plot_xy " # "${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_roi1 " # "counts_roi2 "
"--x IR1_Frequencies") # "--x IR1_Frequencies")
self.ccb.issue("create_applet", "ROI2_Fluo_vs_frequency_andor",
"${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_roi2 "
"--x IR1_Frequencies")
@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_scan":
...@@ -210,17 +210,16 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment): ...@@ -210,17 +210,16 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment):
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)
#self.set_dataset("counts_spectrum", np.zeros(len(Experiment_freqs), dtype=int), broadcast=True, archive=True) #self.set_dataset("counts_spectrum", np.zeros(len(Experiment_freqs), dtype=int), broadcast=True, archive=True)
self.set_dataset("counts_roi1" , np.zeros( len(Experiment_freqs) , dtype=int ), broadcast=True, archive=True) for ii in range(self.number_of_rois):
self.set_dataset("counts_roi2" , np.zeros( len(Experiment_freqs) , dtype=int ), broadcast=True, archive=True) self.set_dataset(f"counts_roi{1+ii}" , np.zeros( len(Experiment_freqs) , dtype=int ), broadcast=True, archive=True)
# self.set_dataset("counts_roi2" , np.zeros( len(Experiment_freqs) , dtype=int ), broadcast=True, archive=True)
return Experiment_freqs return Experiment_freqs
@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_scan":
...@@ -228,10 +227,8 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment): ...@@ -228,10 +227,8 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment):
elif self.Scan_type == "Defined_scan": elif self.Scan_type == "Defined_scan":
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_fine") Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
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])
...@@ -413,8 +410,15 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment): ...@@ -413,8 +410,15 @@ class IR_Scan_withcal_optimized_andor(EnvExperiment):
self.conn.send('rois_count True') self.conn.send('rois_count True')
rta = self.conn.recv() rta = self.conn.recv()
val = rta val = rta
self.mutate_dataset("counts_roi1", ind, val[0] )
self.mutate_dataset("counts_roi2", ind, val[1] ) for ii in range(self.number_of_rois):
if len(val)<self.number_of_rois:
print('Hay menos rois seteadas que las que pediste')
raise
else:
self.mutate_dataset(f"counts_roi{1+ii}", ind, val[ii] )
# self.mutate_dataset("counts_roi1", ind, val[0] )
# self.mutate_dataset("counts_roi2", ind, val[1] )
# print(f"6step time: {round(time()-t0,2)}") # print(f"6step time: {round(time()-t0,2)}")
sleep(0.1) sleep(0.1)
print(f"step time: {round(time.time()-t0,2)}") print(f"step time: {round(time.time()-t0,2)}")
...@@ -70,7 +70,7 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -70,7 +70,7 @@ class AD9910RAM_andor(EnvExperiment):
self.setattr_device("core") #sets core device drivers as attributes self.setattr_device("core") #sets core device drivers as attributes
self.setattr_device("ccb") self.setattr_device("ccb")
self.u = [ self.get_device("urukul0_ch0"), self.u = [ self.get_device("urukul0_ch0"),
self.get_device("urukul0_ch1"), self.get_device("urukul0_ch1"),
self.get_device("urukul0_ch2"), self.get_device("urukul0_ch2"),
self.get_device("urukul0_ch3")] self.get_device("urukul0_ch3")]
...@@ -83,11 +83,8 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -83,11 +83,8 @@ class AD9910RAM_andor(EnvExperiment):
# GUI # GUI
self._channel_list = list( [ f'Ch{jj}' for jj in range(4) ] ) self._channel_list = list( [ f'Ch{jj}' for jj in range(4) ] )
self.setattr_argument("channel",EnumerationValue(self._channel_list)) self.setattr_argument("channel",EnumerationValue(self._channel_list))
#self.frequency = self.get_argument(f"frequency",NumberValue(100*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz))
#self.amplitude = self.get_argument(f"amplitude",NumberValue( 0.25, min=0.000, max=1.000))
self.depth = self.get_argument(f"AM Floor", NumberValue( 0.15, min=0.000, max=1.000)) self.depth = self.get_argument(f"AM Floor", NumberValue( 0.15, min=0.000, max=1.000))
# self.am_freq = self.get_argument(f"AM frequency",NumberValue(700*kHz, unit='kHz', scale=kHz, min=100*kHz, max=2000*kHz)) self.number_of_rois = self.get_argument(f"ROIs_no", NumberValue(2, ndecimals=0, scale=1, step=1))
self._channel = 0 self._channel = 0
...@@ -110,6 +107,8 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -110,6 +107,8 @@ class AD9910RAM_andor(EnvExperiment):
NumberValue(10*us, unit='us', scale=us, min=1*us), NumberValue(10*us, unit='us', scale=us, min=1*us),
"Experiment params") "Experiment params")
# Ch1 ******************** # Ch1 ********************
self.setattr_argument(f"IR1_freq", self.setattr_argument(f"IR1_freq",
NumberValue(229*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz), NumberValue(229*MHz, unit='MHz', scale=MHz, min=1*MHz, max=400*MHz),
...@@ -223,8 +222,14 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -223,8 +222,14 @@ class AD9910RAM_andor(EnvExperiment):
conn.send('rois_count True') conn.send('rois_count True')
rta = conn.recv() rta = conn.recv()
val = rta val = rta
self.mutate_dataset("counts_roi1", ind, val[0] ) for ii in range(self.number_of_rois):
self.mutate_dataset("counts_roi2", ind, val[1] ) if len(val)<self.number_of_rois:
print('Hay menos rois seteadas que las que pediste')
raise
else:
self.mutate_dataset(f"counts_roi{1+ii}", ind, val[ii] )
# self.mutate_dataset("counts_roi1", ind, val[0] )
# self.mutate_dataset("counts_roi2", ind, val[1] )
# print(f"6step time: {round(time()-t0,2)}") # print(f"6step time: {round(time()-t0,2)}")
sleep(self.scan_time_step) sleep(self.scan_time_step)
...@@ -246,8 +251,10 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -246,8 +251,10 @@ class AD9910RAM_andor(EnvExperiment):
#self.set_dataset("freq_carrier" , str(self.frequency), broadcast=False, archive=True) #self.set_dataset("freq_carrier" , str(self.frequency), broadcast=False, archive=True)
#self.set_dataset("amplitude_carrier" , str(self.amplitude), broadcast=False, archive=True) #self.set_dataset("amplitude_carrier" , str(self.amplitude), broadcast=False, archive=True)
self.set_dataset("AM_depth_mod" , str(self.depth), broadcast=False, archive=True) self.set_dataset("AM_depth_mod" , str(self.depth), broadcast=False, archive=True)
self.set_dataset("counts_roi1" , np.zeros( len(self.freqs.sequence) , dtype=int ), broadcast=True, archive=True) #self.set_dataset("counts_roi1" , np.zeros( len(self.freqs.sequence) , dtype=int ), broadcast=True, archive=True)
self.set_dataset("counts_roi2" , np.zeros( len(self.freqs.sequence) , dtype=int ), broadcast=True, archive=True) #self.set_dataset("counts_roi2" , np.zeros( len(self.freqs.sequence) , dtype=int ), broadcast=True, archive=True)
for ii in range(self.number_of_rois):
self.set_dataset(f"counts_roi{int(1+ii)}" , np.zeros( len(self.freqs.sequence) , dtype=int ), broadcast=True, archive=True)
self.set_dataset("UV_freq", self.UV_freq, broadcast=False, archive=True) self.set_dataset("UV_freq", self.UV_freq, broadcast=False, archive=True)
self.set_dataset("UV_amp", self.UV_amp, broadcast=False, archive=True) self.set_dataset("UV_amp", self.UV_amp, broadcast=False, archive=True)
self.set_dataset("IR1_freq", self.IR1_freq, broadcast=False, archive=True) self.set_dataset("IR1_freq", self.IR1_freq, broadcast=False, archive=True)
...@@ -259,15 +266,17 @@ class AD9910RAM_andor(EnvExperiment): ...@@ -259,15 +266,17 @@ class AD9910RAM_andor(EnvExperiment):
@rpc(flags={"async"}) @rpc(flags={"async"})
def create_applets(self): def create_applets(self):
self.ccb.issue("create_applet", "ROI1_Fluo_vs_modulation_andor", for ii in range(self.number_of_rois):
"${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_roi1 " self.ccb.issue("create_applet", f"ROI{int(1+ii)}_Fluo_vs_modulation_andor",
"--x real_freq") "${python} -m pyLIAF.artiq.applets.plot_xy "
f"counts_roi{1+ii} "
"--x real_freq")
self.ccb.issue("create_applet", "ROI2_Fluo_vs_modulation_andor", # self.ccb.issue("create_applet", "ROI2_Fluo_vs_modulation_andor",
"${python} -m pyLIAF.artiq.applets.plot_xy " # "${python} -m pyLIAF.artiq.applets.plot_xy "
"counts_roi2 " # "counts_roi2 "
"--x real_freq") # "--x real_freq")
@kernel @kernel
......
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