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

a ver

parent 3028f2d5
...@@ -12,7 +12,10 @@ from scipy import interpolate ...@@ -12,7 +12,10 @@ from scipy import interpolate
#/home/nico/Documents/artiq_experiments/analisis/plots/20220526_CPTvariandoB_v2/Data #/home/nico/Documents/artiq_experiments/analisis/plots/20220526_CPTvariandoB_v2/Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20220526_CPTvariandoB_v2/Data') # os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20220526_CPTvariandoB_v2/Data')
os.chdir("C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20220526_CPTvariandoB_v2//Data")
ALL_FILES = """000007697-IR_Scan_withcal_optimized ALL_FILES = """000007697-IR_Scan_withcal_optimized
000007696-IR_Scan_withcal_optimized 000007696-IR_Scan_withcal_optimized
...@@ -273,7 +276,6 @@ plt.plot(freqslongpi_12, FittedEITpi_12) ...@@ -273,7 +276,6 @@ plt.plot(freqslongpi_12, FittedEITpi_12)
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz') #plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
#%%
#ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 13!!! pero ahora ajustando demas parametros #ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 13!!! pero ahora ajustando demas parametros
...@@ -333,7 +335,8 @@ plt.figure() ...@@ -333,7 +335,8 @@ plt.figure()
plt.errorbar(FreqsDRpi_13, CountsDRpi_13, yerr=2*np.sqrt(CountsDRpi_13), fmt='o', capsize=2, markersize=2) plt.errorbar(FreqsDRpi_13, CountsDRpi_13, yerr=2*np.sqrt(CountsDRpi_13), fmt='o', capsize=2, markersize=2)
plt.plot(freqslongpi_13, FittedEITpi_13) plt.plot(freqslongpi_13, FittedEITpi_13)
#%%
#ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 14!!! #ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 14!!!
phidoppler, titadoppler = 0, 90 phidoppler, titadoppler = 0, 90
...@@ -395,7 +398,7 @@ plt.errorbar(FreqsDRpi_14, CountsDRpi_14, yerr=2*np.sqrt(CountsDRpi_14), fmt='o' ...@@ -395,7 +398,7 @@ plt.errorbar(FreqsDRpi_14, CountsDRpi_14, yerr=2*np.sqrt(CountsDRpi_14), fmt='o'
plt.plot(freqslongpi_14, FittedEITpi_14) plt.plot(freqslongpi_14, FittedEITpi_14)
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz') #plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
#%%
#ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 15!!! #ESTE CODIGO AJUSTA UNA DE LAS CURVAS, LA 15!!!
phidoppler, titadoppler = 0, 90 phidoppler, titadoppler = 0, 90
...@@ -605,7 +608,7 @@ plt.tick_params(axis="y", which="both", **visible_ticks) ...@@ -605,7 +608,7 @@ plt.tick_params(axis="y", which="both", **visible_ticks)
plt.grid() plt.grid()
plt.tight_layout() plt.tight_layout()
#plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Work/2022 B vs k race/Figuras/Figuras jpg trabajadas/CPT_exp.png',dpi=500) #plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Work/2022 B vs k race/Figuras/Figuras jpg trabajadas/CPT_exp.png',dpi=500)
plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 B vs K eigenbasis/Figuras_finales/Finalesfinales/Fig4_final.pdf') # plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 B vs K eigenbasis/Figuras_finales/Finalesfinales/Fig4_final.pdf')
#%% #%%
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
...@@ -671,3 +674,166 @@ plt.ylim(0.1,0.43) ...@@ -671,3 +674,166 @@ plt.ylim(0.1,0.43)
plt.xlabel('Coil current (A)') plt.xlabel('Coil current (A)')
plt.ylabel('Larmor frequency (MHz)') plt.ylabel('Larmor frequency (MHz)')
plt.grid() plt.grid()
#%%
#filtro y mejoro el plot
"""
PLOTS TESIS (LOS DEL PAPER SON LOS DE ANTES)
"""
Ufields = [popt_12[0], popt_13[0], popt_14[0], popt_15[0]]
ErrorUfields = [np.sqrt(pcov_12)[0,0], np.sqrt(pcov_13)[0,0],np.sqrt(pcov_14)[0,0], np.sqrt(pcov_15)[0,0]]
Bfields = [u/(2*np.pi)/1398190 for u in Ufields]
ErrorBfields = [eu/(2*np.pi)/1398190 for eu in ErrorUfields]
from scipy.signal import savgol_filter as sf
import seaborn as sns
offs = 7.53e2
scal = 2.0917e5
winl = 11
po = 3
FiltCounts12 = np.array([(c-offs)*100/scal for c in sf(CountsDRpi_12, winl, po)])
#ErrorCounts12 = np.array([0.5*np.sqrt(c/scal) for c in CountsDRpi_12])
ErrorCounts12 = np.array([0.5*np.sqrt(c/scal) for c in sf(CountsDRpi_12, winl, po)])
FiltCounts13 = np.array([(c-offs)*100/scal for c in sf(CountsDRpi_13, winl, po)])
#ErrorCounts13 = np.array([0.5*np.sqrt(c/scal) for c in CountsDRpi_13])
ErrorCounts13 = np.array([0.5*np.sqrt(c/scal) for c in sf(CountsDRpi_13, winl, po)])
FiltCounts14 = np.array([(c-offs)*100/scal for c in sf(CountsDRpi_14, winl, po)])
#ErrorCounts14 = np.array([0.5*np.sqrt(c/scal) for c in CountsDRpi_14])
ErrorCounts14 = np.array([0.5*np.sqrt(c/scal) for c in sf(CountsDRpi_14, winl, po)])
FiltCounts15 = np.array([(c-offs)*100/scal for c in sf(CountsDRpi_15, winl, po)])
#ErrorCounts15 = np.array([0.5*np.sqrt(c/scal) for c in CountsDRpi_15])
ErrorCounts15 = np.array([0.5*np.sqrt(c/scal) for c in sf(CountsDRpi_15, winl, po)])
#plot con escalas atomicas y lindo
colors=sns.color_palette("mako", 10)
color1=colors[1]
color2=colors[2]
color3=colors[4]
color4=colors[7]
ms = 4
plt.figure(figsize=(3.6, 3))
# plt.plot(FreqsDRpi_12, FiltCounts12, 'o', markersize=ms, color=color1, label=fr'$B=${round(1e3*Bfields[0])}({round(1e3*ErrorBfields[0])}) mG', alpha=0.3)
# plt.plot(FreqsDRpi_13, FiltCounts13, 'o', markersize=ms, color=color2, label=fr'$B=${round(1e3*Bfields[1])}({round(1e3*ErrorBfields[1])}) mG', alpha=0.3)
# plt.plot(FreqsDRpi_14, FiltCounts14, 'o', markersize=ms, color=color3, label=fr'$B=${round(1e3*Bfields[2])}({round(1e3*ErrorBfields[2])}) mG', alpha=0.3)
# plt.plot(FreqsDRpi_15, FiltCounts15, 'o', markersize=ms, color=color4, label=fr'$B=${round(1e3*Bfields[3])}({round(1e3*ErrorBfields[3])}) mG', alpha=0.3)
# plt.plot(freqslongpi_12, [(c-offs)*100/scal for c in FittedEITpi_12], color=color1, linewidth=3)
# plt.plot(freqslongpi_13, [(c-offs)*100/scal for c in FittedEITpi_13], color=color2, linewidth=3)
# plt.plot(freqslongpi_14, [(c-offs)*100/scal for c in FittedEITpi_14], color=color3, linewidth=3)
# plt.plot(freqslongpi_15, [(c-offs)*100/scal for c in FittedEITpi_15], color=color4, linewidth=3)
plt.plot(freqslongpi_12, [c for c in FittedEITpi_12], color=color1, linewidth=3)
plt.plot(freqslongpi_13, [c for c in FittedEITpi_13], color=color2, linewidth=3)
plt.plot(freqslongpi_14, [c for c in FittedEITpi_14], color=color3, linewidth=3)
plt.plot(freqslongpi_15, [c for c in FittedEITpi_15], color=color4, linewidth=3)
plt.errorbar(FreqsDRpi_12, [c*scal/100+offs for c in FiltCounts12], yerr=np.sqrt(np.array([c*scal/100+offs for c in FiltCounts12])), capsize=2,fmt='o', markersize=2, color=color1, label=fr'$B=${round(1e3*Bfields[0])}({round(1e3*ErrorBfields[0])}) mG', alpha=0.7)
plt.errorbar(FreqsDRpi_13, [c*scal/100+offs for c in FiltCounts13], yerr=np.sqrt(np.array([c*scal/100+offs for c in FiltCounts13])), capsize=2,fmt='o', markersize=2, color=color2, label=fr'$B=${round(1e3*Bfields[1])}({round(1e3*ErrorBfields[1])}) mG', alpha=0.7)
plt.errorbar(FreqsDRpi_14, [c*scal/100+offs for c in FiltCounts14], yerr=np.sqrt(np.array([c*scal/100+offs for c in FiltCounts14])), capsize=2,fmt='o', markersize=2, color=color3, label=fr'$B=${round(1e3*Bfields[2])}({round(1e3*ErrorBfields[2])}) mG', alpha=0.7)
plt.errorbar(FreqsDRpi_15, [c*scal/100+offs for c in FiltCounts15], yerr=np.sqrt(np.array([c*scal/100+offs for c in FiltCounts15])), capsize=2,fmt='o', markersize=2, color=color4, label=fr'$B=${round(1e3*Bfields[3])}({round(1e3*ErrorBfields[3])}) mG', alpha=0.7)
# plt.plot(FreqsDRpi_13, [c*scal/100+offs for c in FiltCounts13], 'o', markersize=ms, color=color2, label=fr'$B=${round(1e3*Bfields[1])}({round(1e3*ErrorBfields[1])}) mG', alpha=0.3)
# plt.plot(FreqsDRpi_14, [c*scal/100+offs for c in FiltCounts14], 'o', markersize=ms, color=color3, label=fr'$B=${round(1e3*Bfields[2])}({round(1e3*ErrorBfields[2])}) mG', alpha=0.3)
# plt.plot(FreqsDRpi_15, [c*scal/100+offs for c in FiltCounts15], 'o', markersize=ms, color=color4, label=fr'$B=${round(1e3*Bfields[3])}({round(1e3*ErrorBfields[3])}) mG', alpha=0.3)
# plt.fill_between(FreqsDRpi_12, FiltCounts12+ErrorCounts12, FiltCounts12-ErrorCounts12, color=color1, alpha=0.2)
# plt.fill_between(FreqsDRpi_13, FiltCounts13+ErrorCounts13, FiltCounts13-ErrorCounts13, color=color2, alpha=0.2)
# plt.fill_between(FreqsDRpi_14, FiltCounts14+ErrorCounts14, FiltCounts14-ErrorCounts14, color=color3, alpha=0.2)
# plt.fill_between(FreqsDRpi_15, FiltCounts15+ErrorCounts15, FiltCounts15-ErrorCounts15, color=color4, alpha=0.2)
plt.xlim(-40,30)
# plt.ylim(-0.1,1.4)
plt.xlabel('Desintonía IR (MHz)', fontsize=10)
plt.ylabel('Cuentas', fontsize=10)
plt.xticks([-40, -20, 0, 20], fontsize=10)
# plt.yticks([0, 0.3, 0.6, 0.9, 1.2], fontsize=10)
# visible_ticks = {
# "top": False,
# "right": False
# }
# plt.tick_params(axis="x", which="both", **visible_ticks)
# plt.tick_params(axis="y", which="both", **visible_ticks)
# plt.legend(loc='upper left', frameon=True, fontsize=7.6, handletextpad=0.1)
plt.grid(alpha=0.5)
plt.tight_layout()
#plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Work/2022 B vs k race/Figuras/Figuras jpg trabajadas/CPT_exp.png',dpi=500)
# plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 B vs K eigenbasis/Figuras_finales/Finalesfinales/Fig4_final.pdf')
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap6//fig2test.pdf')
#%%
from scipy.optimize import curve_fit
def LinearLarmortoCurrent(I, a, b):
Larmor = a*I+b
return Larmor
def ConvertLarmortoBfield(u):
c = 1398190.0452488689
return u/(2*np.pi)/c
"""
mediciones = [10, 9, 11, 12, 13, 14, 15, 16]
corrientes = [2, 0, -1, -1.2, -1.5, -1.75, -2, -2.2]
"""
"""
#Esto anda:
IFit = [-1, -1.5, -1.75]
LarmorFit = [popt_13[0], popt_14[0], popt_15[0]]
"""
IFit = [-1.2, -1.5, -1.75, -2]
LarmorFit = [popt_12[0], popt_13[0], popt_14[0], popt_15[0]]
#LarmorFit = [287282.374931893, 203998.09641511342, 158507.0255951109] por si fallan los ajustes
ErrorLarmorFit = [np.sqrt(pcov_12[0,0]),np.sqrt(pcov_13[0,0]),np.sqrt(pcov_14[0,0]),np.sqrt(pcov_15[0,0])]
MeanError = 11139.353180216529 #por si fallan los ajustes
Ilong = np.arange(2, -3, -0.01)
popt_larmor, pcov_larmor = curve_fit(LinearLarmortoCurrent, IFit, LarmorFit)
LarmorLong = LinearLarmortoCurrent(Ilong, *popt_larmor)
print(popt_larmor)
plt.figure()
plt.plot(IFit, LarmorFit, 'o', markersize=5)
plt.plot(Ilong, LarmorLong)
Bfitted = [ConvertLarmortoBfield(u) for u in LarmorFit]
ErrorBfitted = [ConvertLarmortoBfield(u) for u in ErrorLarmorFit]
BLong = [ConvertLarmortoBfield(u) for u in LarmorLong]
#ESTE GRAFICO TIENE QUE IR EN LA TESIS CUANDO PONGA
#COMO CALIBRE EL CAMPO MAGNETICO CON LA CORRIENTE
plt.figure(figsize=(3.6,3))
plt.plot(Ilong, [b*1e3 for b in BLong])
plt.plot(IFit, [b*1e3 for b in Bfitted], 'o', markersize=8)
plt.xlim(-2.2,-1)
plt.ylim(0.012*1e3,0.045*1e3)
plt.xlabel('Corriente bobina superior (A)')
plt.ylabel('Campo magnetico (mG)')
plt.grid()
...@@ -34,6 +34,8 @@ ALL_FILES_SP = """000008358-SingleLine ...@@ -34,6 +34,8 @@ ALL_FILES_SP = """000008358-SingleLine
000008382-SingleLine 000008382-SingleLine
""" """
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20221004_transitorios//Data')
#000001504-SingleLine.h5 #000001504-SingleLine.h5
def expo(T, tau, N0, C): def expo(T, tau, N0, C):
...@@ -160,5 +162,5 @@ plt.grid(alpha=0.3) ...@@ -160,5 +162,5 @@ plt.grid(alpha=0.3)
plt.xlabel("Potencia [uW]") plt.xlabel("Potencia [uW]")
plt.ylabel("Alturas/Tau") plt.ylabel("Alturas/Tau")
plt.show() # plt.show()
#input() #input()
...@@ -8,6 +8,9 @@ from scipy.optimize import curve_fit ...@@ -8,6 +8,9 @@ from scipy.optimize import curve_fit
import os import os
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20221006_transitoriosv2') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20221006_transitoriosv2')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20221006_transitoriosv2')
# Solo levanto algunos experimentos # Solo levanto algunos experimentos
SP_files = [8445, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 84840, 88040] SP_files = [8445, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 84840, 88040]
SP_files_v2 = [8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776] SP_files_v2 = [8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8771, 8772, 8773, 8774, 8775, 8776]
...@@ -267,12 +270,6 @@ FIGURA PAPER SP CON AJUSTES ...@@ -267,12 +270,6 @@ FIGURA PAPER SP CON AJUSTES
import matplotlib import matplotlib
import seaborn as sns import seaborn as sns
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
plt.style.use('seaborn-bright')
plt.rcParams.update({
"text.usetex": False,
})
plt.figure() plt.figure()
plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0]) plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0])
...@@ -377,12 +374,6 @@ FIGURA PAPER ...@@ -377,12 +374,6 @@ FIGURA PAPER
import matplotlib import matplotlib
import seaborn as sns import seaborn as sns
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
plt.style.use('seaborn-bright')
plt.rcParams.update({
"text.usetex": False,
})
jselected = [1, 5, 12] jselected = [1, 5, 12]
...@@ -415,9 +406,14 @@ plt.ylabel('Counts', fontname='STIXGeneral', fontsize=14) ...@@ -415,9 +406,14 @@ plt.ylabel('Counts', fontname='STIXGeneral', fontsize=14)
plt.xticks([0, 0.5, 1, 1.5, 2], fontsize=12) plt.xticks([0, 0.5, 1, 1.5, 2], fontsize=12)
plt.yticks([0, 1000, 2000, 3000, 4000], fontsize=12) plt.yticks([0, 1000, 2000, 3000, 4000], fontsize=12)
plt.grid() plt.grid()
plt.savefig('fig3_01.pdf') # plt.savefig('fig3_01.pdf')
plt.savefig('fig3_01.svg') # plt.savefig('fig3_01.svg')
"""
Hasta aca. lo de abajo fueron intentos fallidos....
"""
#%% #%%
......
...@@ -11,13 +11,6 @@ import seaborn as sns ...@@ -11,13 +11,6 @@ import seaborn as sns
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20221017_IonStatistics') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20221017_IonStatistics')
plt.rcParams.update({
"font.family": "STIXGeneral"
})
plt.rcParams.update({
"font.size": 14
})
# Solo levanto algunos experimentos # Solo levanto algunos experimentos
Stat_files = [8731, 8738, 8745, 8819, 8820, 8822] Stat_files = [8731, 8738, 8745, 8819, 8820, 8822]
...@@ -88,12 +81,6 @@ import seaborn as sns ...@@ -88,12 +81,6 @@ import seaborn as sns
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
plt.style.use('seaborn-bright')
plt.rcParams.update({
"text.usetex": False,
})
#plt.figure() #plt.figure()
#plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0]) #plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0])
...@@ -135,11 +122,11 @@ ax[1].plot(bins1+0.5,poisson1,color = color1,label = 'Ion',linewidth=1.5) ...@@ -135,11 +122,11 @@ ax[1].plot(bins1+0.5,poisson1,color = color1,label = 'Ion',linewidth=1.5)
ax[1].legend(loc='upper right', prop={'size': 10}) ax[1].legend(loc='upper right', prop={'size': 10})
ax[1].grid() ax[1].grid()
ax[1].set_xticks([0, 100, 200, 300]) ax[1].set_xticks([0, 100, 200, 300])
ax[1].set_xticklabels([0, 100, 200, 300], fontsize=10,fontname='STIXGeneral') ax[1].set_xticklabels([0, 100, 200, 300], fontsize=10)
ax[1].set_yticks([0,0.02, 0.04, 0.06, 0.08]) ax[1].set_yticks([0,0.02, 0.04, 0.06, 0.08])
ax[1].set_yticklabels([0,0.02, 0.04, 0.06, 0.08], fontsize=10,fontname='STIXGeneral') ax[1].set_yticklabels([0,0.02, 0.04, 0.06, 0.08], fontsize=10)
ax[1].set_xlabel('Cuentas', fontsize=10, fontname='STIXGeneral') ax[1].set_xlabel('Cuentas', fontsize=10)
ax[1].set_ylabel('Frecuencia de eventos', fontsize=10, fontname='STIXGeneral') ax[1].set_ylabel('Frecuencia de eventos', fontsize=10)
#plt.savefig('C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap5_poisson.pdf') #plt.savefig('C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap5_poisson.pdf')
...@@ -160,18 +147,22 @@ ax[0].plot([s*1e6 for s in OnOff_Bins[0][:-1]],[(OnOff_Heights[0][j]-OnOff_Heigh ...@@ -160,18 +147,22 @@ ax[0].plot([s*1e6 for s in OnOff_Bins[0][:-1]],[(OnOff_Heights[0][j]-OnOff_Heigh
ax[0].plot([s*1e6 for s in OnOff_Bins[2][:-1]],OnOff_Heights[2], color=color1,linewidth=3) ax[0].plot([s*1e6 for s in OnOff_Bins[2][:-1]],OnOff_Heights[2], color=color1,linewidth=3)
ax[0].set_xlim(0,1) ax[0].set_xlim(0,1)
ax[0].grid() ax[0].grid()
ax[0].set_xlabel(r'Tiempo ($\mu$s)', fontname='STIXGeneral', fontsize=10) ax[0].set_xlabel(r'Tiempo ($\mu$s)', fontsize=10)
ax[0].set_ylabel(r'Cuentas /10$~\mu$s', fontname='STIXGeneral', fontsize=10) ax[0].set_ylabel(r'Cuentas /10$~\mu$s',fontsize=10)
ax[0].set_xticks([0,0.2, 0.4, 0.6, 0.8, 1]) ax[0].set_xticks([0,0.2, 0.4, 0.6, 0.8, 1])
ax[0].set_yticks([0,5000, 10000]) ax[0].set_yticks([0,5000, 10000])
ax[0].set_xticklabels([0,0.2, 0.4, 0.6, 0.8, 1], fontname='STIXGeneral', fontsize=10) ax[0].set_xticklabels([0,0.2, 0.4, 0.6, 0.8, 1], fontsize=10)
ax[0].set_yticklabels([0,5000, 10000], fontname='STIXGeneral', fontsize=10) ax[0].set_yticklabels([0,5000, 10000], fontsize=10)
plt.tight_layout() plt.tight_layout()
name='fig01b' name='fig01b'
plt.savefig('C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap5_statistics.pdf') # plt.savefig('C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap5_statistics.pdf')
# plt.savefig('C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap5_statistics.pdf')
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap4//Cap4_statistics.pdf')
#plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 Transient Phenomena JOSA B/Figures/'+name+'.pdf') #plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 Transient Phenomena JOSA B/Figures/'+name+'.pdf')
#plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 Transient Phenomena JOSA B/Figures/'+name+'_dump.svg') #plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 Transient Phenomena JOSA B/Figures/'+name+'_dump.svg')
......
...@@ -8,11 +8,11 @@ from scipy.optimize import curve_fit ...@@ -8,11 +8,11 @@ from scipy.optimize import curve_fit
import os import os
from scipy import interpolate from scipy import interpolate
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/') # os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//Data')
MOTIONAL_FILES = """000011490-AD9910RAM MOTIONAL_FILES = """000011490-AD9910RAM
...@@ -83,6 +83,39 @@ for i, fname in enumerate(MOTIONAL_FILES.split()): ...@@ -83,6 +83,39 @@ for i, fname in enumerate(MOTIONAL_FILES.split()):
#%%
"""
Ploteo las curvas de referencia
"""
"""
Valen la pena:
16,19-20-21-22-23: supongo axial. se ven dos piquitos
25, 28: radial 1
26, 29: radial 2
31: se ven bien los dos picos enigmaticos
41: radial 1 fuerte
"""
jvec = [41]
plt.figure()
i = 0
for j in jvec:
plt.errorbar([1*f*1e-3 for f in RealFreqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='-o', capsize=2, markersize=2)
i = i + 1
plt.xlabel('Frecuencia (kHz)')
plt.ylabel('counts')
# plt.xlim(851,856)
# plt.ylim(600,1700)
plt.grid()
# plt.legend()
#%% #%%
""" """
...@@ -108,4 +141,3 @@ plt.grid() ...@@ -108,4 +141,3 @@ plt.grid()
plt.legend() plt.legend()
# -*- coding: utf-8 -*-
"""
Created on Tue Apr 23 09:38:53 2024
@author: nicon
"""
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
from matplotlib.colors import Normalize
from scipy.ndimage import map_coordinates
import os
imagenes = []
names = []
for file in os.listdir()[:-1]:
names.append(file)
pic = np.load(str(file))
imagenes.append(pic)
#%%
j=1
print(names[j])
plt.figure()
plt.imshow(imagenes[j][580:630,940:990],vmin=105,vmax=130)
#%%
j=0
print(names[j])
plt.figure()
plt.imshow(imagenes[j][580:630,940:990],vmin=110,vmax=125)
#%%
j=2
print(names[j])
plt.figure()
plt.imshow(imagenes[j][580:630,940:990],vmin=105,vmax=110)
#%%
j=3
print(names[j])
plt.figure()
plt.imshow(imagenes[j][580:630,940:990],vmin=105,vmax=110)
#%%
j=2
print(names[j])
plt.figure()
plt.imshow(imagenes[j][580:630,940:990],vmin=100,vmax=115)
import h5py
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
# os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataOpticTransitory/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//Data')
MOTIONAL_FILES = """
000011490-AD9910RAM
000011491-AD9910RAM
000011492-AD9910RAM
000011493-AD9910RAM
000011496-AD9910RAM
000011499-AD9910RAM
000011500-AD9910RAM
000011501-AD9910RAM
000011502-AD9910RAM
000011503-AD9910RAM
000011504-AD9910RAM
000011505-AD9910RAM
000011506-AD9910RAM
000011507-AD9910RAM
000011511-AD9910RAM
000011512-AD9910RAM
000011513-AD9910RAM
000011514-AD9910RAM
000011515-AD9910RAM
000011516-AD9910RAM
000011517-AD9910RAM
000011518-AD9910RAM
000011519-AD9910RAM
000011521-AD9910RAM
000011522-AD9910RAM
000011560-AD9910RAM
000011561-AD9910RAM
000011562-AD9910RAM
000011563-AD9910RAM
000011564-AD9910RAM
000011566-AD9910RAM
000011567-AD9910RAM
000011569-AD9910RAM
000011571-AD9910RAM
000011572-AD9910RAM
000011574-AD9910RAM
000011575-AD9910RAM
000011576-AD9910RAM
000011577-AD9910RAM
000011580-AD9910RAM
000011581-AD9910RAM
000011582-AD9910RAM
"""
def SeeKeys(files):
for i, fname in enumerate(files.split()):
data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(fname)
print(list(data['datasets'].keys()))
print(SeeKeys(MOTIONAL_FILES))
#%%
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
Counts = []
RealFreqs = []
ErrorFreqs = []
SetFreqs = []
for i, fname in enumerate(MOTIONAL_FILES.split()):
print(str(i) + ' - ' + fname)
data = h5py.File(fname+'.h5', 'r')
RealFreqs.append(np.array(data['datasets']['real_freq']))
Counts.append(np.array(data['datasets']['counts']))
ErrorFreqs.append(np.array(data['datasets']['error_freq']))
SetFreqs.append(np.array(data['datasets']['set_freq']))
# Potencias = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2, 92.7, 108, 124, 134, 154, 167]
# PotenciasUsadas = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2]
#%%
"""
Ploteo una curva para buscar su minimo
17,18,19,20,21,22,23: axial. doble pico. distintas pots uv. 11514, 11515, 11516, 11517, 11518, 11519, 11521
25, 28: radial1 con mucha estadistica. 11560, 11563.
29: radial2 con mucha estad. 11564
30: radial2. clarisimo el doble pico. 11566
31: radial2. mas claro todavia el doble pico. 11567
37: me animaria a decir que lo anterior fue modulando el uv y este es modulando el IR. 11576
40: tmb. pico chico. 11581
41: radial1. no se modulando qué pero se ve bien. 11582
"""
jvec = [42]
plt.figure()
i = 0
kmin = 106
for j in jvec:
plt.errorbar([1*f*1e-3 for f in RealFreqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='-o', capsize=2, markersize=2)
i = i + 1
plt.xlabel('Frecuencia (kHz)')
plt.ylabel('counts')
#plt.xlim(782,787)
#plt.ylim(2000,5000)
plt.grid()
# plt.legend(loc='upper left')
...@@ -7,12 +7,14 @@ from scipy.optimize import curve_fit ...@@ -7,12 +7,14 @@ from scipy.optimize import curve_fit
import os import os
from scipy import interpolate from scipy import interpolate
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataElectricNew')
Data = [] Data = []
for ii in range(1,10): for ii in range(1,10):
Data.append(f"ss0{ii}.dat") Data.append(f"ss0{ii}.dat")
...@@ -33,6 +35,16 @@ for dd in Data: ...@@ -33,6 +35,16 @@ for dd in Data:
FrequencyVec.append([data[i][1] for i in range(len(data))]) FrequencyVec.append([data[i][1] for i in range(len(data))])
FluoVec.append([data[i][2] for i in range(len(data))]) FluoVec.append([data[i][2] for i in range(len(data))])
#%%
#visualizo data
ivec = [8]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec[i]], FluoVec[i],'o')
# plt.xlim(0.78,0.8)
#%% #%%
#los voltajes son 2, 2.5, 3, 5, 7 y 9 #los voltajes son 2, 2.5, 3, 5, 7 y 9
...@@ -98,7 +110,10 @@ Nuevas mediciones: dan mejor ...@@ -98,7 +110,10 @@ Nuevas mediciones: dan mejor
""" """
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataRawElectric/') # os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataRawElectric/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataRawElectric')
Data = [] Data = []
for ii in range(1,10): for ii in range(1,10):
...@@ -108,7 +123,11 @@ for ii in range(10,14): ...@@ -108,7 +123,11 @@ for ii in range(10,14):
#for ii in range(40,49): #for ii in range(40,49):
# Data.append(f"ss{ii}.dat") # Data.append(f"ss{ii}.dat")
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataRawElectric2/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataRawElectric2/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataRawElectric2')
for ii in range(1,10): for ii in range(1,10):
Data.append(f"s0{ii}.dat") Data.append(f"s0{ii}.dat")
...@@ -117,8 +136,8 @@ for ii in range(10,24): ...@@ -117,8 +136,8 @@ for ii in range(10,24):
#for ii in range(40,49): #for ii in range(40,49):
# Data.append(f"ss{ii}.dat") # Data.append(f"ss{ii}.dat")
FrequencyVec = [] FrequencyVec2 = []
FluoVec = [] FluoVec2 = []
for dd in Data: for dd in Data:
data = np.genfromtxt(dd, data = np.genfromtxt(dd,
...@@ -127,8 +146,18 @@ for dd in Data: ...@@ -127,8 +146,18 @@ for dd in Data:
dtype=None, dtype=None,
delimiter=' ') delimiter=' ')
FrequencyVec.append([data[i][1] for i in range(len(data))]) FrequencyVec2.append([data[i][1] for i in range(len(data))])
FluoVec.append([data[i][2] for i in range(len(data))]) FluoVec2.append([data[i][2] for i in range(len(data))])
#%%
#visualizo data
ivec = [3]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec2[i]], FluoVec2[i],'o')
# plt.xlim(0.78,0.8)
#%% #%%
""" """
...@@ -138,7 +167,7 @@ ivec = [33] ...@@ -138,7 +167,7 @@ ivec = [33]
plt.figure() plt.figure()
for i in ivec: for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec[i]], FluoVec[i],'-o') plt.plot([f*1e-6 for f in FrequencyVec2[i]], FluoVec2[i],'-o')
#plt.xlim(0.3,0.6) #plt.xlim(0.3,0.6)
...@@ -150,7 +179,7 @@ ivec = [23] ...@@ -150,7 +179,7 @@ ivec = [23]
plt.figure() plt.figure()
for i in ivec: for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec[i]], FluoVec[i],'o') plt.plot([f*1e-6 for f in FrequencyVec2[i]], FluoVec2[i],'o')
#plt.xlim(0.3,0.6) #plt.xlim(0.3,0.6)
#%% #%%
...@@ -163,15 +192,17 @@ ki=3500 ...@@ -163,15 +192,17 @@ ki=3500
kf=-1500 kf=-1500
plt.figure() plt.figure()
plt.plot([f*1e-6 for f in FrequencyVec[23]], FluoVec[23],'ro') plt.plot([f*1e-6 for f in FrequencyVec2[27]], FluoVec2[27],'-o')
plt.plot([f*1e-6 for f in FrequencyVec[33]][ki:kf], FluoVec[33][ki:kf],'ro') #plt.plot([f*1e-6 for f in FrequencyVec2[33]][ki:kf], FluoVec2[33][ki:kf],'-o')
plt.xlabel('Frecuencia (MHz)') plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Cuentas') plt.ylabel('Cuentas')
plt.xlim(1.5,1.6) #plt.xlim(1.5,1.6)
#%% #%%
""" """
Miro modo radial con roi chiquita, una en el medio del ion y otra en donde el ion se estira en el costadito Miro modo radial con roi chiquita, una en el medio del ion y otra en donde el ion se estira en el costadito
""" """
......
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataElectric')
Data1 = []
for ii in range(1,10):
Data1.append(f"ss0{ii}.dat")
for ii in range(10,20):
Data1.append(f"ss{ii}.dat")
for ii in range(20,40):
Data1.append(f"ss{ii}.dat")
for ii in range(40,49):
Data1.append(f"ss{ii}.dat")
FrequencyVec1 = []
FluoVec1 = []
for dd in Data1:
data = np.genfromtxt(dd,
skip_header=1,
names=True,
dtype=None,
delimiter=' ')
FrequencyVec1.append([data[i][1] for i in range(len(data))])
FluoVec1.append([data[i][2] for i in range(len(data))])
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataElectricNew')
Data2 = []
for ii in range(1,10):
Data2.append(f"ss0{ii}.dat")
FrequencyVec2 = []
FluoVec2 = []
for dd in Data2:
data = np.genfromtxt(dd,
skip_header=1,
names=True,
dtype=None,
delimiter=' ')
FrequencyVec2.append([data[i][1] for i in range(len(data))])
FluoVec2.append([data[i][2] for i in range(len(data))])
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataElectricNew//Ion centro costado')
Data2b = ['sscostado.dat']
FrequencyVec2b = []
FluoVec2b = []
for dd in Data2b:
data = np.genfromtxt(dd,
skip_header=1,
names=True,
dtype=None,
delimiter=' ')
FrequencyVec2b.append([data[i][1] for i in range(len(data))])
FluoVec2b.append([data[i][2] for i in range(len(data))])
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataRawElectric')
Data3 = []
for ii in range(1,10):
Data3.append(f"s0{ii}.dat")
for ii in range(10,14):
Data3.append(f"s{ii}.dat")
FrequencyVec3 = []
FluoVec3 = []
for dd in Data3:
data = np.genfromtxt(dd,
skip_header=1,
names=True,
dtype=None,
delimiter=' ')
FrequencyVec3.append([data[i][1] for i in range(len(data))])
FluoVec3.append([data[i][2] for i in range(len(data))])
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataRawElectric2')
Data4 = []
for ii in range(1,10):
Data4.append(f"s0{ii}.dat")
for ii in range(10,24):
Data4.append(f"s{ii}.dat")
FrequencyVec4 = []
FluoVec4 = []
for dd in Data4:
data = np.genfromtxt(dd,
skip_header=1,
names=True,
dtype=None,
delimiter=' ')
FrequencyVec4.append([data[i][1] for i in range(len(data))])
FluoVec4.append([data[i][2] for i in range(len(data))])
#%%
#del 1 al 49
ivec = [47]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec1[i]], FluoVec1[i],'o')
# plt.xlim(0.78,0.8)
#%%
#del 0 al 8
ivec = [8]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec2[i]], FluoVec2[i],'o')
# plt.xlim(0.78,0.8)
#%%
#solo el 0
ivec = [0]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec2b[i]], FluoVec2b[i],'o')
# plt.xlim(0.78,0.8)
#%%
#desde el 0 hasta el 12
"""
0, 1: agarrarr el ion en el centro o el costado
7: modo relativo!!!!! 10, 11 y 12 tmb pero no se ve tan bien anyways
"""
ivec = [9]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec3[i]], FluoVec3[i],'o')
# plt.xlim(0.78,0.8)
#%%
#desde 0 hasta 22
ivec = [19]
plt.figure()
for i in ivec:
plt.plot([f*1e-6 for f in FrequencyVec4[i]], FluoVec4[i],'o')
# plt.xlim(0.78,0.8)
#%%
"""
Primero un grafico de los tres modos
"""
import seaborn as sns
i1 = 14
i2 = 20
Freqs1 = [f*1e-6 for f in FrequencyVec4[i1]]
Counts1 = [c for c in FluoVec4[i1]]
Freqs2 = [f*1e-6 for f in FrequencyVec4[i2]]
Counts2 = [c for c in FluoVec4[i2]]
for jj in range(1000,3500):
if Counts2[jj]<101.7:
Counts2[jj]=102.2
for jj in range(4500,6000):
if Counts2[jj]<101.75:
Counts2[jj]=102.2
k1 = 900
k2 = 6000
for kk in range(800,1500):
if Counts1[kk]<101.65:
Counts1[kk]=102.2
Counts1[1722]=100.7
Counts1[1723]=101
lwidth = 3
fs = 10
bkg = 100
pale = sns.color_palette("colorblind")
col=3
plt.figure(figsize=(5.5,4))
plt.plot(Freqs1, [c-bkg for c in Counts1], linewidth=lwidth,color=pale[col])
plt.plot(Freqs2[k1:k2], [c+0.06-bkg for c in Counts2[k1:k2]], linewidth=lwidth,color=pale[col])
plt.ylim(-0.1,4)
plt.xlim(0.7,1.75)
plt.yticks([0,1,2,3])
plt.ylabel('Cuentas por píxel')
plt.xlabel('Frecuencia de excitación (MHz)')
plt.grid(alpha=0.5)
# plt.xlim(0.78,0.8)
#freq radial 1
plt.figure(figsize=(3.5,3))
plt.plot(Freqs1, [c-bkg for c in Counts1], linewidth=lwidth,color=pale[col])
#plt.plot(Freqs2[k1:k2], [c+0.06-bkg for c in Counts2[k1:k2]], linewidth=lwidth,color=pale[col])
plt.ylim(-0.1,3.2)
plt.xlim(0.787,0.795)
plt.yticks([0,1,2,3])
plt.ylabel('Cuentas por píxel')
plt.xlabel('Frecuencia de excitación (MHz)')
plt.grid(alpha=0.5)
plt.xticks([0.788, 0.791, 0.794])
# plt.xlim(0.78,0.8)
#freq radial 1
plt.figure(figsize=(3.5,3))
plt.plot(Freqs1, [c-bkg for c in Counts1], linewidth=lwidth,color=pale[col])
#plt.plot(Freqs2[k1:k2], [c+0.06-bkg for c in Counts2[k1:k2]], linewidth=lwidth,color=pale[col])
plt.ylim(-0.1,3.2)
plt.xlim(0.8745,0.8825)
plt.yticks([0,1,2,3])
plt.ylabel('Cuentas por píxel')
plt.xlabel('Frecuencia de excitación (MHz)')
plt.grid(alpha=0.5)
plt.xticks([0.875, 0.878, 0.881])
# plt.xlim(0.78,0.8)
...@@ -13,6 +13,9 @@ from scipy import interpolate ...@@ -13,6 +13,9 @@ from scipy import interpolate
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230707_MotionalSpectrum_v2//Data')
Data = [] Data = []
for ii in range(1,10): for ii in range(1,10):
Data.append(f"ss0{ii}.dat") Data.append(f"ss0{ii}.dat")
......
...@@ -12,8 +12,9 @@ from scipy import interpolate ...@@ -12,8 +12,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataOpticTransitory/') # os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataOpticTransitory/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230510_MotionalSpectrum//DataOpticTransitory')
MOTIONAL_FILES = """ MOTIONAL_FILES = """
000012033-AD9910RAM 000012033-AD9910RAM
...@@ -56,13 +57,15 @@ for i, fname in enumerate(MOTIONAL_FILES.split()): ...@@ -56,13 +57,15 @@ for i, fname in enumerate(MOTIONAL_FILES.split()):
Potencias = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2, 92.7, 108, 124, 134, 154, 167] Potencias = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2, 92.7, 108, 124, 134, 154, 167]
PotenciasUsadas = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2] PotenciasUsadas = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2]
#%% #%%
""" """
Ploteo una curva para buscar su minimo Ploteo una curva para buscar su minimo
""" """
jvec = [0,1,2] jvec = [9]
plt.figure() plt.figure()
i = 0 i = 0
...@@ -90,7 +93,7 @@ plt.legend(loc='upper left') ...@@ -90,7 +93,7 @@ plt.legend(loc='upper left')
Ploteo las curvas de referencia Ploteo las curvas de referencia
""" """
jvec = [0, 1, 2, 3, 8] jvec = [9]
...@@ -136,9 +139,146 @@ plt.axhline(1) ...@@ -136,9 +139,146 @@ plt.axhline(1)
plt.xlabel('Potencia IR (uW)') plt.xlabel('Potencia IR (uW)')
#%%
"""
Ahora hago lo de antes pero bien, con ajustes, como debe ser
"""
def Lorentzian( x, A, B, x0, gam ):
return A * gam**2 / ( gam**2 + ( x - x0 )**2) + B
def ErrorDRdepth(p, f, b):
ep = np.sqrt(p)
ef = np.sqrt(f)
eb = np.sqrt(b)
derivadap = 1/((f-b)**2)
derivadaf = ((p-b)/((f-b)**2))**2
derivadab = ((p-f)/((f-b)**2))**2
return 1*np.sqrt(derivadap*ep*ep + derivadaf*ef*ef + derivadab*eb*eb)
def SaturationCurve_detzero(p, F0, a,b):
return b*(1-0.5*F0*a*p*(1/(1+a*p)))
bkg = np.min(Counts[2])
depths = []
errordepths = []
js = [0,1,2,3,4,5,6,7,8,9]
#js=[9]
poptsvec = []
for k in js:
Freqs = [1*f*1e-3 for f in RealFreqs[k]]
Coun = [c for c in Counts[k]]
if k==4:
Coun[97]=3800
elif k==2:
Coun[129]=3400
elif k==5:
Coun[115]=3750
Coun[116]=3850
elif k==8:
Coun[98]=4200
elif k==9:
Coun[52]=4400
Coun[77]=4400
Coun[100]=4000
Coun[104]=3700
Coun[129]=4300
Coun[130]=4300
#popt, pcov = curve_fit(Gaussian, Freqs, Counts, p0=(-200,2100,444.2,0.05))
popt, pcov = curve_fit(Lorentzian, Freqs, Coun, p0=(-2000,3000,784.2,0.05), bounds=((-10000,0,0,0),(0,1e4, 1e4, 1)))
poptsvec.append(popt)
if k==0:
depths.append(0)
errordepths.append(0.03)
else:
depths.append(1-(np.min(Lorentzian(Freqs,*popt))-bkg)/(popt[1]-bkg))
errordepths.append(ErrorDRdepth(np.min(Lorentzian(Freqs,*popt)),popt[1], bkg))
if len(js)==1:
plt.figure()
plt.plot(Freqs,Coun,'-o')
plt.plot(Freqs,Lorentzian(Freqs,*popt))
# plt.xlim(782.5,788)
if not len(js)==1:
plt.figure()
#plt.errorbar(PotenciasUsadas+[92.7],depths,yerr=errordepths,fmt='o',capsize=3)
plt.errorbar(PotenciasUsadas,depths[:-1],yerr=errordepths[:-1],fmt='o',capsize=3)
#%%
# poptcurv, pcovcurv = curve_fit(SaturationCurve_detzero,PotenciasUsadas,depths[:-1],p0=(10,1e-3, -2))
plong = np.arange(0,90,0.1)
ms = 7
cs = 3
fs = 10
plt.figure(figsize=(3.,3))
plt.errorbar(PotenciasUsadas,depths[:-1],yerr=errordepths[:-1],fmt='o',color='black',capsize=cs,markersize=ms)
plt.xlabel(r'Potencia UV ($\mu$W)',fontsize=fs)
plt.ylabel('Profundidad',fontsize=fs)
plt.grid(alpha=0.5)
plt.ylim(0, 0.28)
plt.xlim(0,82)
plt.tight_layout()
# plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap9//fig2b.pdf')
#%%
import seaborn as sns
paleta = sns.color_palette("flare", 5)
k0, k1, k2, k3, k4 = 0, 1, 2, 3, 8
c0, c1, c2, c3, c4 = 0, 1, 2, 3, 4
Coun0 = [c for c in Counts[k0]]
Coun1 = [c for c in Counts[k1]]
Coun2 = [c for c in Counts[k2]]
Coun3 = [c for c in Counts[k3]]
Coun4 = [c for c in Counts[k4]]
Coun4[98]=4200
lwidth = 4
ms = 4
fs = 10
plt.figure(figsize=(3.,3))
plt.plot(Freqs,Coun0,'o', color=paleta[c0], alpha=0.5, markersize = ms)
plt.plot(Freqs,Lorentzian(Freqs,*poptsvec[k0]), color=paleta[c1], linewidth=lwidth)
plt.plot([f+0.6 for f in Freqs],Coun1,'o', color=paleta[c1], alpha=0.5, markersize = ms)
plt.plot([f+0.6 for f in Freqs],Lorentzian(Freqs,*poptsvec[k1]), color=paleta[c1], linewidth=lwidth)
plt.plot([f-0.1 for f in Freqs],Coun2,'o', color=paleta[c2], alpha=0.5, markersize = ms)
plt.plot([f-0.1 for f in Freqs],Lorentzian(Freqs,*poptsvec[k2]), color=paleta[c2], linewidth=lwidth)
plt.plot(Freqs,Coun3,'o', color=paleta[c3], alpha=0.5, markersize = ms)
plt.plot(Freqs,Lorentzian(Freqs,*poptsvec[k3]), color=paleta[c3], linewidth=lwidth)
plt.plot([f-0.3 for f in Freqs],Coun4,'o', color=paleta[c4], alpha=0.5, markersize = ms)
plt.plot([f-0.3 for f in Freqs],Lorentzian(Freqs,*poptsvec[k4]), color=paleta[c4], linewidth=lwidth)
plt.ylim(1800,4700)
plt.xlim(779,789)
plt.xlabel('Frecuencia mod IR1 (kHz)', fontsize=fs)
plt.ylabel('Cuentas', fontsize=fs)
plt.tight_layout()
plt.grid(alpha=0.5)
# plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap9//fig2c.pdf')
...@@ -9,12 +9,14 @@ import os ...@@ -9,12 +9,14 @@ import os
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230523_transitorioshighpower/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230523_transitorioshighpower/')
# Solo levanto algunos experimentos # Solo levanto algunos experimentos
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230523_transitorioshighpower')
SP_files = [12221, 12222, 12223, 12224] SP_files = [12221, 12222, 12223, 12224]
Random_files = [8749] Random_files = [8749]
def expo(T, tau, N0, C): def expo(T, tau, N0, C, T0):
global T0
return N0*np.exp(-(T-T0)/tau) + C return N0*np.exp(-(T-T0)/tau) + C
def pow_from_amp(amp): def pow_from_amp(amp):
...@@ -91,7 +93,7 @@ for Height in [SP_Heigths[3]]: ...@@ -91,7 +93,7 @@ for Height in [SP_Heigths[3]]:
print(Height) print(Height)
plt.plot(RefBins, Height,'o') plt.plot(RefBins, Height,'o')
plt.xlim(0.15, 0.5) # plt.xlim(0.15, 0.5)
#%% #%%
...@@ -116,7 +118,7 @@ popt_vec = [] ...@@ -116,7 +118,7 @@ popt_vec = []
pcov_vec = [] pcov_vec = []
plt.figure() plt.figure()
for j in range(len(SP_Heigths)): for j in [3]:
#for j in [12]: #for j in [12]:
print(j) print(j)
#BackgroundVector = SP_Bkgr_builder(np.mean(SP_Heigths[j][0:50]),np.mean(SP_Heigths[j][-50:]),59,67,965) #BackgroundVector = SP_Bkgr_builder(np.mean(SP_Heigths[j][0:50]),np.mean(SP_Heigths[j][-50:]),59,67,965)
...@@ -125,17 +127,16 @@ for j in range(len(SP_Heigths)): ...@@ -125,17 +127,16 @@ for j in range(len(SP_Heigths)):
CorrectedSP_Height = SP_Heigths[j] CorrectedSP_Height = SP_Heigths[j]
if j==3: popt, pcov = curve_fit(expo, RefBins[700:], CorrectedSP_Height[700:], p0=(1e-2, 10000, 1, 1))
popt, pcov = curve_fit(expo, RefBins[90:], CorrectedSP_Height[90:], p0=(5, 1000, 100)) popt_vec.append(popt)
popt_vec.append(popt) pcov_vec.append(pcov)
pcov_vec.append(pcov) plt.plot(RefBins, CorrectedSP_Height)
plt.plot(RefBins, CorrectedSP_Height) plt.plot(RefBins[700:], [expo(r, *popt) for r in RefBins][700:])
plt.plot(RefBins[90:], [expo(r, *popt) for r in RefBins][90:]) Taus.append(popt[0])
Taus.append(popt[0]) Amps.append(popt[1])
Amps.append(popt[1]) Offsets.append(popt[2])
Offsets.append(popt[2]) ErrorTaus.append(np.sqrt(pcov[0,0]))
ErrorTaus.append(np.sqrt(pcov)[0][0]) print(Taus)
print(Taus)
#%% #%%
plt.figure() plt.figure()
plt.plot(UVpotVec[:-5], Taus[:-6],'o', markersize=10, color='purple') plt.plot(UVpotVec[:-5], Taus[:-6],'o', markersize=10, color='purple')
...@@ -164,13 +165,6 @@ FIGURA PAPER SP CON AJUSTES ...@@ -164,13 +165,6 @@ FIGURA PAPER SP CON AJUSTES
import matplotlib import matplotlib
import seaborn as sns import seaborn as sns
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
plt.style.use('seaborn-bright')
plt.rcParams.update({
"text.usetex": False,
})
plt.figure() plt.figure()
plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0]) plt.plot(Stat_Bins[0][:-1], Stat_Heigths[0])
...@@ -270,12 +264,7 @@ FIGURA PAPER ...@@ -270,12 +264,7 @@ FIGURA PAPER
import matplotlib import matplotlib
import seaborn as sns import seaborn as sns
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'
plt.style.use('seaborn-bright')
plt.rcParams.update({
"text.usetex": False,
})
jselected = [1, 5, 12] jselected = [1, 5, 12]
......
...@@ -12,8 +12,9 @@ from scipy import interpolate ...@@ -12,8 +12,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230609_LocalizedSaturationInCrystal/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230609_LocalizedSaturationInCrystal/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230609_LocalizedSaturationInCrystal//Data')
MOTIONAL_FILES = """000012579-MeltingExperiment MOTIONAL_FILES = """000012579-MeltingExperiment
000012580-MeltingExperiment 000012580-MeltingExperiment
......
...@@ -19,7 +19,7 @@ Calib_Files = """000012744-UV_Scan_withcalib_Haeffner ...@@ -19,7 +19,7 @@ Calib_Files = """000012744-UV_Scan_withcalib_Haeffner
000012754-UV_Scan_withcalib_Haeffner 000012754-UV_Scan_withcalib_Haeffner
000012755-UV_Scan_withcalib_Haeffner""" 000012755-UV_Scan_withcalib_Haeffner"""
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230616_newUVspectra//Data')
#carpeta pc nico labo escritorio: #carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220503_EspectrosUVnuevos\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220503_EspectrosUVnuevos\Data
......
...@@ -12,8 +12,8 @@ from scipy import interpolate ...@@ -12,8 +12,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230707_MotionalSpectrum_v2/Data/') # os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230707_MotionalSpectrum_v2/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230707_MotionalSpectrum_v2//Data')
MOTIONAL_FILES = """ MOTIONAL_FILES = """
000013002-AD9910RAM_andor 000013002-AD9910RAM_andor
...@@ -49,7 +49,7 @@ for i, fname in enumerate(MOTIONAL_FILES.split()): ...@@ -49,7 +49,7 @@ for i, fname in enumerate(MOTIONAL_FILES.split()):
Potencias_IR = [0,20,50] Potencias_IR = [0,20,50]
#%% #%%
""" """
Ploteo una curva para buscar su minimo Ploteo una curva para buscar su minimo
......
...@@ -12,8 +12,9 @@ from scipy import interpolate ...@@ -12,8 +12,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230714_EspectrosCristal4iones/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230714_EspectrosCristal4iones/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230714_EspectrosCristal4iones//Data')
MOTIONAL_FILES = """000013292-UV_Scan_withcal_optimized_andor MOTIONAL_FILES = """000013292-UV_Scan_withcal_optimized_andor
000013293-UV_Scan_withcal_optimized_andor 000013293-UV_Scan_withcal_optimized_andor
......
...@@ -12,8 +12,9 @@ from scipy import interpolate ...@@ -12,8 +12,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230720_EspectrosCristal2iones/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230720_EspectrosCristal2iones/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230720_EspectrosCristal2iones//Data')
MOTIONAL_FILES = """000013489-IR_Scan_withcal_optimized_andor MOTIONAL_FILES = """000013489-IR_Scan_withcal_optimized_andor
000013490-IR_Scan_withcal_optimized_andor 000013490-IR_Scan_withcal_optimized_andor
...@@ -132,7 +133,7 @@ plt.legend() ...@@ -132,7 +133,7 @@ plt.legend()
#%% #%%
#from EITfit.MM_eightLevel_2repumps_AnalysisFunctions import PerformExperiment_8levels_MM, GenerateNoisyCPT_MM_fit # from EITfit.MM_eightLevel_2repumps_AnalysisFunctions import PerformExperiment_8levels_MM, GenerateNoisyCPT_MM_fit
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
from time import time as titi from time import time as titi
......
...@@ -16,7 +16,6 @@ from glob import glob ...@@ -16,7 +16,6 @@ from glob import glob
#%% Carga de datos experimentales #%% Carga de datos experimentales
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
...@@ -24,7 +23,7 @@ from glob import glob ...@@ -24,7 +23,7 @@ from glob import glob
os.chdir('Data') os.chdir('Data')
#%%
""" """
......
...@@ -14,6 +14,7 @@ from scipy import interpolate ...@@ -14,6 +14,7 @@ from scipy import interpolate
#os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift_v2/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift_v2/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230804_RotationalDopplerShift_v2//Data')
""" """
......
...@@ -12,8 +12,9 @@ from scipy import interpolate ...@@ -12,8 +12,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift_v2/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift_v2/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230804_RotationalDopplerShift_v2//Data')
""" """
......
...@@ -325,12 +325,14 @@ fig.suptitle("Configuracion +2/-2 colineales, ion al costado del haz dcA") ...@@ -325,12 +325,14 @@ fig.suptitle("Configuracion +2/-2 colineales, ion al costado del haz dcA")
# for kk,vv in data['datasets'].items(): # for kk,vv in data['datasets'].items():
# print(f'{kk}:\t',vv) # print(f'{kk}:\t',vv)
"""
FIGURA TESIS PARTE 1
"""
from scipy.signal import savgol_filter as savgol from scipy.signal import savgol_filter as savgol
# Grafico con subplots # Grafico con subplots
fig,axx = plt.subplots(1,2,figsize=(12,8), constrained_layout=True , sharey=True ) fig,axx = plt.subplots(1,2,figsize=(6.5,3.2), constrained_layout=True , sharey=True )
fig.set_constrained_layout_pads(w_pad=1/72, h_pad=0, hspace=0, wspace=0) fig.set_constrained_layout_pads(w_pad=1/72, h_pad=0, hspace=0, wspace=0)
...@@ -379,8 +381,8 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_ ...@@ -379,8 +381,8 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_
CURVA = (cuentas/base-1)/5 + compOven CURVA = (cuentas/base-1)/5 + compOven
CURVA_SUAVE = (cuentas_suave/base-1)/5+ compOven CURVA_SUAVE = (cuentas_suave/base-1)/5+ compOven
ax.plot(frecuencia,CURVA , '.', alpha=0.1) ax.plot([f-440 for f in frecuencia],CURVA , '.', alpha=0.1)
ax.plot(frecuencia,CURVA_SUAVE, '-', alpha=0.9, color=ax.get_lines()[-1].get_color()) ax.plot([f-440 for f in frecuencia],CURVA_SUAVE, '-', alpha=0.9, color=ax.get_lines()[-1].get_color())
...@@ -389,7 +391,7 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_ ...@@ -389,7 +391,7 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_
I = np.arange(len(frecuencia))[(frecuencia>rango.min())&(frecuencia<rango.max())] I = np.arange(len(frecuencia))[(frecuencia>rango.min())&(frecuencia<rango.max())]
idx = cuentas_suave[I].argmin() + I[0] idx = cuentas_suave[I].argmin() + I[0]
ax.plot(frecuencia[idx],(cuentas_suave[idx]/base[idx]-1)/5+compOven, 'o', ms=6, color=ax.get_lines()[-1].get_color(),zorder=10) ax.plot([frecuencia[idx]-440],(cuentas_suave[idx]/base[idx]-1)/5+compOven, 'o', ms=6, color=ax.get_lines()[-1].get_color(),zorder=10)
Base = np.polyval(mm,rango.mean()) Base = np.polyval(mm,rango.mean())
val_pico = cuentas_suave[I].min() val_pico = cuentas_suave[I].min()
...@@ -398,14 +400,14 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_ ...@@ -398,14 +400,14 @@ for data in sorted([ h5py.File(DataFile, 'r') for DataFile in DATAFILES_costado_
print('') print('')
ax.legend() # ax.legend()
ax.set_xlim(-9,9)
ax = axx[1] ax = axx[1]
ax.plot( picos[0] , compOven_vec , '.') # ax.plot( picos[0] , compOven_vec , '.')
ax.plot( picos[1] , compOven_vec , 'o' ) # ax.plot( picos[1] , compOven_vec , 'o' )
...@@ -414,27 +416,29 @@ profundidad_dev = [ np.array(np.array(picos[0])[compOven_vec==val].tolist()+np. ...@@ -414,27 +416,29 @@ profundidad_dev = [ np.array(np.array(picos[0])[compOven_vec==val].tolist()+np.
compOven_uniq = np.unique(compOven_vec) compOven_uniq = np.unique(compOven_vec)
ax.plot( profundidad_mean , compOven_uniq , 'o-', color='gray' , alpha=0.5 ) ax.plot( profundidad_mean , compOven_uniq , 'o-', color='black' , alpha=1 )
ax.errorbar( profundidad_mean , compOven_uniq , xerr=profundidad_dev , color='gray' ,capsize=5) ax.errorbar( profundidad_mean , compOven_uniq , xerr=profundidad_dev , color='black' ,capsize=3)
ax.set_xlabel('Profundidad') ax.set_xlabel('Profundidad media de resonancias')
axx[0].set_ylabel('compOven [V]') axx[0].set_ylabel('Voltaje electrodo (V)', fontsize=10)
axx[0].set_xlabel('frecuencia [kHz]') axx[0].set_xlabel('Desintonía IR1 (MHz)',fontsize=10)
axx[0].grid(alpha=0.5)
axx[1].grid(alpha=0.5)
# for ax in axx:
for ax in axx: # ax.grid(b=True,linestyle=':',color='lightgray')
ax.grid(b=True,linestyle=':',color='lightgray')
ax.set_xlim( 0, ax.get_xlim()[1] ) ax.set_xlim( 0, ax.get_xlim()[1] )
fig.suptitle("Configuracion +2/-2 colineales, ion al costado del haz compOven") # fig.suptitle("Configuración +2/-2 colineales")
# fig.savefig("config+2-2_colineal_ion_al_costado_compOven.png") # fig.savefig("config+2-2_colineal_ion_al_costado_compOven.png")
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap8//fig3a.pdf')
...@@ -572,7 +576,7 @@ ax.set_xlim( 0, ax.get_xlim()[1] ) ...@@ -572,7 +576,7 @@ ax.set_xlim( 0, ax.get_xlim()[1] )
fig.suptitle("Configuracion +2/-2 colineales, ion arriba del haz dcA") fig.suptitle("Configuracion +2/-2 colineales, ion arriba del haz dcA")
fig.savefig("config+2-2_colineal_ion_ariba_dcA.png") # fig.savefig("config+2-2_colineal_ion_ariba_dcA.png")
......
...@@ -58,7 +58,7 @@ def HImatrix(rabG, rabP, phidoppler, titadoppler, phiprobe, titaprobe, circulari ...@@ -58,7 +58,7 @@ def HImatrix(rabG, rabP, phidoppler, titadoppler, phiprobe, titaprobe, circulari
i, j = 2, 4 i, j = 2, 4
HI[i-1, j-1] = -(rabG/np.sqrt(3)) * np.cos(titadoppler) HI[i-1, j-1] = -(rabG/np.sqrt(3)) * np.cos(titadoppler)
HI[j-1, i-1] = np.conjugate(HI[i-1, j-1]) HI[j-1, i-1] = np.conjugate(HI[i-1, j-1])
i, j = 3, 5 i, j = 3, 5
HI[i-1, j-1] = -(rabP/2) * np.sin(titaprobe)*(np.cos(phiprobe)-1j*np.sin(phiprobe)*circularityprobe) HI[i-1, j-1] = -(rabP/2) * np.sin(titaprobe)*(np.cos(phiprobe)-1j*np.sin(phiprobe)*circularityprobe)
HI[j-1, i-1] = np.conjugate(HI[i-1, j-1]) HI[j-1, i-1] = np.conjugate(HI[i-1, j-1])
...@@ -72,6 +72,7 @@ def HImatrix(rabG, rabP, phidoppler, titadoppler, phiprobe, titaprobe, circulari ...@@ -72,6 +72,7 @@ def HImatrix(rabG, rabP, phidoppler, titadoppler, phiprobe, titaprobe, circulari
HI[j-1, i-1] = np.conjugate(HI[i-1, j-1]) HI[j-1, i-1] = np.conjugate(HI[i-1, j-1])
i, j = 4, 6 i, j = 4, 6
HI[i-1, j-1] = -(rabP/np.sqrt(12)) * np.sin(titaprobe)*(np.cos(phiprobe)-1j*np.sin(phiprobe)*circularityprobe) HI[i-1, j-1] = -(rabP/np.sqrt(12)) * np.sin(titaprobe)*(np.cos(phiprobe)-1j*np.sin(phiprobe)*circularityprobe)
HI[j-1, i-1] = np.conjugate(HI[i-1, j-1]) HI[j-1, i-1] = np.conjugate(HI[i-1, j-1])
......
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 1 17:58:39 2020
@author: oem
"""
import os
import numpy as np
#os.chdir('/home/oem/Nextcloud/G_liaf/liaf-TrampaAnular/Código General/EIT-CPT/Buenos Aires/Experiment Simulations/CPT scripts/Eight Level 2 repumps')
from threeLevel_2repumps_AnalysisFunctions import CalculoTeoricoDarkResonances_8levels, GetMinimaInfo, GetPlotsofFluovsAngle_8levels, PerformExperiment_8levels, FindDRFrequencies, FindRelativeFluorescencesOfDR, GenerateNoisyCPT, SmoothNoisyCPT, GetFinalMaps, GenerateNoisyCPT_fixedRabi, GenerateNoisyCPT_fit
import matplotlib.pyplot as plt
import time
from threeLevel_2repumps_AnalysisFunctions import MeasureRelativeFluorescenceFromCPT, IdentifyPolarizationCoincidences, RetrieveAbsoluteCoincidencesBetweenMaps, GetClosestIndex
#C:\Users\Usuario\Nextcloud\G_liaf\liaf-TrampaAnular\Código General\EIT-CPT\Buenos Aires\Experiment Simulations\CPT scripts\Eight Level 2 repumps
ub = 9.27e-24
h = 6.63e-34
c = (ub/h)*1e-4 #en unidades de MHz/G
#u = 1e6
u = 33.5e6
B = (u/(2*np.pi))/c
#sg, sp = 0.6, 5 #parámetros de control, saturación del doppler y repump
#rabG, rabP = sg*gPS, sp*gPD #frecuencias de rabi
gPS, gPD, = 2*np.pi*21.58e6, 2*np.pi*1.35e6 #anchos de linea de las transiciones
lw = 0.1
DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth = lw, lw, lw #ancho de linea de los laseres
DetDoppler = -36 #42
DetRepumpVec = [DetDoppler+29.6]
Tvec = [0.7] #temperatura en mK
alpha = 0*(np.pi/180) #angulo entre los láseres
phidoppler, titadoppler = 0, 90
phirepump, titarepump = 0, 0
phiprobe = 0
titaprobe = 90
#Calculo las resonancias oscuras teóricas
#ResonanciasTeoricas, DRPositivas = CalculoTeoricoDarkResonances_8levels(u/(2*np.pi*1e6), titadoppler, DetDoppler, DetRepump)
#Parametros de la simulacion cpt
center = -45
span = 80
freqMin = center-span*0.5
freqMax = center+span*0.5
""" parametros para tener espectros coherentes
freqMin = -56
freqMax = 14
"""
freqStep = 1e-1
noiseamplitude = 0
RelMinMedido0Vector = []
RelMinMedido1Vector = []
RelMinMedido2Vector = []
RelMinMedido3Vector = []
RelMinMedido4Vector = []
#Sr = np.arange(0, 10, 0.2)
#Sg = np.arange(0.01, 1, 0.05)
#Sp = np.arange(0.1, 6.1, 1)
#Sg = [0.6**2]
#Sp = [2.3**2]
Sg = [1.4]
Sp = [6]
Sr = [11]
i = 0
save = False
showFigures = True
if not showFigures:
plt.ioff()
else:
plt.ion()
fig1, ax1 = plt.subplots()
offsetx = 464
ax1.plot([f-offsetx for f in FreqsDR], CountsDR, 'o')
run = True
Scale = 730
Offset = 600 #600 para 20k cuentas aprox
MaxCoherenceValue = []
for sg in Sg:
for sp in Sp:
rabG, rabP = sg*gPS, sp*gPD
for Ti in Tvec:
T = Ti*1e-3
for DetRepump in DetRepumpVec:
print(T)
for sr in Sr:
rabR = sr*gPD
#MeasuredFreq, MeasuredFluo = GenerateNoisyCPT(rabG, rabR, rabP, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqMin, freqMax, freqStep, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
if run:
MeasuredFreq4, MeasuredFluo4 = GenerateNoisyCPT_fixedRabi(sg, sr, sp, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqMin, freqMax, freqStep, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
#SmoothFluo = SmoothNoisyCPT(MeasuredFluo, window=9, poly=2)
SmoothFluo4 = MeasuredFluo4
#Scale = max(BestC)/max([100*s for s in SmoothFluo4])
ax1.plot(MeasuredFreq4, [Scale*100*f + Offset for f in SmoothFluo4], label=f'Sr = {sr}')
ax1.axvline(DetDoppler, linestyle='--', linewidth=1)
#if sr != 0:
#ax1.axvline(DetRepump, linestyle='--', linewidth=1)
MaxCoherenceValue.append(np.max(SmoothFluo4))
#print(titaprobe)
ax1.set_xlabel('Detuning Rebombeo (MHz)')
ax1.set_ylabel('Fluorescencia (AU)')
ax1.set_title(f'B: {round(B, 2)} G, Sdop: {round(sg, 2)}, Sp: {round(sp, 2)}, Sr: {round(sr, 2)}, lw: {lw} MHz, T: {Ti} mK')
#ax1.set_ylim(0, 8)
#ax1.axvline(DetDoppler, linestyle='dashed', color='red', linewidth=1)
#ax1.axvline(DetRepump, linestyle='dashed', color='black', linewidth=1)
#ax1.set_title('Pol Doppler y Repump: Sigma+ Sigma-, Pol Probe: PI')
#ax1.legend()
ax1.grid()
print (f'{i+1}/{len(Sg)*len(Sp)}')
i = i + 1
if save:
plt.savefig(f'Mapa_plots_100k_1mk/CPT_SMSM_sdop{round(sg, 2)}_sp{round(sp, 2)}_sr{round(sr, 2)}.jpg')
ax1.legend()
"""
plt.figure()
plt.plot(Sr, MaxCoherenceValue, 'o')
plt.xlabel('Sr')
plt.ylabel('Coherence')
"""
"""
plt.figure()
plt.plot(MeasuredFreq, [100*f for f in SmoothFluo], color='darkred')
plt.xlabel('Desintonía 866 (MHz)')
plt.ylabel('Fluorescencia (A.U.)')
plt.axvline(-30, color='darkblue', linewidth=1.2, linestyle='--')
plt.yticks(np.arange(0.4, 1.8, 0.2))
plt.ylim(0.5, 1.6)
plt.grid()
plt.figure()
plt.plot(MeasuredFreq4, [100*f for f in SmoothFluo4], color='darkred')
plt.xlabel('Desintonía 866 (MHz)')
plt.ylabel('Fluorescencia (A.U.)')
plt.axvline(-30, color='darkblue', linewidth=1.2, linestyle='--')
plt.yticks(np.arange(0.8, 2.4, 0.4))
plt.grid()
"""
#%%
from scipy.optimize import curve_fit
T = 0.5e-3
sg = 0.7
sp = 6
sr = 0
DetDoppler = -14
DetRepump = 0
FitsSp = []
FitsOffset = []
Sg = [0.87]
def FitEIT(freqs, SP, offset):
MeasuredFreq, MeasuredFluo = GenerateNoisyCPT_fit(0.87, sr, SP, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, T, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqs, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
FinalFluo = [f*43000 + 2685 for f in MeasuredFluo]
return FinalFluo
freqs = [f-offsetx+32 for f in FreqsDR]
freqslong = np.arange(min(freqs), max(freqs)+freqs[1]-freqs[0], 0.1*(freqs[1]-freqs[0]))
popt, pcov = curve_fit(FitEIT, freqs, CountsDR, p0=[5, 700], bounds=(0, [10, 1e6]))
FitsSp.append(popt[0])
FitsOffset.append(popt[1])
print(popt)
FittedEIT = FitEIT(freqslong, *popt)
plt.figure()
plt.errorbar(freqs, CountsDR, yerr=2*np.sqrt(CountsDR), fmt='o', capsize=2, markersize=2)
plt.plot(freqslong, FitEIT(freqslong, *popt))
plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {T*1e3} mK, detDop: {DetDoppler} MHz')
np.savetxt('CPT_measured.txt', np.transpose([freqs, CountsDR]))
np.savetxt('CPT_fitted.txt', np.transpose([freqslong, FittedEIT]))
import h5py
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
# os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230707_MotionalSpectrum_v2/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20240515_MotionalSpectrum_v3_pendientes//Data')
MOTIONAL_FILES = """
000013002-AD9910RAM_andor
000013003-AD9910RAM_andor
000013004-AD9910RAM_andor
"""
def SeeKeys(files):
for i, fname in enumerate(files.split()):
data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(fname)
print(list(data['datasets'].keys()))
print(SeeKeys(MOTIONAL_FILES))
#%%
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
Counts_roi1 = []
Counts_roi2 = []
RealFreqs = []
IR1_amp_vec = []
for i, fname in enumerate(MOTIONAL_FILES.split()):
print(str(i) + ' - ' + fname)
data = h5py.File(fname+'.h5', 'r')
RealFreqs.append(np.array(data['datasets']['real_freq']))
Counts_roi1.append(np.array(data['datasets']['counts_roi1']))
Counts_roi2.append(np.array(data['datasets']['counts_roi2']))
IR1_amp_vec.append(np.array(data['datasets']['IR1_amp']))
Potencias_IR = [0,20,50]
#%%
"""
Ploteo una curva para buscar su minimo
"""
jvec = [2,1,0]
plt.figure()
i = 0
kmin = 106
for j in jvec:
plt.errorbar([1*f*1e-3 for f in RealFreqs[j]], Counts_roi1[j], yerr=0.1*np.sqrt(Counts_roi1[j]), fmt='o', capsize=2, markersize=2, label=f'IR1 power: {Potencias_IR[j]} uW')
#plt.plot([1*f*1e-3 for f in RealFreqs[j]][kmin], Counts[j][kmin], 'o', markersize=15)
i = i + 1
plt.xlabel('Frecuencia mod IR2 (kHz)')
plt.ylabel('Cuentas/400 ms')
plt.xlim(780,810)
plt.ylim(18680,19650)
plt.grid()
plt.legend(loc='lower left')
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