Commit 81cb19fc authored by Nicolas Nunez Barreto's avatar Nicolas Nunez Barreto

tutti

parent f0d6c3a7
...@@ -22,7 +22,7 @@ Calib_Files = """000004167-UV_Scan_withcalib_Haeffner ...@@ -22,7 +22,7 @@ Calib_Files = """000004167-UV_Scan_withcalib_Haeffner
000004233-UV_Scan_withcalib_Haeffner""" 000004233-UV_Scan_withcalib_Haeffner"""
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211006_EspectrosUV_FixedScript//Data//')
#carpeta pc nico labo escritorio: #carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211006_EspectrosUV_FixedScript\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211006_EspectrosUV_FixedScript\Data
...@@ -47,7 +47,14 @@ for i, fname in enumerate(Calib_Files.split()): ...@@ -47,7 +47,14 @@ for i, fname in enumerate(Calib_Files.split()):
Amps.append(np.array(data['datasets']['UV_Amplitudes'])) Amps.append(np.array(data['datasets']['UV_Amplitudes']))
Freqs.append(np.array(data['datasets']['UV_Frequencies'])) Freqs.append(np.array(data['datasets']['UV_Frequencies']))
Counts.append(np.array(data['datasets']['counts_spectrum'])) Counts.append(np.array(data['datasets']['counts_spectrum']))
#%%
#kvec = [10]
plt.figure()
for k in kvec:
plt.plot([2*f*1e-6 for f in Freqs[k]], Counts[k],'o')
#%% #%%
...@@ -190,7 +197,7 @@ print(f'Ancho medido: {round(popt[1])} MHz, cooling en {(popt[2]-2*UV_cooling)/2 ...@@ -190,7 +197,7 @@ print(f'Ancho medido: {round(popt[1])} MHz, cooling en {(popt[2]-2*UV_cooling)/2
m = 6.6e-26 m = 6.6e-26
c = 3e8 c = 3e8
T = 100e-6 T = 10e-3
kb=1.38e-23 kb=1.38e-23
hbar=1.03e-34 hbar=1.03e-34
f0 = 755e12 f0 = 755e12
...@@ -198,19 +205,12 @@ f0 = 755e12 ...@@ -198,19 +205,12 @@ f0 = 755e12
fL = 22 fL = 22
fG = np.sqrt(8*kb*T*np.log(2)/(m*c*c))*f0*1e-6 fG = np.sqrt(8*kb*T*np.log(2)/(m*c*c))*f0*1e-6
print(fG) print('ancho gaussiano: ',fG)
"""
wl = 589e-9
T = 300
m2 = 3.5e-23
fG2 = 2*np.pi*(4*np.pi/wl)*np.sqrt(kb*T*2*np.log(2)/(m2))*1e-6
print(fG2)
"""
fV = 0.5*fL + np.sqrt((fL**2)/4 + fG**2) fV = 0.5346*fL + np.sqrt((fL**2)*0.2166 + fG**2)
print(fV) print('ancho voigt: ', fV)
#%% en teoria esto esta "bien compensado" con -1.21 V en dcB #%% en teoria esto esta "bien compensado" con -1.21 V en dcB
...@@ -242,7 +242,7 @@ plt.grid() ...@@ -242,7 +242,7 @@ plt.grid()
plt.legend() plt.legend()
print(f'Ancho medido: {round(popt[1])} MHz, cooling en {(popt[2]-2*UV_cooling)/23} det/gamma') print(f'Ancho medido: {round(popt[1])} MHz, cooling en {(popt[2]-2*UV_cooling)/23} det/gamma')
#%%
j = 7 j = 7
UV_cooling = 90 UV_cooling = 90
......
...@@ -10,6 +10,8 @@ from scipy import interpolate ...@@ -10,6 +10,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211019_CPT_primeras4DR\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211019_CPT_primeras4DR\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211019_CPT_primeras4DR//Data')
# Solo levanto algunos experimentos # Solo levanto algunos experimentos
ALL_FILES = """000004475-IR_Scan_withcal_optimized ALL_FILES = """000004475-IR_Scan_withcal_optimized
000004476-IR_Scan_withcal_optimized 000004476-IR_Scan_withcal_optimized
...@@ -49,7 +51,7 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -49,7 +51,7 @@ for i, fname in enumerate(ALL_FILES.split()):
#%% #%%
j = 10 j = 0
plt.figure() plt.figure()
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j], 'o-') plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j], 'o-')
......
...@@ -10,6 +10,8 @@ from scipy import interpolate ...@@ -10,6 +10,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211020_CPT_DosLaseres\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211020_CPT_DosLaseres\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211020_CPT_DosLaseres//Data')
ALL_FILES = """000004585-IR_Scan_withcal_optimized ALL_FILES = """000004585-IR_Scan_withcal_optimized
000004586-IR_Scan_withcal_optimized 000004586-IR_Scan_withcal_optimized
000004587-IR_Scan_withcal_optimized 000004587-IR_Scan_withcal_optimized
...@@ -61,6 +63,17 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -61,6 +63,17 @@ for i, fname in enumerate(ALL_FILES.split()):
AmpTisa.append(np.array(data['datasets']['TISA_CPT_amp'])) AmpTisa.append(np.array(data['datasets']['TISA_CPT_amp']))
No_measures.append(np.array(data['datasets']['no_measures'])) No_measures.append(np.array(data['datasets']['no_measures']))
#%%
"""
visualizacion
"""
jvec = [0]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
j = 4 #Amp tisa = 0 j = 4 #Amp tisa = 0
......
...@@ -10,6 +10,9 @@ from scipy import interpolate ...@@ -10,6 +10,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211026_CPT_DosLaseres_v02\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211026_CPT_DosLaseres_v02\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211026_CPT_DosLaseres_v02//Data')
ALL_FILES = """000004758-IR_Scan_withcal_optimized ALL_FILES = """000004758-IR_Scan_withcal_optimized
000004759-IR_Scan_withcal_optimized 000004759-IR_Scan_withcal_optimized
000004760-IR_Scan_withcal_optimized 000004760-IR_Scan_withcal_optimized
...@@ -63,6 +66,17 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -63,6 +66,17 @@ for i, fname in enumerate(ALL_FILES.split()):
Counts.append(np.array(data['datasets']['counts_spectrum'])) Counts.append(np.array(data['datasets']['counts_spectrum']))
AmpTisa.append(np.array(data['datasets']['TISA_CPT_amp'])) AmpTisa.append(np.array(data['datasets']['TISA_CPT_amp']))
No_measures.append(np.array(data['datasets']['no_measures'])) No_measures.append(np.array(data['datasets']['no_measures']))
#%%
"""
visualizacion
"""
jvec = [0]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
......
...@@ -10,6 +10,12 @@ from scipy import interpolate ...@@ -10,6 +10,12 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211101_CPT_DosLaseres_v03//Data')
"""
Interesante aca: graficos de cpt en funcion de potencias uv
"""
ALL_FILES = """000004961-IR_Scan_withcal_optimized ALL_FILES = """000004961-IR_Scan_withcal_optimized
000004962-IR_Scan_withcal_optimized 000004962-IR_Scan_withcal_optimized
000004963-IR_Scan_withcal_optimized 000004963-IR_Scan_withcal_optimized
......
...@@ -11,6 +11,7 @@ from scipy import interpolate ...@@ -11,6 +11,7 @@ from scipy import interpolate
#BUENAS MEDICIONES VARIANDO PARAMETROS #BUENAS MEDICIONES VARIANDO PARAMETROS
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211101_CPT_DosLaseres_v03//Data')
ALL_FILES = """000005054-IR_Scan_withcal_optimized ALL_FILES = """000005054-IR_Scan_withcal_optimized
000005055-IR_Scan_withcal_optimized 000005055-IR_Scan_withcal_optimized
...@@ -83,7 +84,7 @@ ALL_FILES = """000005054-IR_Scan_withcal_optimized ...@@ -83,7 +84,7 @@ ALL_FILES = """000005054-IR_Scan_withcal_optimized
000004973-IR_Scan_withcal_optimized 000004973-IR_Scan_withcal_optimized
000005010-IR_Scan_withcal_optimized 000005010-IR_Scan_withcal_optimized
""" """
[14, 13, 18, 17, 16, 15]
def SeeKeys(files): def SeeKeys(files):
for i, fname in enumerate(files.split()): for i, fname in enumerate(files.split()):
...@@ -116,6 +117,17 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -116,6 +117,17 @@ for i, fname in enumerate(ALL_FILES.split()):
UVCPTAmp.append(np.array(data['datasets']['UV_CPT_amp'])) UVCPTAmp.append(np.array(data['datasets']['UV_CPT_amp']))
No_measures.append(np.array(data['datasets']['no_measures'])) No_measures.append(np.array(data['datasets']['no_measures']))
#%%
"""
visualizacion
"""
jvec = [68]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
#VARIANDO POTENCIA ir #VARIANDO POTENCIA ir
#Poca estadistica, 5k mediciones, Tisa apagado, pot uv = 10 uW (90 MHz, 0.3), pot IR @ 200° = 20 uW #Poca estadistica, 5k mediciones, Tisa apagado, pot uv = 10 uW (90 MHz, 0.3), pot IR @ 200° = 20 uW
...@@ -369,10 +381,11 @@ DetRepump = 20 ...@@ -369,10 +381,11 @@ DetRepump = 20
lw = 0.1 lw = 0.1
DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth = lw, lw, lw #ancho de linea de los laseres DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth = lw, lw, lw #ancho de linea de los laseres
noiseamplitude = 0
u = 33.5e6 u = 33.5e6
B = (u/(2*np.pi))/c # B = (u/(2*np.pi))/c
correccion = 8 #con 10 fitea bien correccion = 8 #con 10 fitea bien
...@@ -501,7 +514,7 @@ DetRepump = 0 ...@@ -501,7 +514,7 @@ DetRepump = 0
u = 32.5e6 u = 32.5e6
B = (u/(2*np.pi))/c #B = (u/(2*np.pi))/c
correccion = 17 correccion = 17
......
...@@ -12,7 +12,7 @@ import numpy as np ...@@ -12,7 +12,7 @@ import numpy as np
import time import time
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from scipy.signal import argrelextrema from scipy.signal import argrelextrema
from threeLevel_2repumps_linealpol_python_scripts import CPTspectrum8levels, CPTspectrum8levels_fixedRabi #from threeLevel_2repumps_linealpol_python_scripts import CPTspectrum8levels, CPTspectrum8levels_fixedRabi
import random import random
from scipy.signal import savgol_filter as sf from scipy.signal import savgol_filter as sf
......
...@@ -301,8 +301,7 @@ def FullL_efficient(rabG, rabR, rabP, gPS = 0, gPD = 0, Detg = 0, Detr = 0, Detp ...@@ -301,8 +301,7 @@ def FullL_efficient(rabG, rabR, rabP, gPS = 0, gPD = 0, Detg = 0, Detr = 0, Detp
M = CalculateSingleMmatrix(gPS, gPD, lwg, lwr, lwp) M = CalculateSingleMmatrix(gPS, gPD, lwg, lwr, lwp)
L0 = np.array(np.matrix(Lfullpartial) + M) L0 = np.array(np.matrix(Lfullpartial) + M)
nmax = 1 nmax = 5
print('hola')
Lminus, Lplus, DeltaBar = Lplusminus(Detr, Detp, phirepump, titarepump) Lminus, Lplus, DeltaBar = Lplusminus(Detr, Detp, phirepump, titarepump)
factor1 = np.exp(1j*0.2*np.pi) factor1 = np.exp(1j*0.2*np.pi)
factor2 = np.exp(-1j*0.2*np.pi) factor2 = np.exp(-1j*0.2*np.pi)
...@@ -451,7 +450,7 @@ def CPTspectrum8levels_fixedRabi(sg, sr, sp, gPS, gPD, Detg, Detr, u, lwg, lwr, ...@@ -451,7 +450,7 @@ def CPTspectrum8levels_fixedRabi(sg, sr, sp, gPS, gPD, Detg, Detr, u, lwg, lwr,
return DetProbeVectorMHz, Fluovector return DetProbeVectorMHz, Fluovector
#%%
if __name__ == "__main__": if __name__ == "__main__":
ub = 9.27e-24 ub = 9.27e-24
h = 6.63e-34 h = 6.63e-34
......
...@@ -11,6 +11,7 @@ from scipy import interpolate ...@@ -11,6 +11,7 @@ from scipy import interpolate
#BUENAS MEDICIONES VARIANDO PARAMETROS #BUENAS MEDICIONES VARIANDO PARAMETROS
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211115_CPT_DosLaseres_v04\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211115_CPT_DosLaseres_v04\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211115_CPT_DosLaseres_v04//Data')
ALL_FILES = """000005717-IR_Scan_withcal_optimized ALL_FILES = """000005717-IR_Scan_withcal_optimized
000005718-IR_Scan_withcal_optimized 000005718-IR_Scan_withcal_optimized
...@@ -60,6 +61,17 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -60,6 +61,17 @@ for i, fname in enumerate(ALL_FILES.split()):
UVCPTAmp.append(np.array(data['datasets']['UV_CPT_amp'])) UVCPTAmp.append(np.array(data['datasets']['UV_CPT_amp']))
No_measures.append(np.array(data['datasets']['no_measures'])) No_measures.append(np.array(data['datasets']['no_measures']))
#%%
"""
visualizacion
"""
jvec = [14]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
#VARIANDO POTENCIA TISA #VARIANDO POTENCIA TISA
#Poca estadistica, 15k mediciones #Poca estadistica, 15k mediciones
......
...@@ -19,7 +19,9 @@ from scipy import interpolate ...@@ -19,7 +19,9 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211115_CPT_DosLaseres_v04\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211115_CPT_DosLaseres_v04\Data
os.chdir('C:/Users/Usuario/Documents/artiq/artiq_experiments/analisis/plots/20211115_CPT_DosLaseres_v04/Data') #os.chdir('C:/Users/Usuario/Documents/artiq/artiq_experiments/analisis/plots/20211115_CPT_DosLaseres_v04/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211115_CPT_DosLaseres_v04//Data')
ALL_FILES = """000005717-IR_Scan_withcal_optimized ALL_FILES = """000005717-IR_Scan_withcal_optimized
000005718-IR_Scan_withcal_optimized 000005718-IR_Scan_withcal_optimized
...@@ -75,6 +77,17 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -75,6 +77,17 @@ for i, fname in enumerate(ALL_FILES.split()):
VectoresResta = [] VectoresResta = []
#%%
"""
visualizacion
"""
jvec = [17]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
#VARIANDO POTENCIA TISA #VARIANDO POTENCIA TISA
#Poca estadistica, 15k mediciones #Poca estadistica, 15k mediciones
......
...@@ -12,6 +12,8 @@ from scipy import interpolate ...@@ -12,6 +12,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211201_CPT_DosLaseres_v05\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211201_CPT_DosLaseres_v05\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211201_CPT_DosLaseres_v05//Data')
ALL_FILES = """000006238-IR_Scan_withcal_optimized ALL_FILES = """000006238-IR_Scan_withcal_optimized
000006239-IR_Scan_withcal_optimized 000006239-IR_Scan_withcal_optimized
000006247-IR_Scan_withcal_optimized 000006247-IR_Scan_withcal_optimized
...@@ -81,7 +83,7 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -81,7 +83,7 @@ for i, fname in enumerate(ALL_FILES.split()):
#%% #%%
#VARIANDO POTENCIA IR se ve que aparecen las DR #VARIANDO POTENCIA IR se ve que aparecen las DR
jvec = [1] jvec = [32]
plt.figure() plt.figure()
......
...@@ -12,6 +12,8 @@ from scipy import interpolate ...@@ -12,6 +12,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211216_CPT_DosLaseres_v06\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211216_CPT_DosLaseres_v06\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211216_CPT_DosLaseres_v06//Data')
ALL_FILES = """000006557-IR_Scan_withcal_optimized ALL_FILES = """000006557-IR_Scan_withcal_optimized
000006558-IR_Scan_withcal_optimized 000006558-IR_Scan_withcal_optimized
000006559-IR_Scan_withcal_optimized 000006559-IR_Scan_withcal_optimized
...@@ -54,6 +56,16 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -54,6 +56,16 @@ for i, fname in enumerate(ALL_FILES.split()):
No_measures.append(np.array(data['datasets']['no_measures'])) No_measures.append(np.array(data['datasets']['no_measures']))
#%%
"""
visualizacion
"""
jvec = [0]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
......
...@@ -12,6 +12,8 @@ from scipy import interpolate ...@@ -12,6 +12,8 @@ from scipy import interpolate
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20211223_CPT_DosLaseres_v07_ChristmasSpecial//Data')
ALL_FILES = """000006832-IR_Scan_withcal_optimized ALL_FILES = """000006832-IR_Scan_withcal_optimized
000006833-IR_Scan_withcal_optimized 000006833-IR_Scan_withcal_optimized
000006834-IR_Scan_withcal_optimized 000006834-IR_Scan_withcal_optimized
...@@ -70,6 +72,16 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -70,6 +72,16 @@ for i, fname in enumerate(ALL_FILES.split()):
Freqs_B.append(np.array(data['datasets']['IR_Frequencies'])) Freqs_B.append(np.array(data['datasets']['IR_Frequencies']))
Counts_B.append(np.array(data['datasets']['counts_spectrum'])) Counts_B.append(np.array(data['datasets']['counts_spectrum']))
#%%
"""
visualizacion
"""
jvec = [0]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
......
...@@ -12,6 +12,8 @@ from scipy import interpolate ...@@ -12,6 +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('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20220106_CPT_DosLaseres_v08_TISA_DR//Data')
ALL_FILES = """000007003-IR_Scan_withcal_optimized ALL_FILES = """000007003-IR_Scan_withcal_optimized
000007004-IR_Scan_withcal_optimized 000007004-IR_Scan_withcal_optimized
000007005-IR_Scan_withcal_optimized 000007005-IR_Scan_withcal_optimized
...@@ -72,6 +74,19 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -72,6 +74,19 @@ for i, fname in enumerate(ALL_FILES.split()):
Freqs_A.append(np.array(data['datasets']['IR_Frequencies'])) Freqs_A.append(np.array(data['datasets']['IR_Frequencies']))
Counts_A.append(np.array(data['datasets']['counts_spectrum'])) Counts_A.append(np.array(data['datasets']['counts_spectrum']))
#%%
"""
visualizacion
"""
jvec = [1]
plt.figure()
for j in jvec:
plt.plot([2*f*1e-6 for f in Freqs[j]], Counts[j],'o')
#%% #%%
#Barriendo angulo del IR con tisa apagado y prendido #Barriendo angulo del IR con tisa apagado y prendido
......
...@@ -100,14 +100,14 @@ def MicromotionSpectra(det, A, beta, x0): ...@@ -100,14 +100,14 @@ def MicromotionSpectra(det, A, beta, x0):
P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100 P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100
i = 1 i = 1
#print(P) #print(P)
while i <= 2: while i <= 3:
P = P + A*((jv(i, beta))**2)/((((det-x0)+i*ftrap)**2)+(0.5*gamma)**2) + A*((jv(-i, beta))**2)/((((det-x0)-i*ftrap)**2)+(0.5*gamma)**2) P = P + A*((jv(i, beta))**2)/((((det-x0)+i*ftrap)**2)+(0.5*gamma)**2) + A*((jv(-i, beta))**2)/((((det-x0)-i*ftrap)**2)+(0.5*gamma)**2)
i = i + 1 i = i + 1
#print(P) #print(P)
return P return P
jvec = [7] #UV_cooling en 90 MHz jvec = [0] #UV_cooling en 90 MHz
""" """
plt.figure() plt.figure()
......
...@@ -12,7 +12,9 @@ from scipy import interpolate ...@@ -12,7 +12,9 @@ from scipy import interpolate
Calib_Files = """000007324-UV_Scan_withcalib_Haeffner Calib_Files = """000007324-UV_Scan_withcalib_Haeffner
""" """
"""
No da bien, da 51 MHz de ancho
"""
#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
......
...@@ -21,6 +21,8 @@ Calib_Files = """000007324-UV_Scan_withcalib_Haeffner ...@@ -21,6 +21,8 @@ Calib_Files = """000007324-UV_Scan_withcalib_Haeffner
#directory = '/home/liaf-murib/Documents/Artiq/artiq_experiments/analisis/plots/20220520_EspectrosUVyCPT_descompensacion/Data/' #directory = '/home/liaf-murib/Documents/Artiq/artiq_experiments/analisis/plots/20220520_EspectrosUVyCPT_descompensacion/Data/'
directory = '/home/nico/Documents/artiq_experiments/analisis/plots/20220520_EspectrosUVyCPT_descompensacion/Data/' directory = '/home/nico/Documents/artiq_experiments/analisis/plots/20220520_EspectrosUVyCPT_descompensacion/Data/'
directory = 'C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20220520_EspectrosUVyCPT_descompensacion//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
...@@ -66,7 +68,7 @@ def Lorentzian(f, A, x0, gamma, offset): ...@@ -66,7 +68,7 @@ def Lorentzian(f, A, x0, gamma, offset):
return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) + offset #40 es el piso de ruido estimado return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) + offset #40 es el piso de ruido estimado
jvec = [4] #UV_cooling en 90 MHz jvec = [6] #UV_cooling en 90 MHz
plt.figure() plt.figure()
...@@ -104,9 +106,9 @@ from scipy.optimize import curve_fit ...@@ -104,9 +106,9 @@ from scipy.optimize import curve_fit
def Lorentzian(f, A, gamma, x0): def Lorentzian(f, A, gamma, x0):
return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2))
def MicromotionSpectra(det, A, beta, x0, offset): def MicromotionSpectra(det, A, beta, x0, offset, gamma):
ftrap=22.1 ftrap=22.1
gamma= 29 #gamma= 40
P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+ offset P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+ offset
i = 1 i = 1
#print(P) #print(P)
...@@ -117,7 +119,7 @@ def MicromotionSpectra(det, A, beta, x0, offset): ...@@ -117,7 +119,7 @@ def MicromotionSpectra(det, A, beta, x0, offset):
return P return P
jvec = [7] #UV_cooling en 90 MHz jvec = [6] #UV_cooling en 90 MHz
""" """
plt.figure() plt.figure()
...@@ -154,7 +156,7 @@ for j in jvec: ...@@ -154,7 +156,7 @@ for j in jvec:
portion = 0. portion = 0.
popt, pcov = curve_fit(MicromotionSpectra, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):],p0=[100000,1.5,220,200], bounds=((7000,0.1,200,-500),(1000000,10,300,500))) popt, pcov = curve_fit(MicromotionSpectra, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):],p0=[100000,1.5,220,200, 22], bounds=((7000,0.1,200,-500, 0),(1000000,10,300,500,100)))
freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01) freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01)
......
...@@ -16,6 +16,7 @@ ALL_FILES = """000010146-IR_Scan_withcal_optimized ...@@ -16,6 +16,7 @@ ALL_FILES = """000010146-IR_Scan_withcal_optimized
000010147-IR_Scan_withcal_optimized 000010147-IR_Scan_withcal_optimized
""" """
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230306_DD_DarkResonancesAnalysis//Data')
def SeeKeys(files): def SeeKeys(files):
for i, fname in enumerate(files.split()): for i, fname in enumerate(files.split()):
......
...@@ -12,7 +12,9 @@ from scipy import interpolate ...@@ -12,7 +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/20230321_heatingrate/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230321_heatingrate/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230321_heatingrate//Data')
CPT_FILES = """000010420-IR_Scan_withcal_optimized CPT_FILES = """000010420-IR_Scan_withcal_optimized
000010436-IR_Scan_withcal_optimized 000010436-IR_Scan_withcal_optimized
...@@ -210,9 +212,11 @@ I simulate CPT curves with all the previous parameters but with varying temperat ...@@ -210,9 +212,11 @@ I simulate CPT curves with all the previous parameters but with varying temperat
TempVecTeorico = list(np.arange(0.3,1,0.1))+list(np.arange(1, 31, 1)) TempVecTeorico = list(np.arange(0.3,1,0.1))+list(np.arange(1, 31, 1))
CurvasTeoricas = [] CurvasTeoricas = []
counter = 0
for tempi in TempVecTeorico: for tempi in TempVecTeorico:
print(counter+1,'/',len(TempVecTeorico))
CurvasTeoricas.append(FitEITpi(freqslongpi, *popt_fullcpt[:-1], tempi*1e-3)) CurvasTeoricas.append(FitEITpi(freqslongpi, *popt_fullcpt[:-1], tempi*1e-3))
counter = counter + 1
#%% #%%
...@@ -233,16 +237,35 @@ plt.plot(freqslongpi[i_DR], curva_ref[i_DR],'o') ...@@ -233,16 +237,35 @@ plt.plot(freqslongpi[i_DR], curva_ref[i_DR],'o')
""" """
ploteo algunos CPTs teoricos para algunas temperaturas ploteo algunos CPTs teoricos para algunas temperaturas
Plotting some theory cpt curves for some temperatures Plotting some theory cpt curves for some temperatures
Figura para la tesis
""" """
import seaborn as sns
plt.plot(freqslongpi, CurvasTeoricas[0]) k1, k2, k3, k4 = 0, 6, 11, 20
plt.plot(freqslongpi[i_DR], CurvasTeoricas[0][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[10])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[10][i_DR],'o',markersize=10) paleta = sns.color_palette("coolwarm", 11)
plt.plot(freqslongpi, CurvasTeoricas[20])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[20][i_DR],'o',markersize=10) color1 = paleta[0]
plt.xlabel('Detuning (MHz)') color2 = paleta[2]
plt.ylabel('Fluorescence') color3 = paleta[8]
color4 = paleta[10]
lw = 3
plt.figure(figsize=(4,4))
plt.plot(freqslongpi, CurvasTeoricas[k1], color=color1, linewidth=lw, alpha=0.8)
plt.plot(freqslongpi[i_DR], CurvasTeoricas[k1][i_DR],'o', color=color1,markersize=12,mec='black')
plt.plot(freqslongpi, CurvasTeoricas[k2], color=color2, linewidth=lw, alpha=0.8)
plt.plot(freqslongpi[i_DR], CurvasTeoricas[k2][i_DR],'o', color=color2,markersize=12,mec='black')
plt.plot(freqslongpi, CurvasTeoricas[k3], color=color3, linewidth=lw, alpha=0.8)
plt.plot(freqslongpi[i_DR], CurvasTeoricas[k3][i_DR],'o', color=color3,markersize=12,mec='black')
plt.plot(freqslongpi, CurvasTeoricas[k4], color=color4, linewidth=lw, alpha=0.8)
plt.plot(freqslongpi[i_DR], CurvasTeoricas[k4][i_DR],'o', color=color4,markersize=12,mec='black')
plt.xlabel('Desintonía IR (MHz)')
plt.ylabel('Fluorescencia teórica')
plt.xlim(-50,15)
plt.grid() plt.grid()
...@@ -289,12 +312,6 @@ plt.errorbar([t*1e3 for t in Heating_tim], Heating_med, yerr=ErrorHeating_med, f ...@@ -289,12 +312,6 @@ plt.errorbar([t*1e3 for t in Heating_tim], Heating_med, yerr=ErrorHeating_med, f
plt.ylabel('Cuentas de DR medidas') plt.ylabel('Cuentas de DR medidas')
plt.xlabel('Heating time (s)') plt.xlabel('Heating time (s)')
def lineal(x,a,b):
return a*x+b
#p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas, sigma=Error_Temperaturas_interpoladas)
p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas)
#%% #%%
""" """
...@@ -302,8 +319,15 @@ Grafico finalmente el plot del heating rate de la trampa ...@@ -302,8 +319,15 @@ Grafico finalmente el plot del heating rate de la trampa
Finally I plot the heating rate of the trap Finally I plot the heating rate of the trap
""" """
def lineal(x,a):
return a*x+0.5
plt.figure() #p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas, sigma=Error_Temperaturas_interpoladas)
p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas)
plt.figure(figsize=(5,7))
#plt.plot(Heating_tim_ms,Temperaturas_interpoladas,'o') #plt.plot(Heating_tim_ms,Temperaturas_interpoladas,'o')
plt.errorbar(Heating_tim_ms,Temperaturas_interpoladas, yerr=np.array(Error_Temperaturas_interpoladas), fmt='o', capsize=2, markersize=7, color='black') plt.errorbar(Heating_tim_ms,Temperaturas_interpoladas, yerr=np.array(Error_Temperaturas_interpoladas), fmt='o', capsize=2, markersize=7, color='black')
plt.plot(Heating_tim_ms, lineal(np.array(Heating_tim_ms), *p1), color='red') plt.plot(Heating_tim_ms, lineal(np.array(Heating_tim_ms), *p1), color='red')
...@@ -314,7 +338,7 @@ plt.xticks([0, 5, 10, 15, 20 ,25, 30, 35], fontname='STIXGeneral', fontsize=15) ...@@ -314,7 +338,7 @@ plt.xticks([0, 5, 10, 15, 20 ,25, 30, 35], fontname='STIXGeneral', fontsize=15)
plt.yticks([0, 5, 10, 15], fontname='STIXGeneral', fontsize=15) plt.yticks([0, 5, 10, 15], fontname='STIXGeneral', fontsize=15)
plt.title(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms', fontname='STIXGeneral', fontsize=15) plt.title(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms', fontname='STIXGeneral', fontsize=15)
plt.tight_layout() plt.tight_layout()
plt.savefig('Fig_heatingrate.svg') #plt.savefig('Fig_heatingrate.svg')
print(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms') print(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms')
...@@ -396,6 +420,8 @@ to obtain saturation parameters ...@@ -396,6 +420,8 @@ to obtain saturation parameters
jvec = [7,8,9,10,11,12] jvec = [7,8,9,10,11,12]
jvec = [7,9,11, 12]
plt.figure() plt.figure()
for j in jvec: for j in jvec:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating') plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
......
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="432pt" height="288pt" viewBox="0 0 432 288" xmlns="http://www.w3.org/2000/svg" version="1.1">
<metadata>
<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<cc:Work>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:date>2024-05-01T20:51:12.570433</dc:date>
<dc:format>image/svg+xml</dc:format>
<dc:creator>
<cc:Agent>
<dc:title>Matplotlib v3.7.0, https://matplotlib.org/</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<defs>
<style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
</defs>
<g id="figure_1">
<g id="patch_1">
<path d="M 0 288
L 432 288
L 432 0
L 0 0
z
" style="fill: #ffffff"/>
</g>
<g id="axes_1">
<g id="patch_2">
<path d="M 50.190625 239.41875
L 421.2 239.41875
L 421.2 27.190625
L 50.190625 27.190625
z
" style="fill: #ffffff"/>
</g>
<g id="matplotlib.axis_1">
<g id="xtick_1">
<g id="line2d_1">
<path d="M 67.054688 239.41875
L 67.054688 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_2">
<defs>
<path id="m6de5a0a289" d="M 0 0
L 0 3.5
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#m6de5a0a289" x="67.054688" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_1">
<!-- 0 -->
<g transform="translate(63.304688 256.663281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-30" d="M 3046 2112
Q 3046 1683 2963 1302
Q 2880 922 2717 602
Q 2554 282 2266 96
Q 1978 -90 1600 -90
Q 1210 -90 915 108
Q 621 307 461 640
Q 301 973 227 1350
Q 154 1728 154 2150
Q 154 2746 301 3222
Q 448 3699 790 4012
Q 1133 4326 1626 4326
Q 2253 4326 2649 3712
Q 3046 3098 3046 2112
z
M 2432 2080
Q 2432 3091 2217 3625
Q 2003 4160 1587 4160
Q 1190 4160 979 3622
Q 768 3085 768 2106
Q 768 1120 979 598
Q 1190 77 1600 77
Q 2003 77 2217 598
Q 2432 1120 2432 2080
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-30"/>
</g>
</g>
</g>
<g id="xtick_2">
<g id="line2d_3">
<path d="M 116.241536 239.41875
L 116.241536 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_4">
<g>
<use xlink:href="#m6de5a0a289" x="116.241536" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_2">
<!-- 5 -->
<g transform="translate(112.491536 256.663281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-35" d="M 2803 4358
L 2573 3814
Q 2534 3731 2400 3731
L 1158 3731
L 902 3187
Q 1606 3053 1920 2896
Q 2234 2739 2502 2368
Q 2726 2061 2726 1555
Q 2726 1094 2576 780
Q 2426 467 2099 224
Q 1664 -90 1011 -90
Q 646 -90 422 19
Q 198 128 198 307
Q 198 550 486 550
Q 717 550 960 352
Q 1210 147 1414 147
Q 1747 147 2012 480
Q 2278 813 2278 1229
Q 2278 1843 1850 2189
Q 1293 2637 486 2637
Q 410 2637 410 2688
L 416 2720
L 1114 4237
L 2438 4237
Q 2547 4237 2608 4269
Q 2669 4301 2746 4403
L 2803 4358
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-35"/>
</g>
</g>
</g>
<g id="xtick_3">
<g id="line2d_5">
<path d="M 165.428385 239.41875
L 165.428385 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_6">
<g>
<use xlink:href="#m6de5a0a289" x="165.428385" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_3">
<!-- 10 -->
<g transform="translate(157.928385 256.663281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-31" d="M 2522 0
L 755 0
L 755 96
Q 1107 115 1235 227
Q 1363 339 1363 608
L 1363 3482
Q 1363 3795 1171 3795
Q 1082 3795 883 3718
L 710 3654
L 710 3744
L 1856 4326
L 1914 4307
L 1914 486
Q 1914 275 2042 185
Q 2170 96 2522 96
L 2522 0
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-31"/>
<use xlink:href="#STIXGeneral-Regular-30" x="49.999985"/>
</g>
</g>
</g>
<g id="xtick_4">
<g id="line2d_7">
<path d="M 214.615234 239.41875
L 214.615234 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_8">
<g>
<use xlink:href="#m6de5a0a289" x="214.615234" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_4">
<!-- 15 -->
<g transform="translate(207.115234 256.663281) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-31"/>
<use xlink:href="#STIXGeneral-Regular-35" x="49.999985"/>
</g>
</g>
</g>
<g id="xtick_5">
<g id="line2d_9">
<path d="M 263.802083 239.41875
L 263.802083 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_10">
<g>
<use xlink:href="#m6de5a0a289" x="263.802083" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_5">
<!-- 20 -->
<g transform="translate(256.302083 256.663281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-32" d="M 3034 877
L 2688 0
L 186 0
L 186 77
L 1325 1286
Q 1773 1754 1965 2144
Q 2157 2534 2157 2950
Q 2157 3379 1920 3616
Q 1683 3853 1267 3853
Q 922 3853 720 3673
Q 518 3494 326 3021
L 192 3053
Q 301 3648 630 3987
Q 960 4326 1523 4326
Q 2054 4326 2380 4006
Q 2707 3686 2707 3200
Q 2707 2477 1888 1613
L 832 486
L 2330 486
Q 2541 486 2665 569
Q 2790 653 2944 915
L 3034 877
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-32"/>
<use xlink:href="#STIXGeneral-Regular-30" x="49.999985"/>
</g>
</g>
</g>
<g id="xtick_6">
<g id="line2d_11">
<path d="M 312.988932 239.41875
L 312.988932 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_12">
<g>
<use xlink:href="#m6de5a0a289" x="312.988932" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_6">
<!-- 25 -->
<g transform="translate(305.488932 256.663281) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-32"/>
<use xlink:href="#STIXGeneral-Regular-35" x="49.999985"/>
</g>
</g>
</g>
<g id="xtick_7">
<g id="line2d_13">
<path d="M 362.175781 239.41875
L 362.175781 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_14">
<g>
<use xlink:href="#m6de5a0a289" x="362.175781" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_7">
<!-- 30 -->
<g transform="translate(354.675781 256.663281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-33" d="M 390 3264
L 288 3290
Q 435 3770 748 4048
Q 1062 4326 1542 4326
Q 1990 4326 2265 4083
Q 2541 3840 2541 3450
Q 2541 2925 1946 2566
Q 2298 2413 2477 2227
Q 2758 1914 2758 1402
Q 2758 890 2464 506
Q 2246 211 1840 60
Q 1434 -90 979 -90
Q 262 -90 262 275
Q 262 378 339 442
Q 416 506 525 506
Q 685 506 915 339
Q 1197 141 1466 141
Q 1818 141 2058 425
Q 2298 710 2298 1120
Q 2298 1856 1632 2048
Q 1434 2112 979 2112
L 979 2202
Q 1338 2323 1517 2432
Q 2035 2726 2035 3290
Q 2035 3610 1852 3776
Q 1670 3942 1344 3942
Q 768 3942 390 3264
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-33"/>
<use xlink:href="#STIXGeneral-Regular-30" x="49.999985"/>
</g>
</g>
</g>
<g id="xtick_8">
<g id="line2d_15">
<path d="M 411.36263 239.41875
L 411.36263 27.190625
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_16">
<g>
<use xlink:href="#m6de5a0a289" x="411.36263" y="239.41875" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_8">
<!-- 35 -->
<g transform="translate(403.86263 256.663281) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-33"/>
<use xlink:href="#STIXGeneral-Regular-35" x="49.999985"/>
</g>
</g>
</g>
<g id="text_9">
<!-- Heating time (ms) -->
<g transform="translate(181.117578 274.163281) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-48" d="M 4499 0
L 2714 0
L 2714 122
Q 3085 147 3181 265
Q 3277 384 3277 794
L 3277 2016
L 1338 2016
L 1338 723
Q 1338 371 1440 256
Q 1542 141 1894 122
L 1901 0
L 115 0
L 115 122
Q 493 147 589 259
Q 685 371 685 781
L 685 3507
Q 685 3878 585 3980
Q 486 4083 115 4115
L 115 4237
L 1907 4237
L 1907 4115
Q 1549 4083 1443 3977
Q 1338 3872 1338 3507
L 1338 2298
L 3277 2298
L 3277 3507
Q 3277 3878 3177 3980
Q 3078 4083 2707 4115
L 2707 4237
L 4499 4237
L 4499 4115
Q 4141 4083 4035 3977
Q 3930 3872 3930 3507
L 3930 710
Q 3930 371 4035 259
Q 4141 147 4499 122
L 4499 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-65" d="M 2611 1050
L 2714 1005
Q 2330 -64 1376 -64
Q 813 -64 486 329
Q 160 723 160 1389
Q 160 2074 525 2509
Q 890 2944 1485 2944
Q 2061 2944 2374 2502
Q 2560 2246 2592 1773
L 621 1773
Q 646 1370 700 1158
Q 755 947 915 730
Q 1184 378 1626 378
Q 1939 378 2153 531
Q 2368 685 2611 1050
z
M 634 1978
L 1939 1978
Q 1882 2381 1750 2547
Q 1619 2714 1312 2714
Q 1043 2714 864 2525
Q 685 2336 634 1978
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-61" d="M 2829 422
L 2829 243
Q 2586 -64 2253 -64
Q 1888 -64 1843 403
L 1837 403
Q 1427 -64 909 -64
Q 608 -64 422 112
Q 237 288 237 602
Q 237 1050 685 1350
Q 992 1555 1837 1869
L 1837 2214
Q 1837 2502 1699 2646
Q 1562 2790 1338 2790
Q 1146 2790 1018 2697
Q 890 2605 890 2477
Q 890 2419 909 2348
Q 928 2278 928 2208
Q 928 2112 841 2029
Q 755 1946 634 1946
Q 525 1946 441 2029
Q 358 2112 358 2240
Q 358 2547 685 2752
Q 986 2944 1421 2944
Q 1939 2944 2176 2656
Q 2291 2522 2323 2384
Q 2355 2246 2355 1946
L 2355 723
Q 2355 301 2554 301
Q 2682 301 2829 422
z
M 1837 813
L 1837 1715
Q 1248 1510 1018 1293
Q 800 1094 800 800
Q 800 557 921 432
Q 1043 307 1242 307
Q 1453 307 1613 410
Q 1747 506 1792 589
Q 1837 672 1837 813
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-74" d="M 1702 493
L 1786 422
Q 1478 -64 1011 -64
Q 448 -64 448 749
L 448 2675
L 109 2675
Q 83 2694 83 2720
Q 83 2771 192 2842
Q 435 2982 813 3526
Q 826 3546 874 3606
Q 922 3667 941 3706
Q 986 3706 986 3622
L 986 2880
L 1632 2880
L 1632 2675
L 986 2675
L 986 845
Q 986 538 1062 403
Q 1139 269 1318 269
Q 1510 269 1702 493
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-69" d="M 1152 4045
Q 1152 3904 1056 3811
Q 960 3718 819 3718
Q 685 3718 592 3811
Q 499 3904 499 4045
Q 499 4179 595 4275
Q 691 4371 826 4371
Q 966 4371 1059 4275
Q 1152 4179 1152 4045
z
M 1619 0
L 102 0
L 102 96
Q 435 115 521 211
Q 608 307 608 666
L 608 2118
Q 608 2342 563 2432
Q 518 2522 397 2522
Q 243 2522 128 2490
L 128 2592
L 1120 2944
L 1146 2918
L 1146 672
Q 1146 314 1226 218
Q 1306 122 1619 96
L 1619 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-6e" d="M 3104 0
L 1773 0
L 1779 96
Q 2016 115 2096 233
Q 2176 352 2176 672
L 2176 1946
Q 2176 2592 1709 2592
Q 1549 2592 1408 2515
Q 1267 2438 1050 2227
L 1050 461
Q 1050 269 1136 192
Q 1222 115 1466 96
L 1466 0
L 115 0
L 115 96
Q 358 115 435 214
Q 512 314 512 602
L 512 2157
Q 512 2394 467 2483
Q 422 2573 288 2573
Q 160 2573 102 2547
L 102 2656
Q 550 2784 979 2944
L 1030 2925
L 1030 2426
L 1037 2426
Q 1491 2944 1958 2944
Q 2323 2944 2518 2688
Q 2714 2432 2714 1958
L 2714 544
Q 2714 288 2790 205
Q 2867 122 3104 96
L 3104 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-67" d="M 3008 2483
L 2477 2483
Q 2598 2208 2598 1946
Q 2598 1453 2265 1203
Q 1933 954 1600 954
Q 1530 954 1357 973
L 1235 986
Q 1107 947 979 812
Q 851 678 851 582
Q 851 435 1350 410
L 2176 371
Q 2528 358 2739 172
Q 2950 -13 2950 -314
Q 2950 -685 2566 -986
Q 2035 -1395 1286 -1395
Q 826 -1395 502 -1212
Q 179 -1030 179 -774
Q 179 -595 320 -419
Q 461 -243 806 6
Q 602 102 534 172
Q 467 243 467 346
Q 467 531 762 787
Q 909 915 1037 1043
Q 717 1203 579 1401
Q 442 1600 442 1901
Q 442 2336 752 2640
Q 1062 2944 1510 2944
Q 1766 2944 2022 2848
L 2163 2797
Q 2349 2733 2515 2733
L 3008 2733
L 3008 2483
z
M 973 2163
L 973 2144
Q 973 1683 1155 1398
Q 1338 1114 1632 1114
Q 1850 1114 1978 1270
Q 2106 1427 2106 1690
Q 2106 2112 1914 2464
Q 1754 2765 1446 2765
Q 1222 2765 1097 2605
Q 973 2445 973 2163
z
M 2771 -410
Q 2771 -230 2595 -163
Q 2419 -96 1978 -96
Q 1344 -96 941 -13
Q 749 -243 688 -348
Q 627 -454 627 -563
Q 627 -774 880 -902
Q 1133 -1030 1555 -1030
Q 2099 -1030 2435 -860
Q 2771 -691 2771 -410
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-20" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-6d" d="M 4960 0
L 3565 0
L 3565 96
Q 3834 122 3907 208
Q 3981 294 3981 576
L 3981 1894
Q 3981 2278 3869 2444
Q 3757 2611 3488 2611
Q 3264 2611 3107 2521
Q 2950 2432 2803 2221
L 2803 608
Q 2803 301 2896 201
Q 2989 102 3264 96
L 3264 0
L 1830 0
L 1830 96
Q 2112 115 2189 188
Q 2266 262 2266 550
L 2266 1901
Q 2266 2611 1850 2611
Q 1670 2611 1468 2531
Q 1267 2451 1171 2336
Q 1088 2240 1088 2227
L 1088 448
Q 1088 243 1177 176
Q 1267 109 1523 96
L 1523 0
L 102 0
L 102 96
Q 371 102 460 195
Q 550 288 550 563
L 550 2150
Q 550 2387 499 2480
Q 448 2573 326 2573
Q 230 2573 122 2547
L 122 2656
Q 557 2778 1011 2944
L 1062 2925
L 1062 2451
L 1075 2451
Q 1363 2752 1584 2848
Q 1805 2944 2054 2944
Q 2560 2944 2733 2406
Q 3232 2944 3776 2944
Q 4518 2944 4518 1792
L 4518 493
Q 4518 282 4582 202
Q 4646 122 4794 109
L 4960 96
L 4960 0
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-28" d="M 1946 -1030
L 1869 -1133
Q 1126 -710 716 32
Q 307 774 307 1613
Q 307 3386 1888 4326
L 1946 4224
Q 1293 3667 1075 3126
Q 858 2586 858 1632
Q 858 685 1082 96
Q 1306 -493 1946 -1030
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-73" d="M 998 1926
L 1664 1523
Q 1984 1331 2105 1164
Q 2227 998 2227 736
Q 2227 416 1961 176
Q 1696 -64 1331 -64
Q 1030 -64 864 -6
Q 691 51 570 51
Q 461 51 416 -26
L 333 -26
L 333 979
L 435 979
Q 538 512 730 294
Q 922 77 1248 77
Q 1485 77 1632 211
Q 1779 346 1779 550
Q 1779 845 1440 1030
L 1094 1222
Q 326 1651 326 2150
Q 326 2522 566 2730
Q 806 2938 1210 2938
Q 1491 2938 1638 2867
Q 1754 2816 1818 2816
Q 1862 2816 1920 2880
L 1990 2880
L 2022 2010
L 1926 2010
Q 1818 2445 1654 2621
Q 1491 2797 1203 2797
Q 986 2797 854 2688
Q 723 2579 723 2362
Q 723 2253 796 2128
Q 870 2003 998 1926
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-29" d="M 186 4224
L 262 4326
Q 992 3891 1408 3148
Q 1824 2406 1824 1581
Q 1824 -166 243 -1133
L 186 -1030
Q 845 -486 1059 54
Q 1274 595 1274 1562
Q 1274 2534 1059 3120
Q 845 3706 186 4224
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-48"/>
<use xlink:href="#STIXGeneral-Regular-65" x="72.199982"/>
<use xlink:href="#STIXGeneral-Regular-61" x="116.599976"/>
<use xlink:href="#STIXGeneral-Regular-74" x="160.999969"/>
<use xlink:href="#STIXGeneral-Regular-69" x="188.799957"/>
<use xlink:href="#STIXGeneral-Regular-6e" x="216.599945"/>
<use xlink:href="#STIXGeneral-Regular-67" x="266.59993"/>
<use xlink:href="#STIXGeneral-Regular-20" x="316.599915"/>
<use xlink:href="#STIXGeneral-Regular-74" x="341.599899"/>
<use xlink:href="#STIXGeneral-Regular-69" x="369.399887"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="397.199875"/>
<use xlink:href="#STIXGeneral-Regular-65" x="474.999863"/>
<use xlink:href="#STIXGeneral-Regular-20" x="519.399857"/>
<use xlink:href="#STIXGeneral-Regular-28" x="544.399841"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="577.699829"/>
<use xlink:href="#STIXGeneral-Regular-73" x="655.499817"/>
<use xlink:href="#STIXGeneral-Regular-29" x="694.399811"/>
</g>
</g>
</g>
<g id="matplotlib.axis_2">
<g id="ytick_1">
<g id="line2d_17">
<path d="M 50.190625 236.352819
L 421.2 236.352819
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_18">
<defs>
<path id="m0d48f4e191" d="M 0 0
L -3.5 0
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#m0d48f4e191" x="50.190625" y="236.352819" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_10">
<!-- 0 -->
<g transform="translate(35.690625 241.475085) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-30"/>
</g>
</g>
</g>
<g id="ytick_2">
<g id="line2d_19">
<path d="M 50.190625 170.544795
L 421.2 170.544795
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_20">
<g>
<use xlink:href="#m0d48f4e191" x="50.190625" y="170.544795" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_11">
<!-- 5 -->
<g transform="translate(35.690625 175.667061) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-35"/>
</g>
</g>
</g>
<g id="ytick_3">
<g id="line2d_21">
<path d="M 50.190625 104.736771
L 421.2 104.736771
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_22">
<g>
<use xlink:href="#m0d48f4e191" x="50.190625" y="104.736771" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_12">
<!-- 10 -->
<g transform="translate(28.190625 109.859037) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-31"/>
<use xlink:href="#STIXGeneral-Regular-30" x="49.999985"/>
</g>
</g>
</g>
<g id="ytick_4">
<g id="line2d_23">
<path d="M 50.190625 38.928747
L 421.2 38.928747
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_24">
<g>
<use xlink:href="#m0d48f4e191" x="50.190625" y="38.928747" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_13">
<!-- 15 -->
<g transform="translate(28.190625 44.051013) scale(0.15 -0.15)">
<use xlink:href="#STIXGeneral-Regular-31"/>
<use xlink:href="#STIXGeneral-Regular-35" x="49.999985"/>
</g>
</g>
</g>
<g id="text_14">
<!-- Temperature (mK) -->
<g transform="translate(20.935156 189.742187) rotate(-90) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-54" d="M 3795 3149
L 3642 3149
Q 3539 3674 3353 3821
Q 3168 3968 2656 3968
L 2278 3968
L 2278 710
Q 2278 346 2387 243
Q 2496 141 2893 122
L 2893 0
L 1024 0
L 1024 122
Q 1427 147 1526 256
Q 1626 365 1626 787
L 1626 3968
L 1242 3968
Q 723 3968 540 3817
Q 358 3667 262 3149
L 109 3149
L 154 4237
L 3750 4237
L 3795 3149
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-70" d="M 1018 2931
L 1018 2438
Q 1421 2944 1939 2944
Q 2406 2944 2707 2560
Q 3008 2176 3008 1581
Q 3008 883 2621 409
Q 2234 -64 1664 -64
Q 1466 -64 1328 -6
Q 1190 51 1018 211
L 1018 -794
Q 1018 -1094 1120 -1180
Q 1222 -1267 1581 -1274
L 1581 -1389
L 32 -1389
L 32 -1280
Q 314 -1254 397 -1171
Q 480 -1088 480 -838
L 480 2157
Q 480 2381 429 2451
Q 378 2522 218 2522
Q 115 2522 58 2515
L 58 2618
Q 506 2752 979 2944
L 1018 2931
z
M 1018 2138
L 1018 563
Q 1018 422 1238 281
Q 1459 141 1683 141
Q 2029 141 2243 467
Q 2458 794 2458 1325
Q 2458 1888 2243 2224
Q 2029 2560 1670 2560
Q 1446 2560 1232 2419
Q 1018 2278 1018 2138
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-72" d="M 1024 2931
L 1024 2342
Q 1267 2688 1430 2816
Q 1594 2944 1792 2944
Q 1958 2944 2051 2854
Q 2144 2765 2144 2605
Q 2144 2470 2077 2393
Q 2010 2317 1894 2317
Q 1773 2317 1638 2445
Q 1536 2541 1472 2541
Q 1338 2541 1181 2355
Q 1024 2170 1024 2016
L 1024 576
Q 1024 301 1133 205
Q 1242 109 1568 96
L 1568 0
L 32 0
L 32 96
Q 339 154 412 224
Q 486 294 486 538
L 486 2138
Q 486 2349 438 2435
Q 390 2522 269 2522
Q 166 2522 45 2496
L 45 2598
Q 448 2726 992 2944
L 1024 2931
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-75" d="M 3072 320
L 3072 230
Q 2573 96 2195 -58
L 2163 -38
L 2163 486
L 2150 486
Q 1747 -64 1235 -64
Q 870 -64 662 160
Q 454 384 454 755
L 454 2362
Q 454 2598 371 2688
Q 288 2778 58 2790
L 58 2880
L 992 2880
L 992 813
Q 992 595 1123 451
Q 1254 307 1446 307
Q 1760 307 1984 506
Q 2067 582 2099 649
Q 2131 717 2131 877
L 2131 2355
Q 2131 2605 2041 2678
Q 1952 2752 1658 2771
L 1658 2880
L 2669 2880
L 2669 685
Q 2669 461 2742 390
Q 2816 320 3034 320
L 3072 320
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-4b" d="M 4627 0
L 2688 0
L 2688 122
L 2861 128
Q 3130 134 3130 282
Q 3130 397 2922 643
Q 2714 890 2253 1370
L 1613 2029
L 1446 1894
L 1446 710
Q 1446 352 1548 253
Q 1651 154 2016 122
L 2016 0
L 211 0
L 211 122
Q 589 141 691 262
Q 794 384 794 800
L 794 3514
Q 794 3872 691 3981
Q 589 4090 218 4115
L 218 4237
L 2022 4237
L 2022 4115
Q 1632 4090 1539 3987
Q 1446 3885 1446 3507
L 1446 2227
L 2586 3277
Q 2861 3533 2973 3667
Q 3085 3802 3085 3910
Q 3085 4013 3030 4057
Q 2976 4102 2822 4109
L 2662 4115
L 2662 4237
L 4320 4237
L 4320 4115
Q 3994 4090 3824 4003
Q 3654 3917 3322 3597
L 2131 2458
L 3629 819
Q 4026 384 4214 253
Q 4403 122 4627 122
L 4627 0
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-54"/>
<use xlink:href="#STIXGeneral-Regular-65" x="61.099991"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="105.499985"/>
<use xlink:href="#STIXGeneral-Regular-70" x="183.299973"/>
<use xlink:href="#STIXGeneral-Regular-65" x="233.299957"/>
<use xlink:href="#STIXGeneral-Regular-72" x="277.699951"/>
<use xlink:href="#STIXGeneral-Regular-61" x="310.999939"/>
<use xlink:href="#STIXGeneral-Regular-74" x="355.399933"/>
<use xlink:href="#STIXGeneral-Regular-75" x="383.199921"/>
<use xlink:href="#STIXGeneral-Regular-72" x="433.199905"/>
<use xlink:href="#STIXGeneral-Regular-65" x="466.499893"/>
<use xlink:href="#STIXGeneral-Regular-20" x="510.899887"/>
<use xlink:href="#STIXGeneral-Regular-28" x="535.899872"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="569.19986"/>
<use xlink:href="#STIXGeneral-Regular-4b" x="646.999847"/>
<use xlink:href="#STIXGeneral-Regular-29" x="719.199829"/>
</g>
</g>
</g>
<g id="LineCollection_1">
<path d="M 67.054688 224.637123
L 67.054688 222.023081
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 109.214844 212.763012
L 109.214844 207.821097
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 151.375 208.583832
L 151.375 203.148796
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 193.535156 191.852808
L 193.535156 183.069737
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 235.695312 162.912768
L 235.695312 143.771642
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 277.855469 158.116945
L 277.855469 136.392752
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 320.015625 126.115688
L 320.015625 90.126434
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 362.175781 120.019951
L 362.175781 80.771586
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
<path d="M 404.335938 92.495708
L 404.335938 36.837358
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #000000; stroke-width: 1.5"/>
</g>
<g id="line2d_25">
<defs>
<path id="mf42111d7ce" d="M 2 0
L -2 -0
" style="stroke: #000000"/>
</defs>
<g clip-path="url(#p6c09b7d4c6)">
<use xlink:href="#mf42111d7ce" x="67.054688" y="224.637123" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="109.214844" y="212.763012" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="151.375" y="208.583832" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="193.535156" y="191.852808" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="235.695312" y="162.912768" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="277.855469" y="158.116945" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="320.015625" y="126.115688" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="362.175781" y="120.019951" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="404.335938" y="92.495708" style="stroke: #000000"/>
</g>
</g>
<g id="line2d_26">
<g clip-path="url(#p6c09b7d4c6)">
<use xlink:href="#mf42111d7ce" x="67.054688" y="222.023081" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="109.214844" y="207.821097" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="151.375" y="203.148796" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="193.535156" y="183.069737" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="235.695312" y="143.771642" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="277.855469" y="136.392752" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="320.015625" y="90.126434" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="362.175781" y="80.771586" style="stroke: #000000"/>
<use xlink:href="#mf42111d7ce" x="404.335938" y="36.837358" style="stroke: #000000"/>
</g>
</g>
<g id="line2d_27">
<path d="M 67.054688 229.772017
L 109.214844 210.806762
L 151.375 191.841507
L 193.535156 172.876252
L 235.695312 153.910997
L 277.855469 134.945742
L 320.015625 115.980486
L 362.175781 97.015231
L 404.335938 78.049976
" clip-path="url(#p6c09b7d4c6)" style="fill: none; stroke: #ff0000; stroke-width: 1.5; stroke-linecap: square"/>
</g>
<g id="line2d_28">
<defs>
<path id="m10ae654518" d="M 0 3.5
C 0.928211 3.5 1.81853 3.131218 2.474874 2.474874
C 3.131218 1.81853 3.5 0.928211 3.5 0
C 3.5 -0.928211 3.131218 -1.81853 2.474874 -2.474874
C 1.81853 -3.131218 0.928211 -3.5 0 -3.5
C -0.928211 -3.5 -1.81853 -3.131218 -2.474874 -2.474874
C -3.131218 -1.81853 -3.5 -0.928211 -3.5 0
C -3.5 0.928211 -3.131218 1.81853 -2.474874 2.474874
C -1.81853 3.131218 -0.928211 3.5 0 3.5
z
" style="stroke: #000000"/>
</defs>
<g clip-path="url(#p6c09b7d4c6)">
<use xlink:href="#m10ae654518" x="67.054688" y="223.330102" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="109.214844" y="210.292055" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="151.375" y="205.866314" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="193.535156" y="187.461272" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="235.695312" y="153.342205" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="277.855469" y="147.254849" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="320.015625" y="108.121061" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="362.175781" y="100.395769" style="stroke: #000000"/>
<use xlink:href="#m10ae654518" x="404.335938" y="64.666533" style="stroke: #000000"/>
</g>
</g>
<g id="patch_3">
<path d="M 50.190625 239.41875
L 50.190625 27.190625
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_4">
<path d="M 421.2 239.41875
L 421.2 27.190625
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_5">
<path d="M 50.190625 239.41875
L 421.2 239.41875
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_6">
<path d="M 50.190625 27.190625
L 421.2 27.190625
" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="text_15">
<!-- Heating rate: (0.34 +- 0.01) mK/ms -->
<g transform="translate(128.280078 21.190625) scale(0.15 -0.15)">
<defs>
<path id="STIXGeneral-Regular-3a" d="M 1123 2832
Q 1229 2726 1229 2579
Q 1229 2432 1126 2329
Q 1024 2227 877 2227
Q 730 2227 624 2332
Q 518 2438 518 2579
Q 518 2733 620 2835
Q 723 2938 877 2938
Q 1018 2938 1123 2832
z
M 1229 282
Q 1229 141 1126 35
Q 1024 -70 877 -70
Q 730 -70 624 35
Q 518 141 518 282
Q 518 435 620 537
Q 723 640 877 640
Q 1018 640 1123 534
Q 1229 429 1229 282
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2e" d="M 1158 275
Q 1158 134 1052 32
Q 947 -70 800 -70
Q 653 -70 550 32
Q 448 134 448 281
Q 448 429 553 534
Q 659 640 806 640
Q 947 640 1052 531
Q 1158 422 1158 275
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-34" d="M 3027 1069
L 2368 1069
L 2368 0
L 1869 0
L 1869 1069
L 77 1069
L 77 1478
L 2086 4326
L 2368 4326
L 2368 1478
L 3027 1478
L 3027 1069
z
M 1869 1478
L 1869 3674
L 333 1478
L 1869 1478
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2b" d="M 4070 1408
L 2400 1408
L 2400 -262
L 1978 -262
L 1978 1408
L 307 1408
L 307 1830
L 1978 1830
L 1978 3501
L 2400 3501
L 2400 1830
L 4070 1830
L 4070 1408
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2d" d="M 1824 1242
L 250 1242
L 250 1645
L 1824 1645
L 1824 1242
z
" transform="scale(0.015625)"/>
<path id="STIXGeneral-Regular-2f" d="M 1837 4326
L 378 -90
L -58 -90
L 1408 4326
L 1837 4326
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#STIXGeneral-Regular-48"/>
<use xlink:href="#STIXGeneral-Regular-65" x="72.199982"/>
<use xlink:href="#STIXGeneral-Regular-61" x="116.599976"/>
<use xlink:href="#STIXGeneral-Regular-74" x="160.999969"/>
<use xlink:href="#STIXGeneral-Regular-69" x="188.799957"/>
<use xlink:href="#STIXGeneral-Regular-6e" x="216.599945"/>
<use xlink:href="#STIXGeneral-Regular-67" x="266.59993"/>
<use xlink:href="#STIXGeneral-Regular-20" x="316.599915"/>
<use xlink:href="#STIXGeneral-Regular-72" x="341.599899"/>
<use xlink:href="#STIXGeneral-Regular-61" x="374.899887"/>
<use xlink:href="#STIXGeneral-Regular-74" x="419.299881"/>
<use xlink:href="#STIXGeneral-Regular-65" x="447.099869"/>
<use xlink:href="#STIXGeneral-Regular-3a" x="491.499863"/>
<use xlink:href="#STIXGeneral-Regular-20" x="519.29985"/>
<use xlink:href="#STIXGeneral-Regular-28" x="544.299835"/>
<use xlink:href="#STIXGeneral-Regular-30" x="577.599823"/>
<use xlink:href="#STIXGeneral-Regular-2e" x="627.599808"/>
<use xlink:href="#STIXGeneral-Regular-33" x="652.599792"/>
<use xlink:href="#STIXGeneral-Regular-34" x="702.599777"/>
<use xlink:href="#STIXGeneral-Regular-20" x="752.599762"/>
<use xlink:href="#STIXGeneral-Regular-2b" x="777.599747"/>
<use xlink:href="#STIXGeneral-Regular-2d" x="846.099731"/>
<use xlink:href="#STIXGeneral-Regular-20" x="879.399719"/>
<use xlink:href="#STIXGeneral-Regular-30" x="904.399704"/>
<use xlink:href="#STIXGeneral-Regular-2e" x="954.399689"/>
<use xlink:href="#STIXGeneral-Regular-30" x="979.399673"/>
<use xlink:href="#STIXGeneral-Regular-31" x="1029.399658"/>
<use xlink:href="#STIXGeneral-Regular-29" x="1079.399643"/>
<use xlink:href="#STIXGeneral-Regular-20" x="1112.699631"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="1137.699615"/>
<use xlink:href="#STIXGeneral-Regular-4b" x="1215.499603"/>
<use xlink:href="#STIXGeneral-Regular-2f" x="1287.699585"/>
<use xlink:href="#STIXGeneral-Regular-6d" x="1315.499573"/>
<use xlink:href="#STIXGeneral-Regular-73" x="1393.299561"/>
</g>
</g>
</g>
</g>
<defs>
<clipPath id="p6c09b7d4c6">
<rect x="50.190625" y="27.190625" width="371.009375" height="212.228125"/>
</clipPath>
</defs>
</svg>
...@@ -8,17 +8,19 @@ from scipy.optimize import curve_fit ...@@ -8,17 +8,19 @@ 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 #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230421_CPTconmicromocion/Data/')
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230421_CPTconmicromocion/Data/') os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230421_CPTconmicromocion//Data')
CPT_FILES = """000011071-IR_Scan_withcal_optimized CPT_FILES = """000011071-IR_Scan_withcal_optimized
000011072-IR_Scan_withcal_optimized 000011072-IR_Scan_withcal_optimized
000011073-IR_Scan_withcal_optimized 000011073-IR_Scan_withcal_optimized
""" """
"""
Aca hay una med partida en 3 pero la verdad bastante fea e inajustable
"""
def SeeKeys(files): def SeeKeys(files):
for i, fname in enumerate(files.split()): for i, fname in enumerate(files.split()):
...@@ -28,8 +30,6 @@ def SeeKeys(files): ...@@ -28,8 +30,6 @@ def SeeKeys(files):
print(SeeKeys(CPT_FILES)) print(SeeKeys(CPT_FILES))
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
Counts = [] Counts = []
Freqs = [] Freqs = []
...@@ -194,236 +194,6 @@ for dr in DRs: ...@@ -194,236 +194,6 @@ for dr in DRs:
plt.plot(freqslongpi, FittedEITpi[1:]) plt.plot(freqslongpi, FittedEITpi[1:])
#%%
#ignorar de aca para abajo por ahora
#%%
#i_DR = 955
DRs = [-31, -22, -16.5, -8]
plt.figure()
plt.errorbar(FreqsDRpi, CountsDRpi, yerr=2*np.sqrt(CountsDRpi), fmt='o', capsize=2, markersize=2)
plt.plot(freqslongpi[:-1], FittedEITpi)
for dr in DRs:
dr = dr+4.7
plt.axvline(dr, color='red',alpha=0.2)
plt.axvline(dr+22.1, color='green',alpha=0.2)
plt.axvline(dr-22.1, color='black',alpha=0.2)
#plt.axvline(DetDoppler-22.1)
#plt.axvline(DetDoppler+22.1)
#plt.plot(freqslongpi[i_DR], FittedEITpi[i_DR],'o', color='red', markersize=12)
plt.xlabel('Detuning (MHz)')
plt.ylabel('Counts')
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
#%%
"""
Simulo CPTs con todos esos parámetros para distintas temperaturas
I simulate CPT curves with all the previous parameters but with varying temperatures
"""
TempVecTeorico = list(np.arange(0.3,1,0.1))+list(np.arange(1, 31, 1))
CurvasTeoricas = []
for tempi in TempVecTeorico:
CurvasTeoricas.append(FitEITpi(freqslongpi, *popt_fullcpt[:-1], tempi*1e-3))
#%%
"""
Acá agarro la primera y busco el valor i_DR que corresponde a la resonancia oscura de interés
With the first one, I look for the value i_DR which corresponds to the dark resonance of interest
"""
curva_ref = CurvasTeoricas[0]
i_DR = 955
plt.figure()
plt.plot(freqslongpi, curva_ref)
plt.plot(freqslongpi[i_DR], curva_ref[i_DR],'o')
#%%
"""
ploteo algunos CPTs teoricos para algunas temperaturas
Plotting some theory cpt curves for some temperatures
"""
plt.plot(freqslongpi, CurvasTeoricas[0])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[0][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[10])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[10][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[20])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[20][i_DR],'o',markersize=10)
plt.xlabel('Detuning (MHz)')
plt.ylabel('Fluorescence')
plt.grid()
#%%
"""
Ahora interpolo los valores teóricos de las profundidades de esas resonancias
y aplico la interpolación a las mediciones para obtener temperaturas.
Luego, grafico las temperaturas en función de los tiempos de calentamiento.
Now I interpolate the theoretical values of the depths of those resonances
and apply the interpolation to the measurements to obtain temperatures.
After that, I plot the temperatures with respect to the heating times
"""
from scipy.interpolate import interp1d
FluosDRTeo = [CurvasTeoricas[k][i_DR] for k in range(len(CurvasTeoricas))]
interpolado = interp1d(FluosDRTeo, TempVecTeorico) #creo funcion que interpola
meas = 0
maxi = 9 #valor maximo, dsp el ion se calento
Heating_tim = Times[meas][:maxi]
Heating_tim_ms = [t*1e3 for t in Heating_tim]
Heating_med = [2*c for c in Counts_heating[meas][:maxi]]
ErrorHeating_med = [2*np.sqrt(c) for c in Counts_heating[meas][:maxi]]
Temperaturas_interpoladas = [float(interpolado(h)) for h in Heating_med]
Error_Temperaturas_interpoladas = [float(interpolado(Heating_med[k]+0.5*ErrorHeating_med[k]))-Temperaturas_interpoladas[k] for k in range(len(Heating_med))]
plt.figure()
plt.plot(FluosDRTeo, [1*t for t in TempVecTeorico], 'o', color='orange')
plt.plot(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000), interpolado(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000)))
plt.xlabel('Cuentas de DR teoricas')
plt.ylabel('Temperatura (mK)')
plt.figure()
#plt.plot(Heating_med, Heating_tim, 'o', color='blue')
plt.errorbar([t*1e3 for t in Heating_tim], Heating_med, yerr=ErrorHeating_med, fmt='o', capsize=2, markersize=5)
plt.ylabel('Cuentas de DR medidas')
plt.xlabel('Heating time (s)')
def lineal(x,a,b):
return a*x+b
#p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas, sigma=Error_Temperaturas_interpoladas)
p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas)
#%%
"""
Grafico finalmente el plot del heating rate de la trampa
Finally I plot the heating rate of the trap
"""
plt.figure()
#plt.plot(Heating_tim_ms,Temperaturas_interpoladas,'o')
plt.errorbar(Heating_tim_ms,Temperaturas_interpoladas, yerr=np.array(Error_Temperaturas_interpoladas), fmt='o', capsize=2, markersize=7, color='black')
plt.plot(Heating_tim_ms, lineal(np.array(Heating_tim_ms), *p1), color='red')
plt.xlabel('Heating time (ms)', fontname='STIXGeneral', fontsize=15)
plt.ylabel('Temperature (mK)', fontname='STIXGeneral', fontsize=15)
plt.grid()
plt.xticks([0, 5, 10, 15, 20 ,25, 30, 35], fontname='STIXGeneral', fontsize=15)
plt.yticks([0, 5, 10, 15], fontname='STIXGeneral', fontsize=15)
plt.title(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms', fontname='STIXGeneral', fontsize=15)
plt.tight_layout()
plt.savefig('Fig_heatingrate.svg')
print(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms')
#%%
"""
Ahora voy a ver CPT enteras con tiempos de calentamiento distintos.
Now I see whole CPT curves with different heating times
"""
jvec = [3, 4]
plt.figure()
i = 0
for j in jvec:
if j==4:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==3:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='5 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
jvec = [1, 2]
plt.figure()
i = 0
for j in jvec:
if j==2:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==1:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='1 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
#%%
"""
La siguiente curva probablemente no este bien medida ya que inmediatamente
despues, los laseres se deslockearon. La dejo por las dudas.
This curve is probably not well measured...
"""
jvec = [5, 6]
plt.figure()
i = 0
for j in jvec:
if j==6:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==5:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='10 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,3900)
plt.grid()
plt.legend()
plt.title('Ojo: medicion condicionada por derivas')
#%%
"""
Ahora ploteo 6 curvas cpt para distintos valores de potencia del UV
This is a plot of 6 different cpt curves for 6 different UV powers. I should fit them
to obtain saturation parameters
"""
jvec = [7,8,9,10,11,12]
plt.figure()
for j in jvec:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
#plt.ylim(1000,2900)
plt.grid()
#plt.legend()
...@@ -8,11 +8,15 @@ from scipy.optimize import curve_fit ...@@ -8,11 +8,15 @@ 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 """
Tengo que ver bien que datita hay aca
"""
#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/20230424_CPT_TemperatureSens/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230424_CPT_TemperatureSens/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230424_CPT_TemperatureSens//Data')
#os.chdir('/home/muri/nubeDF/Documents/codigos/artiq_experiments/analisis/plots/20230424_CPT_TemperatureSens/Data/') #os.chdir('/home/muri/nubeDF/Documents/codigos/artiq_experiments/analisis/plots/20230424_CPT_TemperatureSens/Data/')
...@@ -35,7 +39,7 @@ HEATING_FILES = """000015318-IR_Scan_withcal_optimized ...@@ -35,7 +39,7 @@ HEATING_FILES = """000015318-IR_Scan_withcal_optimized
000011344-IR_Scan_withcal_optimized 000011344-IR_Scan_withcal_optimized
""" """
CPT_FILES = '' #CPT_FILES = ''
for i in range(0,20): for i in range(0,20):
CPT_FILES = CPT_FILES + f'0000153{39 + i}-IR_Scan_withcal_optimized\n' CPT_FILES = CPT_FILES + f'0000153{39 + i}-IR_Scan_withcal_optimized\n'
...@@ -290,210 +294,3 @@ FittedEIT = FitEIT(freqslongCPT, *popt_fullcpt_noheat) ...@@ -290,210 +294,3 @@ FittedEIT = FitEIT(freqslongCPT, *popt_fullcpt_noheat)
#%%
"""
Simulo CPTs con todos esos parámetros para distintas temperaturas
I simulate CPT curves with all the previous parameters but with varying temperatures
"""
TempVecTeorico = list(np.arange(0.3,1,0.1))+list(np.arange(1, 31, 1))
CurvasTeoricas = []
for tempi in TempVecTeorico:
CurvasTeoricas.append(FitEITpi(freqslongpi, *popt_fullcpt[:-1], tempi*1e-3))
#%%
"""
Acá agarro la primera y busco el valor i_DR que corresponde a la resonancia oscura de interés
With the first one, I look for the value i_DR which corresponds to the dark resonance of interest
"""
curva_ref = CurvasTeoricas[0]
i_DR = 955
plt.figure()
plt.plot(freqslongpi, curva_ref)
plt.plot(freqslongpi[i_DR], curva_ref[i_DR],'o')
#%%
"""
ploteo algunos CPTs teoricos para algunas temperaturas
Plotting some theory cpt curves for some temperatures
"""
plt.plot(freqslongpi, CurvasTeoricas[0])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[0][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[10])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[10][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[20])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[20][i_DR],'o',markersize=10)
plt.xlabel('Detuning (MHz)')
plt.ylabel('Fluorescence')
plt.grid()
#%%
"""
Ahora interpolo los valores teóricos de las profundidades de esas resonancias
y aplico la interpolación a las mediciones para obtener temperaturas.
Luego, grafico las temperaturas en función de los tiempos de calentamiento.
Now I interpolate the theoretical values of the depths of those resonances
and apply the interpolation to the measurements to obtain temperatures.
After that, I plot the temperatures with respect to the heating times
"""
from scipy.interpolate import interp1d
FluosDRTeo = [CurvasTeoricas[k][i_DR] for k in range(len(CurvasTeoricas))]
interpolado = interp1d(FluosDRTeo, TempVecTeorico) #creo funcion que interpola
meas = 0
maxi = 9 #valor maximo, dsp el ion se calento
Heating_tim = Times[meas][:maxi]
Heating_tim_ms = [t*1e3 for t in Heating_tim]
Heating_med = [2*c for c in Counts_heating[meas][:maxi]]
ErrorHeating_med = [2*np.sqrt(c) for c in Counts_heating[meas][:maxi]]
Temperaturas_interpoladas = [float(interpolado(h)) for h in Heating_med]
Error_Temperaturas_interpoladas = [float(interpolado(Heating_med[k]+0.5*ErrorHeating_med[k]))-Temperaturas_interpoladas[k] for k in range(len(Heating_med))]
plt.figure()
plt.plot(FluosDRTeo, [1*t for t in TempVecTeorico], 'o', color='orange')
plt.plot(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000), interpolado(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000)))
plt.xlabel('Cuentas de DR teoricas')
plt.ylabel('Temperatura (mK)')
plt.figure()
#plt.plot(Heating_med, Heating_tim, 'o', color='blue')
plt.errorbar([t*1e3 for t in Heating_tim], Heating_med, yerr=ErrorHeating_med, fmt='o', capsize=2, markersize=5)
plt.ylabel('Cuentas de DR medidas')
plt.xlabel('Heating time (s)')
def lineal(x,a,b):
return a*x+b
#p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas, sigma=Error_Temperaturas_interpoladas)
p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas)
#%%
"""
Grafico finalmente el plot del heating rate de la trampa
Finally I plot the heating rate of the trap
"""
plt.figure()
#plt.plot(Heating_tim_ms,Temperaturas_interpoladas,'o')
plt.errorbar(Heating_tim_ms,Temperaturas_interpoladas, yerr=np.array(Error_Temperaturas_interpoladas), fmt='o', capsize=2, markersize=7, color='black')
plt.plot(Heating_tim_ms, lineal(np.array(Heating_tim_ms), *p1), color='red')
plt.xlabel('Heating time (ms)', fontname='STIXGeneral', fontsize=15)
plt.ylabel('Temperature (mK)', fontname='STIXGeneral', fontsize=15)
plt.grid()
plt.xticks([0, 5, 10, 15, 20 ,25, 30, 35], fontname='STIXGeneral', fontsize=15)
plt.yticks([0, 5, 10, 15], fontname='STIXGeneral', fontsize=15)
plt.title(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms', fontname='STIXGeneral', fontsize=15)
plt.tight_layout()
plt.savefig('Fig_heatingrate.svg')
print(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms')
#%%
"""
Ahora voy a ver CPT enteras con tiempos de calentamiento distintos.
Now I see whole CPT curves with different heating times
"""
jvec = [3, 4]
plt.figure()
i = 0
for j in jvec:
if j==4:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==3:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='5 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
jvec = [1, 2]
plt.figure()
i = 0
for j in jvec:
if j==2:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==1:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='1 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
#%%
"""
La siguiente curva probablemente no este bien medida ya que inmediatamente
despues, los laseres se deslockearon. La dejo por las dudas.
This curve is probably not well measured...
"""
jvec = [5, 6]
plt.figure()
i = 0
for j in jvec:
if j==6:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==5:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='10 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,3900)
plt.grid()
plt.legend()
plt.title('Ojo: medicion condicionada por derivas')
#%%
"""
Ahora ploteo 6 curvas cpt para distintos valores de potencia del UV
This is a plot of 6 different cpt curves for 6 different UV powers. I should fit them
to obtain saturation parameters
"""
jvec = [7,8,9,10,11,12]
plt.figure()
for j in jvec:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
#plt.ylim(1000,2900)
plt.grid()
#plt.legend()
...@@ -64,7 +64,7 @@ def Lorentzian(f, A, x0, gamma, offset): ...@@ -64,7 +64,7 @@ def Lorentzian(f, A, x0, gamma, offset):
#primero muestro las meds 0 y 1 que son dos mediciones con potencia UV quizas un poco #primero muestro las meds 0 y 1 que son dos mediciones con potencia UV quizas un poco
#alta pero en la segunda el ion esta un poquito mejor compensado y se ve cómo se afina el espectro #alta pero en la segunda el ion esta un poquito mejor compensado y se ve cómo se afina el espectro
jvec = [0,1] jvec = [6,7,8]
plt.figure() plt.figure()
...@@ -75,20 +75,20 @@ for j in jvec: ...@@ -75,20 +75,20 @@ for j in jvec:
portion = 0. portion = 0.
popt, pcov = curve_fit(Lorentzian, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):], p0=[12000, 208, 30, 30]) #popt, pcov = curve_fit(Lorentzian, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):], p0=[12000, 208, 30, 30])
freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01) freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01)
plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5) plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5)
#plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2]), label=f'FWHM {round(popt[1])} MHz') #plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2]), label=f'FWHM {round(popt[1])} MHz')
plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2], popt[3]), label=f'FWHM {round(popt[2],1)} MHz') #plt.plot(freqslong, Lorentzian(freqslong, popt[0], popt[1], popt[2], popt[3]), label=f'FWHM {round(popt[2],1)} MHz')
#plt.axvline(popt[2]-22.1, linestyle='--', linewidth=1) #plt.axvline(popt[2]-22.1, linestyle='--', linewidth=1)
#plt.axvline(popt[2]+22.1, linestyle='--', linewidth=1) #plt.axvline(popt[2]+22.1, linestyle='--', linewidth=1)
plt.xlabel('Frecuencia (MHz)') plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Cuentas') plt.ylabel('Cuentas')
plt.legend() plt.legend()
print(f'Ancho medido: {round(popt[2])} MHz') #print(f'Ancho medido: {round(popt[2])} MHz')
#%% #%%
...@@ -98,9 +98,9 @@ from scipy.optimize import curve_fit ...@@ -98,9 +98,9 @@ from scipy.optimize import curve_fit
def Lorentzian(f, A, gamma, x0): def Lorentzian(f, A, gamma, x0):
return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2))
def MicromotionSpectra(det, A, beta, x0): def MicromotionSpectra(det, A, beta, x0, gamma):
ftrap=22.1 ftrap=22.1
gamma=37 #gamma=28
P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100 P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100
i = 1 i = 1
#print(P) #print(P)
...@@ -111,7 +111,7 @@ def MicromotionSpectra(det, A, beta, x0): ...@@ -111,7 +111,7 @@ def MicromotionSpectra(det, A, beta, x0):
return P return P
jvec = [1] #UV_cooling en 90 MHz jvec = [7] #UV_cooling en 90 MHz
plt.figure() plt.figure()
...@@ -123,8 +123,8 @@ for j in jvec: ...@@ -123,8 +123,8 @@ for j in jvec:
portion = 0. portion = 0.
popt, pcov = curve_fit(MicromotionSpectra, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):],p0=[100000,0.1,215], bounds=((0,0,0),(10000000,10,300))) popt, pcov = curve_fit(MicromotionSpectra, FreqsChosen[int(portion*len(FreqsChosen)):], CountsChosen[int(portion*len(FreqsChosen)):],p0=[100000,0.1,215, 22], bounds=((0,0,0, 0),(10000000,10,300, 100)))
print(popt)
freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01) freqslong = np.arange(min(FreqsChosen)-10, max(FreqsChosen)+10, (FreqsChosen[1]-FreqsChosen[0])*0.01)
plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5) plt.errorbar(FreqsChosen, CountsChosen, yerr=np.sqrt(np.array(CountsChosen)), fmt='o', capsize=5, markersize=5)
...@@ -143,6 +143,7 @@ for j in jvec: ...@@ -143,6 +143,7 @@ for j in jvec:
from scipy.special import jv from scipy.special import jv
def Lorentzian(f, A, x0, gamma, offset): def Lorentzian(f, A, x0, gamma, offset):
offset = 50
return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) + offset #40 es el piso de ruido estimado return (A/np.pi)*0.5*gamma/(((f-x0)**2)+((0.5*gamma)**2)) + offset #40 es el piso de ruido estimado
#para tres potencias distintas del UV: #para tres potencias distintas del UV:
...@@ -169,7 +170,7 @@ for j in jvec: ...@@ -169,7 +170,7 @@ for j in jvec:
plt.xlabel('Frecuencia (MHz)') plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Cuentas') plt.ylabel('Cuentas')
plt.legend() plt.legend()
print(popt)
print(f'Ancho medido: {round(popt[2])} MHz') print(f'Ancho medido: {round(popt[2])} MHz')
...@@ -182,7 +183,7 @@ def Lorentzian(f, A, gamma, x0): ...@@ -182,7 +183,7 @@ def Lorentzian(f, A, gamma, x0):
def MicromotionSpectra(det, A, beta, x0, gamma): def MicromotionSpectra(det, A, beta, x0, gamma):
ftrap=22.1 ftrap=22.1
#gamma=30 #gamma=35
P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100 P = A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+100
i = 1 i = 1
#print(P) #print(P)
......
...@@ -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/20230804_RotationalDopplerShift/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230804_RotationalDopplerShift//Data')
MOTIONAL_FILES = """000013968-IR_Scan_withcal_optimized MOTIONAL_FILES = """000013968-IR_Scan_withcal_optimized
000013970-IR_Scan_withcal_optimized 000013970-IR_Scan_withcal_optimized
......
...@@ -12,9 +12,9 @@ from scipy import interpolate ...@@ -12,9 +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/20230817_RotationalDopplerShift_v4/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230817_RotationalDopplerShift_v4/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230817_RotationalDopplerShift_v4//Data')
""" """
en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma) en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma)
......
...@@ -12,7 +12,9 @@ from scipy import interpolate ...@@ -12,7 +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/20230817_RotationalDopplerShift_v4/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230817_RotationalDopplerShift_v4/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230817_RotationalDopplerShift_v4//Data')
""" """
ACA HAY FIGURAS PARA PAPER ACA HAY FIGURAS PARA PAPER
...@@ -308,7 +310,7 @@ mmlocmedvec = [0,1,2] ...@@ -308,7 +310,7 @@ mmlocmedvec = [0,1,2]
plt.figure(figsize=(2.5,2.1)) plt.figure(figsize=(2.5,2.1))
plotpm = 0 plotpm = 0
plotmm = 1 plotmm = 0
generalscale = 0.7 generalscale = 0.7
...@@ -425,7 +427,7 @@ plt.xlim(-10,7) ...@@ -425,7 +427,7 @@ plt.xlim(-10,7)
plt.grid() plt.grid()
plt.tight_layout() plt.tight_layout()
plt.legend(fontsize=14,markerscale=5) plt.legend(fontsize=14,markerscale=5)
plt.savefig('/home/nico/Nextcloud/Nico/Doctorado/Charlas/2023 Europe/sensitivityofparalellantiparalell.pdf') #plt.savefig('/home/nico/Nextcloud/Nico/Doctorado/Charlas/2023 Europe/sensitivityofparalellantiparalell.pdf')
#%% #%%
...@@ -504,7 +506,7 @@ plt.xlim(-3,3) ...@@ -504,7 +506,7 @@ plt.xlim(-3,3)
plt.grid() plt.grid()
plt.tight_layout() plt.tight_layout()
#plt.legend(fontsize=14,markerscale=5) #plt.legend(fontsize=14,markerscale=5)
plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2024 Rotational Doppler Effect/Figuras/Material/fig1_c.pdf') #plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2024 Rotational Doppler Effect/Figuras/Material/fig1_c.pdf')
#%% #%%
...@@ -561,7 +563,7 @@ plt.xlim(-10,7) ...@@ -561,7 +563,7 @@ plt.xlim(-10,7)
plt.grid() plt.grid()
plt.tight_layout() plt.tight_layout()
plt.legend(fontsize=14,markerscale=5) plt.legend(fontsize=14,markerscale=5)
plt.savefig('/home/nico/Nextcloud/Nico/Doctorado/Charlas/2023 Europe/sensitivityofparalellantiparalell.pdf') #plt.savefig('/home/nico/Nextcloud/Nico/Doctorado/Charlas/2023 Europe/sensitivityofparalellantiparalell.pdf')
......
...@@ -12,9 +12,16 @@ from scipy import interpolate ...@@ -12,9 +12,16 @@ 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/20230817_RotationalDopplerShift_v5/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230817_RotationalDopplerShift_v5/Data')
"""
no hay savefigs
"""
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230817_RotationalDopplerShift_v5//Data')
""" """
en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma) en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma)
""" """
...@@ -320,7 +327,7 @@ orderleft = [4,5,6,7,8,3,2,1,0] ...@@ -320,7 +327,7 @@ orderleft = [4,5,6,7,8,3,2,1,0]
orderright = [4,3,2,1,0,5,6,7,8] orderright = [4,3,2,1,0,5,6,7,8]
IntLeftFinal = [x for _, x in sorted(zip(orderleft, Intensityleft))] IntLeftFinal = [x for _, x in sorted(zip(orderleft, Intensityleft))]
IntRightFinal = [x for _, x in sorted(zip(orderright, Intensityright))] IntRightFinal = [x for _, x in sorted(zip(orderright, Intensityright))]file:///C:/Users/nicon/Nextcloud/Nico/Doctorado/Tesis/Tesis_doctorado/Chapters/figures/Cap7/Fig11/20211101_CPT_DosLaseres_v03/CPT_plotter_20211102_variandoSR.py
PmLeftDR1Final = [x for _, x in sorted(zip(orderleft, pmleftdepthsdr1))] PmLeftDR1Final = [x for _, x in sorted(zip(orderleft, pmleftdepthsdr1))]
PmRightDR1Final = [x for _, x in sorted(zip(orderright, pmrightdepthsdr1))] PmRightDR1Final = [x for _, x in sorted(zip(orderright, pmrightdepthsdr1))]
......
...@@ -8,11 +8,10 @@ from scipy.optimize import curve_fit ...@@ -8,11 +8,10 @@ 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 #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230906_CPTconmicromocion2/Data/')
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230906_CPTconmicromocion2/Data/') os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230906_CPTconmicromocion2//Data')
CPT_FILES = """000015243-IR_Scan_withcal_optimized CPT_FILES = """000015243-IR_Scan_withcal_optimized
""" """
......
...@@ -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/20230912_RotationalDopplerShift_v6/Data') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230912_RotationalDopplerShift_v6/Data')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230912_RotationalDopplerShift_v6//Data')
""" """
en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma) en este codigo ploteo espectros CPT de resonancias D-D para configuracion +2/+2 y +2/-2 (usando pentaprisma)
......
...@@ -8,13 +8,17 @@ from scipy.optimize import curve_fit ...@@ -8,13 +8,17 @@ 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 """
Creo que aca hay meds de calentamiento en funcion de detuning del UV
"""
#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/20230424_CPT_TemperatureSens/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230424_CPT_TemperatureSens/Data/')
os.chdir('/home/muri/nubeDF/Documents/codigos/artiq_experiments/analisis/plots/20230920_CPT_TemperatureSens_v2/Data/') #os.chdir('/home/muri/nubeDF/Documents/codigos/artiq_experiments/analisis/plots/20230920_CPT_TemperatureSens_v2/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20230920_CPT_TemperatureSens_v2//Data')
CPT_FILES = """000011345-IR_Scan_withcal_optimized CPT_FILES = """000011345-IR_Scan_withcal_optimized
000011331-IR_Scan_withcal_optimized 000011331-IR_Scan_withcal_optimized
...@@ -98,7 +102,7 @@ for i, fname in enumerate(HEATING_FILES.split()): ...@@ -98,7 +102,7 @@ for i, fname in enumerate(HEATING_FILES.split()):
Ploteo las cpt de referencia / plotting the reference CPT Ploteo las cpt de referencia / plotting the reference CPT
""" """
jvec = [0,8] jvec = [5,6,7,8]
plt.figure() plt.figure()
i = 0 i = 0
...@@ -277,213 +281,3 @@ FittedEIT = FitEIT(freqslongCPT, *popt_fullcpt_noheat) ...@@ -277,213 +281,3 @@ FittedEIT = FitEIT(freqslongCPT, *popt_fullcpt_noheat)
#%%
"""
Simulo CPTs con todos esos parámetros para distintas temperaturas
I simulate CPT curves with all the previous parameters but with varying temperatures
"""
TempVecTeorico = list(np.arange(0.3,1,0.1))+list(np.arange(1, 31, 1))
CurvasTeoricas = []
for tempi in TempVecTeorico:
CurvasTeoricas.append(FitEITpi(freqslongpi, *popt_fullcpt[:-1], tempi*1e-3))
#%%
"""
Acá agarro la primera y busco el valor i_DR que corresponde a la resonancia oscura de interés
With the first one, I look for the value i_DR which corresponds to the dark resonance of interest
"""
curva_ref = CurvasTeoricas[0]
i_DR = 955
plt.figure()
plt.plot(freqslongpi, curva_ref)
plt.plot(freqslongpi[i_DR], curva_ref[i_DR],'o')
#%%
"""
ploteo algunos CPTs teoricos para algunas temperaturas
Plotting some theory cpt curves for some temperatures
"""
plt.plot(freqslongpi, CurvasTeoricas[0])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[0][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[10])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[10][i_DR],'o',markersize=10)
plt.plot(freqslongpi, CurvasTeoricas[20])
plt.plot(freqslongpi[i_DR], CurvasTeoricas[20][i_DR],'o',markersize=10)
plt.xlabel('Detuning (MHz)')
plt.ylabel('Fluorescence')
plt.grid()
#%%
"""
Ahora interpolo los valores teóricos de las profundidades de esas resonancias
y aplico la interpolación a las mediciones para obtener temperaturas.
Luego, grafico las temperaturas en función de los tiempos de calentamiento.
Now I interpolate the theoretical values of the depths of those resonances
and apply the interpolation to the measurements to obtain temperatures.
After that, I plot the temperatures with respect to the heating times
"""
from scipy.interpolate import interp1d
FluosDRTeo = [CurvasTeoricas[k][i_DR] for k in range(len(CurvasTeoricas))]
interpolado = interp1d(FluosDRTeo, TempVecTeorico) #creo funcion que interpola
meas = 0
maxi = 9 #valor maximo, dsp el ion se calento
Heating_tim = Times[meas][:maxi]
Heating_tim_ms = [t*1e3 for t in Heating_tim]
Heating_med = [2*c for c in Counts_heating[meas][:maxi]]
ErrorHeating_med = [2*np.sqrt(c) for c in Counts_heating[meas][:maxi]]
Temperaturas_interpoladas = [float(interpolado(h)) for h in Heating_med]
Error_Temperaturas_interpoladas = [float(interpolado(Heating_med[k]+0.5*ErrorHeating_med[k]))-Temperaturas_interpoladas[k] for k in range(len(Heating_med))]
plt.figure()
plt.plot(FluosDRTeo, [1*t for t in TempVecTeorico], 'o', color='orange')
plt.plot(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000), interpolado(np.linspace(FluosDRTeo[0],FluosDRTeo[-1],1000)))
plt.xlabel('Cuentas de DR teoricas')
plt.ylabel('Temperatura (mK)')
plt.figure()
#plt.plot(Heating_med, Heating_tim, 'o', color='blue')
plt.errorbar([t*1e3 for t in Heating_tim], Heating_med, yerr=ErrorHeating_med, fmt='o', capsize=2, markersize=5)
plt.ylabel('Cuentas de DR medidas')
plt.xlabel('Heating time (s)')
def lineal(x,a,b):
return a*x+b
#p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas, sigma=Error_Temperaturas_interpoladas)
p1,p2 = curve_fit(lineal, Heating_tim_ms, Temperaturas_interpoladas)
#%%
"""
Grafico finalmente el plot del heating rate de la trampa
Finally I plot the heating rate of the trap
"""
plt.figure()
#plt.plot(Heating_tim_ms,Temperaturas_interpoladas,'o')
plt.errorbar(Heating_tim_ms,Temperaturas_interpoladas, yerr=np.array(Error_Temperaturas_interpoladas), fmt='o', capsize=2, markersize=7, color='black')
plt.plot(Heating_tim_ms, lineal(np.array(Heating_tim_ms), *p1), color='red')
plt.xlabel('Heating time (ms)', fontname='STIXGeneral', fontsize=15)
plt.ylabel('Temperature (mK)', fontname='STIXGeneral', fontsize=15)
plt.grid()
plt.xticks([0, 5, 10, 15, 20 ,25, 30, 35], fontname='STIXGeneral', fontsize=15)
plt.yticks([0, 5, 10, 15], fontname='STIXGeneral', fontsize=15)
plt.title(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms', fontname='STIXGeneral', fontsize=15)
plt.tight_layout()
plt.savefig('Fig_heatingrate.svg')
print(f'Heating rate: ({round(p1[0],2)} +- {round(np.sqrt(p2[0][0]),2)}) mK/ms')
#%%
"""
Ahora voy a ver CPT enteras con tiempos de calentamiento distintos.
Now I see whole CPT curves with different heating times
"""
jvec = [3, 4]
plt.figure()
i = 0
for j in jvec:
if j==4:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==3:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='5 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
jvec = [1, 2]
plt.figure()
i = 0
for j in jvec:
if j==2:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==1:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='1 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,2900)
plt.grid()
plt.legend()
#%%
"""
La siguiente curva probablemente no este bien medida ya que inmediatamente
despues, los laseres se deslockearon. La dejo por las dudas.
This curve is probably not well measured...
"""
jvec = [5, 6]
plt.figure()
i = 0
for j in jvec:
if j==6:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
elif j==5:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='10 ms heating')
i = i + 1
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
plt.ylim(1000,3900)
plt.grid()
plt.legend()
plt.title('Ojo: medicion condicionada por derivas')
#%%
"""
Ahora ploteo 6 curvas cpt para distintos valores de potencia del UV
This is a plot of 6 different cpt curves for 6 different UV powers. I should fit them
to obtain saturation parameters
"""
jvec = [7,8,9,10,11,12]
plt.figure()
for j in jvec:
plt.errorbar([2*f*1e-6 for f in Freqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label='Without heating')
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('counts')
#plt.ylim(1000,2900)
plt.grid()
#plt.legend()
Te mando el detalle de las mediciones con su número y qué es.
Igualmente, todo está en los datasets, pero te tiro algunas pautas
generales:
-Si el dataset heating=1 es porque antes de medir hubo una etapa de
calentamiento con los parámetros que dicen "heating" (incluyendo
t_heating). Si dice 0, fue sin heating y hay que ignorar todos esos
parámetros.
-Respecto a esto, en realidad "heating" es relativo, porque hubo
mediciones en donde los parámetros de heating daban enfriado (si la
freq del UV estaba al rojo). Consideremos heating mas bien como
"preparación de estado", y si no hay heating el estado es el dado porel enfriamiento.
-Los parámetros de enfriado son los mismos para todas las mediciones.
-Algo para resaltar es que el tiempo de exposición del PMT ahora fue
de 200 us (antes era 50) porque ayer me di cuenta de que podemos
subirlo asi las mediciones duran menos.
-Todo el resto de los parámetros de cada medición están en los
datasets. La potencia del IR para todas las mediciones debería haber
sido de 70 uW, y las polarizaciones de ambos láseres sigma+ + sigma-
(horizontales, con el campo vertical).
Ahora sí las mediciones hechas:
- Variando t_heating, con uv_cpt_amp=0.11, con la freq de heating del
UV al azul y potencia del UV heating constante: 15281 a 15299 (la
primera y la última son sin heating simplemente para tener por si
derivó algo).
-15300, 15301: dos curvas, sin y con heating, para menos uv_cpt_amp
(0.09)
-15302, 15303: dos curvas, sin y con heating, para menos uv_cpt_amp (0.07)
-15304 a 15307: curvas con heating para uv_cpt_amp=0.07 (podés
combinarlas con la 15302 y 15303).
-15308 a 15312: curvas con heating para uv_cpt_amp=0.09 (podés
combinarlas con las 15300 y 15301).
Hasta acá, todas las curvas tienen una frecuencia de uv_heating de 125
MHz, que vi que servía para calentar. Ahora voy a cambiar esa
frecuencia, y para algunos valores va a enfriar.
-15313 a 15317: con uv_cpt_amp=0.11 y uv_heating_freq = 110 MHz, para
distintos t_heating. Se ve que las resonancias no se mueven mucho, o
sea, no calienta.
-15318: una sin heating para seguir monitoreando derivas.
Ahora voy a barrer la frecuencia del Heating para ver si se ve el
punto en donde empieza a calentar. Para ello, también varío la
uv_heating_amp, usando como referencia una curva de calibración del
aom del uv (para que siempre tenga la misma potencia de heating, sino
es trampa).
-15319 a 15327: con uv_cpt_amp=0.09, calentando 200 us, para
frecuencias de calentado desde 90 a 130 MHz (acordate que la
frecuencia real es el doble), de pasos de a 5 Mhz, ajustando la amp
del uv apropiadamente.
-15328 a 15336: lo mismo que antes pero calentando 100 us. La 15337 es
igual a la 15336 pero con uv_heating_amp un puntito más alto.
-15338: la curva al dia siguiente sin heating, se ve que derivo un toquecito.
-Desde 15339 en adelante, variando la frecuencia del heating pero de a
pasos de a 1 Mhz (en cada curva vas a encontrar la frecuencia
correspondiente), y calentando 100 us.
Eso es todo por ahora, si mido más cosas te aviso.
\ No newline at end of file
...@@ -12,9 +12,10 @@ from scipy import interpolate ...@@ -12,9 +12,10 @@ from scipy import interpolate
Primero tengo mediciones de espectros cpt de un ion variando la tension dc_A Primero tengo mediciones de espectros cpt de un ion variando la tension dc_A
""" """
#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/20231123_CPTconmicromocion3/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20231123_CPTconmicromocion3/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20231123_CPTconmicromocion3//Data')
CPT_FILES = """000016262-IR_Scan_withcal_optimized CPT_FILES = """000016262-IR_Scan_withcal_optimized
000016239-IR_Scan_withcal_optimized 000016239-IR_Scan_withcal_optimized
...@@ -90,7 +91,7 @@ CountsSplit_2ions.append(Split(Counts[4],len(Freqs[4]))) ...@@ -90,7 +91,7 @@ CountsSplit_2ions.append(Split(Counts[4],len(Freqs[4])))
Ploteo curvas para ver que tal son Ploteo curvas para ver que tal son
""" """
jvec = [4] # de la 1 a la 9 vale la pena, despues no jvec = [8] # de la 1 a la 9 vale la pena, despues no
Frequencies = Freqs[0] Frequencies = Freqs[0]
...@@ -117,7 +118,7 @@ De la 1 a la 11 ajustan bien. Ignoro las demas ...@@ -117,7 +118,7 @@ De la 1 a la 11 ajustan bien. Ignoro las demas
""" """
from EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM #from EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
import time import time
...@@ -152,9 +153,9 @@ alpha = 0 ...@@ -152,9 +153,9 @@ alpha = 0
drivefreq = 2*np.pi*22.135*1e6 drivefreq = 2*np.pi*22.135*1e6
#SelectedCurveVec = [1,2,3,4,5,6,7,8,9,10,11] SelectedCurveVec = [1,2,3,4,5,6,7,8,9]
SelectedCurveVec = [4] #SelectedCurveVec = [4]
popt_SA_vec = [] popt_SA_vec = []
pcov_SA_vec = [] pcov_SA_vec = []
...@@ -221,11 +222,11 @@ for selectedcurve in SelectedCurveVec: ...@@ -221,11 +222,11 @@ for selectedcurve in SelectedCurveVec:
pcov_SA_vec.append(pcov_3_SA) pcov_SA_vec.append(pcov_3_SA)
FittedEITpi_3_SA_short, Detunings_3_SA_short = FitEIT_MM_single(FreqsDR, *popt_3_SA, plot=True) FittedEITpi_3_SA_short, Detunings_3_SA_short = FitEIT_MM_single(FreqsDR, *popt_3_SA, plot=True)
freqslong = np.arange(min(FreqsDR)-1*5e6, max(FreqsDR)+FreqsDR[1]-FreqsDR[0]-1*5e6, 0.1*(FreqsDR[1]-FreqsDR[0])) freqslong = np.arange(min(FreqsDR), max(FreqsDR)+FreqsDR[1]-FreqsDR[0], 0.1*(FreqsDR[1]-FreqsDR[0]))
popt_3_SA[4]=1 # popt_3_SA[4]=1
popt_3_SA[5]=0 # popt_3_SA[5]=0
popt_3_SA[6]=0 # popt_3_SA[6]=0
FittedEITpi_3_SA_long, Detunings_3_SA_long = FitEIT_MM_single(freqslong, *popt_3_SA, plot=True) FittedEITpi_3_SA_long, Detunings_3_SA_long = FitEIT_MM_single(freqslong, *popt_3_SA, plot=True)
DetuningsUV_vec.append(popt_3_SA[1]) DetuningsUV_vec.append(popt_3_SA[1])
...@@ -256,18 +257,61 @@ for selectedcurve in SelectedCurveVec: ...@@ -256,18 +257,61 @@ for selectedcurve in SelectedCurveVec:
#%% #%%
"""
Creo las 9 figuras con espectros con micromocion.
Despues veo cuales pongo
"""
k_total = [0,1,2,3,4,5,6,7,8]
#k_total=[0]
fs = 10
for k in k_total:
plt.figure(figsize=(2,1.8))
#plt.errorbar(Detuningsshort_vec[k], Counts_vec[k], yerr=1*np.sqrt(Counts_vec[k]), fmt='o', color='darkgreen', alpha=0.5, capsize=2, markersize=2)
plt.plot(Detuningsshort_vec[k], Counts_vec[k], 'o', color='darkgreen', alpha=0.8, markersize=2)
plt.plot(Detuningslong_vec[k], [1*f for f in FittedCounts_vec[k]], color='black', linewidth=1.5, label=f'med {selectedcurve}')
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
plt.xlabel('Desintonía IR (MHz)',fontsize=fs)
plt.ylabel('Cuentas',fontsize=fs)
plt.xlim(-53,28)
#plt.legend(loc='upper left', fontsize=20)
plt.grid(alpha=0.5)
#plt.xlim(-60,18)
plt.tight_layout()
plt.savefig(f'C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap7//Fig5//Subplots//plot_{k}.pdf')
#%%
"""
Muestro primero dos
"""
k_total = [3,1]
#k_total=[0]
fs = 10
for k in k_total:
plt.figure(figsize=(3.3,2.9))
plt.errorbar(Detuningsshort_vec[k], Counts_vec[k], yerr=1*np.sqrt(Counts_vec[k]), fmt='o', color='darkblue', alpha=0.5, capsize=2, markersize=2)
#plt.plot(Detuningsshort_vec[k], Counts_vec[k], 'o', color='darkgreen', alpha=0.8, markersize=2)
plt.plot(Detuningslong_vec[k], [1*f for f in FittedCounts_vec[k]], color='black', linewidth=1.5, label=f'med {selectedcurve}')
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
plt.xlabel('Desintonía IR (MHz)',fontsize=fs)
plt.ylabel('Cuentas',fontsize=fs)
plt.xlim(-53,26)
#plt.legend(loc='upper left', fontsize=20)
plt.grid(alpha=0.5)
#plt.xlim(-60,18)
plt.tight_layout()
plt.savefig(f'C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap7//Fig5//plot_{k}.pdf')
plt.figure(figsize=(0.8*5,0.7*3))
#plt.errorbar(Detunings_3_SA_short, CountsDR, yerr=2*np.sqrt(CountsDR), fmt='o', color='darkgreen', alpha=0.5, capsize=2, markersize=2)
plt.plot(Detunings_3_SA_long, [100*f for f in FittedEITpi_3_SA_long], color='darkolivegreen', linewidth=3, label=f'med {selectedcurve}')
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
plt.xlabel(r'$\Delta_{\mathrm{IR}}$ (MHz)',fontsize=10)
plt.ylabel('Fluorescence (arb. units)',fontsize=10)
#plt.legend(loc='upper left', fontsize=20)
plt.grid()
plt.xlim(-60,18)
plt.tight_layout()
plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2023 Micromotion CPT/Drafts/cpt_fig1_v2.pdf')
...@@ -275,12 +319,14 @@ plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2023 Micromotion C ...@@ -275,12 +319,14 @@ plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2023 Micromotion C
#%% #%%
""" """
Grafico distintas variables que salieron del SUper ajuste Grafico distintas variables que salieron del SUper ajuste
Esto es solo monitoreo. El grafico de la tesis viene despues
""" """
import seaborn as sns import seaborn as sns
paleta = sns.color_palette("rocket") paleta = sns.color_palette("rocket")
medfin = 11 medfin = 10
voltages_dcA = Voltages[0][1:medfin] voltages_dcA = Voltages[0][1:medfin]
...@@ -349,12 +395,16 @@ plt.grid() ...@@ -349,12 +395,16 @@ plt.grid()
Ahora hago un ajuste con una hiperbola porque tiene mas sentido, por el hecho Ahora hago un ajuste con una hiperbola porque tiene mas sentido, por el hecho
de que en el punto optimo el ion no esta en el centro de la trampa de que en el punto optimo el ion no esta en el centro de la trampa
sino que esta a una distancia d sino que esta a una distancia d
Grafico tesis
""" """
def hiperbola(x,a,b,c,x0): def hiperbola(x,a,b,c,x0):
#b=0 #b=0
return np.sqrt((a*(x-x0)**2+c**2))+b return np.sqrt((a*(x-x0)**2+c**2))+b
medfin = 11 medfin = 10
voltages_dcA = Voltages[0][1:medfin] voltages_dcA = Voltages[0][1:medfin]
...@@ -364,19 +414,24 @@ errorhip = np.sqrt(np.diag(pcovhip)) ...@@ -364,19 +414,24 @@ errorhip = np.sqrt(np.diag(pcovhip))
xhip = np.linspace(-0.23,0.005,200) xhip = np.linspace(-0.23,0.005,200)
fs=10
plt.figure()
plt.errorbar(voltages_dcA,Betas_vec[:medfin-1],yerr=ErrorBetas_vec[:medfin-1],fmt='o',capsize=5,markersize=5,color=paleta[1]) plt.figure(figsize=(3,3.3))
plt.plot(xhip,hiperbola(xhip,*popthip)) plt.errorbar([v*4 for v in voltages_dcA],Betas_vec[:medfin-1],yerr=ErrorBetas_vec[:medfin-1],fmt='o',capsize=3,markersize=5,color='red')
plt.xlabel('Endcap voltage (V)') plt.plot([v*4 for v in xhip],hiperbola(xhip,*popthip),color='slateblue')
plt.ylabel('Modulation factor') plt.xlabel('Voltaje electrodo DC (V)', fontsize=fs)
#plt.yscale('log') plt.ylabel(r'Factor de modulación $\beta$', fontsize=fs)
plt.xlim(-0.9,-0.02)
plt.ylim(-0.05,3)
plt.xticks([-0.8,-0.6,-0.4,-0.2],fontsize=fs)
plt.yticks([0, 0.5, 1, 1.5, 2, 2.5, 3],fontsize=fs)
plt.grid() plt.grid()
plt.tight_layout()
betacero = popthip[2]+popthip[1] betacero = popthip[2]+popthip[1]
error_betacero = np.sqrt((errorhip[1])**2+(errorhip[2])**2+2*pcovhip[1,2]) error_betacero = np.sqrt((errorhip[1])**2+(errorhip[2])**2+2*pcovhip[1,2])
print(f'Beta_0 = {betacero} pm {error_betacero}') print(f'Beta_0 = {betacero} pm {error_betacero}')
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap7//Fig6//Subplots//plot_betas.pdf')
#%% #%%
...@@ -504,23 +559,39 @@ print(f'errores: {np.sqrt(np.diag(pcov_rho22_balance))}') ...@@ -504,23 +559,39 @@ print(f'errores: {np.sqrt(np.diag(pcov_rho22_balance))}')
k_plot = 9 k_plot = 9
plt.figure()
plt.errorbar(Betas_vec[:k_plot],[t*1e3 for t in Temp_vec[:k_plot]],xerr=ErrorBetas_vec[:k_plot], yerr=[t*1e3 for t in ErrorTemp_vec[:k_plot]],fmt='o',capsize=5,markersize=5,color=paleta[3])
#plt.plot(betaslong,[t*1e3 for t in FinalTemp(betaslong,*popt_rho22_balance)],label='Ajuste con espectro modulado')
plt.plot(betaslong,[t*1e3 for t in FinalTemp_withoutC(betaslong,*popt_rho22_balance)],label='With RF heating')
plt.plot(betaslong,[t*1e3 for t in FinalTemp_withoutmicromotion(betaslong,*popt_rho22_balance_noMM)],label='Without RF heating') #%%
"""
Grafico tesis
"""
import seaborn as sns
paleta=sns.color_palette("tab10")
color1,color2,color3,color4=0,1,2,3
#plt.plot(betaslong,FinalTemp_fixedall(betaslong,*popt_rho22_balance),label='Ajuste con espectro modulado') fs = 10
# plt.xlim(-0.1,1.1)
#plt.ylim(0,1) plt.figure(figsize=(4,4 ))
#plt.axvline(minimum_voltage,linestyle='dashed',color='grey') plt.errorbar(Betas_vec[:k_plot],[t*1e3 for t in Temp_vec[:k_plot]],xerr=ErrorBetas_vec[:k_plot], yerr=[t*1e3 for t in ErrorTemp_vec[:k_plot]],fmt='o',color=paleta[color1],capsize=5,markersize=5,zorder=2)
#plt.plot(betaslong,[t*1e3 for t in FinalTemp(betaslong,*popt_rho22_balance)],label='Ajuste con espectro modulado')
plt.plot(betaslong,[t*1e3 for t in FinalTemp_withoutC(betaslong,*popt_rho22_balance)],color=paleta[color2],label='Modelo con calentamiento RF',zorder=0)
plt.plot(betaslong,[t*1e3 for t in FinalTemp_withoutmicromotion(betaslong,*popt_rho22_balance_noMM)],color=paleta[color3],linestyle='dashed',label='Modelo sin calentamiento RF')
plt.xlim(0,2.8)
plt.ylim(0,11)
plt.axhline(0.55,color='grey',alpha=0.5, linewidth=4,label='Temperatura Doppler')
#plt.axhline(0.538) #plt.axhline(0.538)
plt.xlabel('Modulation factor') plt.xlabel(r'Factor de modulación $\beta$', fontsize=fs)
plt.ylabel('Temperature (mK)') plt.ylabel('Temperatura (mK)', fontsize=fs)
plt.xticks([0,0.5,1,1.5,2,2.5], fontsize=fs)
plt.yticks([0,2,4,6,8,10], fontsize=fs)
plt.legend() plt.legend()
plt.grid() plt.grid(alpha=0.5)
plt.tight_layout()
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap7//Fig7.pdf')
#%% #%%
""" """
......
...@@ -123,7 +123,7 @@ for kk in range(len(MultiCounts)): ...@@ -123,7 +123,7 @@ for kk in range(len(MultiCounts)):
Ploteo la cpt de referencia / plotting the reference CPT Ploteo la cpt de referencia / plotting the reference CPT
""" """
jvec = [0] # de la 1 a la 9 vale la pena, despues no jvec = [0] # de la 1 a la 9 vale la pena, despues n
plt.figure() plt.figure()
...@@ -191,7 +191,7 @@ cwd = os.getcwd() ...@@ -191,7 +191,7 @@ cwd = os.getcwd()
os.chdir('../20231123_CPTconmicromocion3') os.chdir('../20231123_CPTconmicromocion3')
from Data.EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM from Data.EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM
os.chdir(cwd) os.chdir(cwd)
#%%
# from Data.EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM # from Data.EITfit.lolo_modelo_full_8niveles import PerformExperiment_8levels_MM
...@@ -621,7 +621,7 @@ for selectedcurve in selectedcurvevec: ...@@ -621,7 +621,7 @@ for selectedcurve in selectedcurvevec:
# plt.plot(detunings,'o') # plt.plot(detunings,'o')
#%%
#from EITfit.MM_eightLevel_2repumps_AnalysisFunctions import PerformExperiment_8levels #from EITfit.MM_eightLevel_2repumps_AnalysisFunctions import PerformExperiment_8levels
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
import time import time
...@@ -844,7 +844,7 @@ for i in range(len(popt_vecs)): ...@@ -844,7 +844,7 @@ for i in range(len(popt_vecs)):
betas1s.append(popt_vecs[i][7]) betas1s.append(popt_vecs[i][7])
betas2s.append(popt_vecs[i][8]) betas2s.append(popt_vecs[i][8])
temps.append(popt_vecs[i][9]) temps.append(popt_vecs[i][9])
detunings.append(popt_vecs[i][]) detunings.append(popt_vecs[i][5])
for i in range(len(popt_vecs2)): for i in range(len(popt_vecs2)):
betas1s.append(popt_vecs2[i][7]) betas1s.append(popt_vecs2[i][7])
......
...@@ -12,8 +12,8 @@ from scipy import interpolate ...@@ -12,8 +12,8 @@ from scipy import interpolate
CPT con tres laseres pero lso dos IR son el mismo entonces las DD son mas finas CPT con tres laseres pero lso dos IR son el mismo entonces las DD son mas finas
""" """
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20231218_CPT_DosLaseres_Reflotoajustes/Data/') #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20231218_CPT_DosLaseres_Reflotoajustes/Data/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20231218_CPT_DosLaseres_Reflotoajustes//Data')
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data
...@@ -151,18 +151,42 @@ Spr = popt_1[4] ...@@ -151,18 +151,42 @@ Spr = popt_1[4]
Srep = popt_1[5] Srep = popt_1[5]
#%% #%%
"""
Figura tesis CPT con dos IR sin dephasing entre ellos (misma fuente laser)
"""
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.figure() ms = 2
plt.errorbar(Detunings_1_short, CountsDR, yerr=2*np.sqrt(CountsDR), fmt='o', color='red', alpha=0.5, capsize=2, markersize=2) cs = 2
plt.plot(Detunings_1_long, FittedEITpi_1_long, color='darkolivegreen', linewidth=3, label='med 1') lwidth = 1
fs = 10
plt.figure(figsize=(3.4,3.3))
plt.errorbar(Detunings_1_short, CountsDR, yerr=1*np.sqrt(CountsDR), fmt='o', color='maroon', alpha=0.5, capsize=cs, markersize=ms)
plt.plot(Detunings_1_long, FittedEITpi_1_long, linewidth=lwidth, color='maroon')
#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')
plt.xlabel('Detuning (MHz)') plt.xlabel('Desintonía IR1 (MHz)', fontsize=fs)
plt.ylabel('Counts') plt.ylabel('Cuentas', fontsize=fs)
#plt.xlim(-20,0)
plt.legend(loc='upper left', fontsize=20) plt.yticks([3000, 3500, 4000, 4500, 5000, 5500], fontsize=fs)
plt.grid() plt.xticks([-40,-20,0,20], fontsize=fs)
plt.ylim(3150, 5600)
plt.xlim(-40, 30)
plt.grid(alpha=0.5)
plt.tight_layout()
plt.tick_params(axis='x', which='major', pad=1)
plt.tick_params(axis='y', which='major', pad=1)
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
plt.savefig('C://Users//nicon//Nextcloud//Nico//Doctorado//Tesis//Tesis_doctorado//Chapters//figures//Cap7//Fig11b.pdf', bbox_inches='tight')
#%% #%%
"""
Este bloque no se que hace, pero no es relevante
"""
u = 32.5e6 u = 32.5e6
B = (u/(2*np.pi))/c B = (u/(2*np.pi))/c
......
...@@ -14,9 +14,17 @@ CPT con tres laseres pero lso dos IR son el mismo entonces las DD son mas finas ...@@ -14,9 +14,17 @@ CPT con tres laseres pero lso dos IR son el mismo entonces las DD son mas finas
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data #C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211223_CPT_DosLaseres_v07_ChristmasSpecial\Data
ALL_FILES = """000016420-IR_Scan_withcal_optimized ALL_FILES = """000016239-IR_Scan_withcal_optimized
000016240-IR_Scan_withcal_optimized
000016241-IR_Scan_withcal_optimized
000016244-IR_Scan_withcal_optimized
000016255-IR_Scan_withcal_optimized
000016256-IR_Scan_withcal_optimized
000016257-IR_Scan_withcal_optimized
000016262-IR_Scan_withcal_optimized
""" """
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20231218_CPT_muri//Data')
def SeeKeys(files): def SeeKeys(files):
for i, fname in enumerate(files.split()): for i, fname in enumerate(files.split()):
...@@ -55,7 +63,7 @@ for i, fname in enumerate(ALL_FILES.split()): ...@@ -55,7 +63,7 @@ for i, fname in enumerate(ALL_FILES.split()):
#Barriendo angulo del IR con tisa apagado #Barriendo angulo del IR con tisa apagado
jvec = [0] jvec = [6]
jselected = jvec jselected = jvec
...@@ -71,132 +79,6 @@ plt.ylabel('counts') ...@@ -71,132 +79,6 @@ plt.ylabel('counts')
plt.grid() plt.grid()
plt.legend() plt.legend()
#%%
from scipy.optimize import curve_fit
import time
phidoppler, titadoppler = 0, 90
phirepump, titarepump = 0, 90
phiprobe = 0
titaprobe = 0.1
Temp = 0.5e-3
sg = 0.544
sp = 4.5
sr = 0
DetRepump = 0
lw = 0.1
DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth = lw, lw, lw #ancho de linea de los laseres
u = 32.5e6
#B = (u/(2*np.pi))/c
gPS, gPD, = 2*np.pi*21.58e6, 2*np.pi*1.35e6
alpha = 0
drivefreq = 2*np.pi*22.135*1e6
noiseamplitude = 0
selectedcurve=0
FreqsDR = Freqs[selectedcurve]
CountsDR = Counts[selectedcurve]
freqslong = np.arange(min(FreqsDR), max(FreqsDR)+FreqsDR[1]-FreqsDR[0], 0.1*(FreqsDR[1]-FreqsDR[0]))
CircPr = 1
alpha = 0
def FitEIT_MM_1ion(Freqs, offset, DetDoppler, DetRepump, SG, SP, SR, SCALE1, OFFSET, TEMP, U, plot=False):
#def FitEIT_MM(freqs, SG, SP, SCALE1, OFFSET, BETA1):
# BETA1 = 0
# SG = 0.6
# SP = 8.1
# TEMP = 0.2e-3
# U = 32.5e6
freqs = [2*f*1e-6-offset for f in Freqs]
#Detunings, Fluorescence1 = PerformExperiment_8levels_MM(SG, SP, gPS, gPD, DetDoppler, u, DopplerLaserLinewidth, ProbeLaserLinewidth, TEMP, alpha, phidoppler, titadoppler, phiprobe, titaprobe, BETA1, drivefreq, min(freqs), max(freqs)+(freqs[1]-freqs[0]), freqs[1]-freqs[0], circularityprobe=CircPr, plot=False, solvemode=1, detpvec=None)
Detunings, Fluorescence1 = GenerateNoisyCPT_fit(SG, SR, SP, gPS, gPD, DetDoppler, DetRepump, U, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, TEMP, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqs, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
ScaledFluo1 = np.array([f*SCALE1 + OFFSET for f in Fluorescence1])
if plot:
return ScaledFluo1, Detunings
else:
return ScaledFluo1
#return ScaledFluo1
do_fit = True
if do_fit:
popt_1, pcov_1 = curve_fit(FitEIT_MM_1ion, FreqsDR, CountsDR, p0=[430, -25, 12, 0.9, 6.2, 3, 3e4, 2e3, 0.5e-3, 32e6], bounds=((0, -100, -20, 0, 0, 0, 0, 0, 0,20e6), (1000, 0, 50, 2, 20, 20, 5e6, 5e4, 15e-3,40e6)))
FittedEITpi_1_short, Detunings_1_short = FitEIT_MM_1ion(FreqsDR, *popt_1, plot=True)
freqslong = np.arange(min(FreqsDR), max(FreqsDR)+FreqsDR[1]-FreqsDR[0], 0.1*(FreqsDR[1]-FreqsDR[0]))
FittedEITpi_1_long, Detunings_1_long = FitEIT_MM_1ion(freqslong, *popt_1, plot=True)
#%%
plt.figure()
plt.errorbar(Detunings_1_short, CountsDR, yerr=2*np.sqrt(CountsDR), fmt='o', color='red', alpha=0.5, capsize=2, markersize=2)
plt.plot(Detunings_1_long, FittedEITpi_1_long, color='darkolivegreen', linewidth=3, label='med 1')
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
plt.xlabel('Detuning (MHz)')
plt.ylabel('Counts')
#plt.xlim(-20,0)
plt.legend(loc='upper left', fontsize=20)
plt.grid()
#%%
u = 32.5e6
B = (u/(2*np.pi))/c
correccion = 8 #con 8 fitea bien
offsetxpi = 440+1+correccion
DetDoppler = -5.0-correccion
FreqsDRpi_3 = [2*f*1e-6-offsetxpi+14 for f in Freqs_B[5]]
CountsDRpi_3 = Counts_B[5]
freqslongpi_3 = np.arange(min(FreqsDRpi_3), max(FreqsDRpi_3)+FreqsDRpi_3[1]-FreqsDRpi_3[0], 0.1*(FreqsDRpi_3[1]-FreqsDRpi_3[0]))
#[1.71811842e+04 3.34325038e-17]
def FitEITpi(freqs, SG, SP):
temp = 2e-3
MeasuredFreq, MeasuredFluo = GenerateNoisyCPT_fit(SG, sr, SP, gPS, gPD, DetDoppler, DetRepump, u, DopplerLaserLinewidth, RepumpLaserLinewidth, ProbeLaserLinewidth, temp, alpha, phidoppler, titadoppler, phiprobe, [titaprobe], phirepump, titarepump, freqs, plot=False, solvemode=1, detpvec=None, noiseamplitude=noiseamplitude)
FinalFluo = [f*6.554e4 + 1.863e3 for f in MeasuredFluo]
return FinalFluo
popt_tisaoff, pcov_tisaoff = curve_fit(FitEITpi, FreqsDRpi_3, CountsDRpi_3, p0=[0.5, 4.5], bounds=((0, 0), (2, 10)))
print(popt_tisaoff)
Sat_3 = popt_tisaoff[0]
Det_3 = popt_tisaoff[1]
FittedEITpi_3 = FitEITpi(freqslongpi_3, *popt_tisaoff)
plt.figure()
plt.errorbar(FreqsDRpi_3, CountsDRpi_3, yerr=2*np.sqrt(CountsDRpi_3), fmt='o', capsize=2, markersize=2)
plt.plot(freqslongpi_3, FittedEITpi_3)
#plt.title(f'Sdop: {round(popt[0], 2)}, Spr: {round(popt[1], 2)}, T: {round(popt[2]*1e3, 2)} mK, detDop: {DetDoppler} MHz')
FreqsCalibradas_B = FreqsDRpi_3
4.285714285714285587e+00 5.142857142857143238e+00 6.000000000000000000e+00 6.857142857142857650e+00 7.714285714285714413e+00 8.571428571428571175e+00 9.428571428571428825e+00 1.028571428571428648e+01 1.114285714285714413e+01 1.200000000000000000e+01 1.285714285714285765e+01 1.371428571428571530e+01 1.457142857142857295e+01 1.542857142857142883e+01 1.628571428571428825e+01 1.714285714285714235e+01 1.800000000000000000e+01 1.885714285714285765e+01 1.971428571428571530e+01 2.057142857142857295e+01 2.142857142857143060e+01 2.228571428571428825e+01 2.314285714285714235e+01 2.400000000000000000e+01 2.485714285714285765e+01 2.571428571428571530e+01 2.657142857142857295e+01 2.742857142857143060e+01 2.828571428571428825e+01 2.914285714285714590e+01
8.390686142192715913e-02 1.424253791611179709e-01 2.345580801321455189e-01 2.727885832090695128e-01 3.245632267059693765e-01 3.977197840793597061e-01 4.091112258691737003e-01 4.421368836642362021e-01 4.739247135044875048e-01 5.174802875276045544e-01 5.354585509740790172e-01 6.097745807499634907e-01 5.951798298738165682e-01 6.525819627069209261e-01 6.584243191252793226e-01 7.376072019121755474e-01 7.378541286258453180e-01 7.358990175108310883e-01 7.124659834505044920e-01 7.167837989641449026e-01 7.175124810553604737e-01 7.566970597370953344e-01 7.745856431104966022e-01 7.470409892524372264e-01 7.769069830233513718e-01 7.371708014289579669e-01 7.194199526390143706e-01 7.672221147761533189e-01 8.114839540561025188e-01 7.741573609460445926e-01
4.285714285714285587e+00 8.390686142192715913e-02
5.142857142857143238e+00 1.424253791611179709e-01
6.000000000000000000e+00 2.345580801321455189e-01
6.857142857142857650e+00 2.727885832090695128e-01
7.714285714285714413e+00 3.245632267059693765e-01
8.571428571428571175e+00 3.977197840793597061e-01
9.428571428571428825e+00 4.091112258691737003e-01
1.028571428571428648e+01 4.421368836642362021e-01
1.114285714285714413e+01 4.739247135044875048e-01
1.200000000000000000e+01 5.174802875276045544e-01
1.285714285714285765e+01 5.354585509740790172e-01
1.371428571428571530e+01 6.097745807499634907e-01
1.457142857142857295e+01 5.951798298738165682e-01
1.542857142857142883e+01 6.525819627069209261e-01
1.628571428571428825e+01 6.584243191252793226e-01
1.714285714285714235e+01 7.376072019121755474e-01
1.800000000000000000e+01 7.378541286258453180e-01
1.885714285714285765e+01 7.358990175108310883e-01
1.971428571428571530e+01 7.124659834505044920e-01
2.057142857142857295e+01 7.167837989641449026e-01
2.142857142857143060e+01 7.175124810553604737e-01
2.228571428571428825e+01 7.566970597370953344e-01
2.314285714285714235e+01 7.745856431104966022e-01
2.400000000000000000e+01 7.470409892524372264e-01
2.485714285714285765e+01 7.769069830233513718e-01
2.571428571428571530e+01 7.371708014289579669e-01
2.657142857142857295e+01 7.194199526390143706e-01
2.742857142857143060e+01 7.672221147761533189e-01
2.828571428571428825e+01 8.114839540561025188e-01
2.914285714285714590e+01 7.741573609460445926e-01
5.434492047916164581e-02
5.197738492766598023e-02
5.035641219674288904e-02
5.567609594837701070e-02
5.388323472248535834e-02
5.172291085160966861e-02
4.991250656951392445e-02
4.796809139657864929e-02
4.504731609292664252e-02
4.532269804948897696e-02
4.432748288317098218e-02
4.229005231699299594e-02
4.194875229443972148e-02
3.917962472310585614e-02
3.873596988524656559e-02
3.769961121831831574e-02
3.870501457079822405e-02
3.893510105757547884e-02
3.907094693877281172e-02
3.868668771920748956e-02
3.900431648182418193e-02
3.758579916218984796e-02
3.637156105086664787e-02
3.675968051602922920e-02
3.520234663899190347e-02
3.635473649826690551e-02
3.677164396591762335e-02
3.540698287337937233e-02
3.364307564070161821e-02
4.019887779739222261e-02
...@@ -8,11 +8,8 @@ from scipy.optimize import curve_fit ...@@ -8,11 +8,8 @@ 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 #os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20240312_RotationalDopplerShift_news/Data')
os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20240312_RotationalDopplerShift_news/Data')
""" """
...@@ -555,7 +552,7 @@ Intento ajustar con un modelo con bessels ...@@ -555,7 +552,7 @@ Intento ajustar con un modelo con bessels
Uso los primeros tres puntos de la medicion con haz chico y el resto con el haz grande Uso los primeros tres puntos de la medicion con haz chico y el resto con el haz grande
""" """
from scipy.optimize import curve_fit from scipy.optimize import curve_fit
from scipy.special import jv
def modelo3(r,a,b,c): def modelo3(r,a,b,c):
#c=1 #c=1
...@@ -563,31 +560,43 @@ def modelo3(r,a,b,c): ...@@ -563,31 +560,43 @@ def modelo3(r,a,b,c):
return s return s
#return a*(s/(1+c*s)) #return a*(s/(1+c*s))
rfit = np.arange(x1,len(Intensityver2)*20+x2,20) scale = 140/6
rfit = [r/scale for r in np.arange(x1,len(Intensityver2)*20+x2,20)]
yfit = [pmdepthsdrver1[0],pmdepthsdrver1[1],pmdepthsdrver1[2]] + [p for p in pmdepthsdrver2] yfit = [pmdepthsdrver1[0],pmdepthsdrver1[1],pmdepthsdrver1[2]] + [p for p in pmdepthsdrver2]
yerro = [errorpmdepthsdrver1[0],errorpmdepthsdrver1[1],errorpmdepthsdrver1[2]] + [p for p in errorpmdepthsdrver2]
data_ajuste = np.savetxt('data_ajuste2.txt',np.transpose(np.array([rfit,yfit])))
error_ajuste = np.savetxt('errores_ajuste.txt',np.transpose(np.array([yerro])))
np.savetxt('data_ajuste.txt',np.array([rfit,yfit]))
popt,pcov = curve_fit(modelo3,rfit,yfit) popt,pcov = curve_fit(modelo3,rfit,yfit)
# rfit = np.arange(x2,len(Intensityver2)*20+x2,20) # rfit = np.arange(x2,len(Intensityver2)*20+x2,20)
# yfit = [p for p in pmdepthsdrver2] # yfit = [p for p in pmdepthsdrver2]
rlong = np.arange(-20.1,1000,1) rlong = np.arange(-20.1/scale,1000/scale,1/scale)
popt,pcov = curve_fit(modelo3,rfit,yfit,p0=(10,100,2)) popt,pcov = curve_fit(modelo3,rfit,yfit,p0=(10,10,2))
print(popt) print(popt)
plt.figure() plt.figure()
plt.errorbar(np.arange(x1,len(Intensityver1)*20+x1,20), [p for p in pmdepthsdrver1], yerr= errorpmdepthsdrver1, fmt='o',color='red', capsize=3, markersize=8,zorder=1) plt.errorbar([r/scale for r in np.arange(x1,len(Intensityver1)*20+x1,20)], [p for p in pmdepthsdrver1], yerr= errorpmdepthsdrver1, fmt='o',color='red', capsize=3, markersize=8,zorder=1)
plt.plot([x*20 for x in xchicofinal],[i/np.max(IntensityChico) for i in IntensityChico],'o',color='red',alpha=0.3) plt.plot([x*20/scale for x in xchicofinal],[i/np.max(IntensityChico) for i in IntensityChico],'o',color='red',alpha=0.3)
plt.errorbar(np.arange(x2,len(Intensityver2)*20+x2,20), [p for p in pmdepthsdrver2], yerr= errorpmdepthsdrver2, fmt='o',color='blue', capsize=3, markersize=8,zorder=1) plt.errorbar([r/scale for r in np.arange(x2,len(Intensityver2)*20+x2,20)], [p for p in pmdepthsdrver2], yerr= errorpmdepthsdrver2, fmt='o',color='blue', capsize=3, markersize=8,zorder=1)
plt.plot([x*20 for x in xgrandefinal],[i/np.max(IntensityGrande) for i in IntensityGrande],'o',color='blue',alpha=0.3) plt.plot([x*20/scale for x in xgrandefinal],[i/np.max(IntensityGrande) for i in IntensityGrande],'o',color='blue',alpha=0.3)
plt.plot(rlong,modelo3(rlong,*popt),zorder=2,color='green',linewidth=3,label=r'$I(r)=a\,(J_0(\frac{b}{r}))^2$') plt.plot(rlong,modelo3(rlong,*popt),zorder=2,color='green',linewidth=3,label=r'$I(r)=a\,(J_0(\frac{b}{r}))^2$')
plt.xlim(-10,600+x2+10) plt.xlim(-10/scale,(600+x2+10)/scale)
#lt.legend() #lt.legend()
plt.grid() plt.grid()
......
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
"""
Primero tengo mediciones de espectros cpt de un ion variando la tension dc_A
"""
#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/20240312_RotationalDopplerShift_news/Data/CPT/')
os.chdir('C://Users//nicon//Doctorado//artiq_experiments//analisis//plots//20240429_Loadingsteps//Data')
ALL_FILES = """000017749-InOut
000017750-InOut
"""
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(ALL_FILES))
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
Counts = []
Times = []
for i, fname in enumerate(ALL_FILES.split()):
print(str(i) + ' - ' + fname)
#print(fname)
data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
# Aca hago algo repugnante para poder levantar los strings que dejamos
# que además tenian un error de tipeo al final. Esto no deberá ser necesario
# cuando se solucione el error este del guardado.
Times.append(np.array(data['datasets']['time']))
Counts.append(np.array(data['datasets']['counts']))
#AmpTisa.append(np.array(data['datasets']['TISA_CPT_amp']))
#UVCPTAmp.append(np.array(data['datasets']['UV_CPT_amp']))
#No_measures.append(np.array(data['datasets']['no_measures']))
#%%
#Barriendo angulo del IR con tisa apagado
Times_sum = np.array(list(Times[0])+list([t+Times[0][-1] for t in Times[1][1:]]))
Counts_sum = np.array(list(Counts[0])+list(Counts[1][1:]))
init=150
plt.figure()
plt.errorbar([t-Times_sum[init] for t in Times_sum[init:]], Counts_sum[init:], yerr=np.sqrt(Counts_sum[init:]), fmt='o', capsize=2, markersize=2)
plt.xlabel('Tiempo (s)')
plt.ylabel('Cuentas')
plt.grid()
# plt.figure()
# plt.hist(Counts_sum[init:],400)
# #plt.xlim(2000,5000)
\ No newline at end of file
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