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

todo

parent 4d933d1b
...@@ -126,13 +126,23 @@ for p in potsselected: ...@@ -126,13 +126,23 @@ for p in potsselected:
#%% #%%
#pruebo un suavizado para los datos #pruebo un suavizado para los datos
def FuncTest(r,A,B, det, delta, g):
return A*(((0.25*g*g+det*det+(2/3)*delta*delta)/(r*r))+6*r*r/(delta*delta))**(-1)+B
from scipy.signal import savgol_filter as sf from scipy.signal import savgol_filter as sf
FluoSel = IR_fluorescence_vec[0][1:] FluoSel = IR_fluorescence_vec[0][1:]
PotsSel = PotenciasIR[1:] PotsSel = PotenciasIR[1:]
popt, pcov = curve_fit(FuncTest, PotsSel, FluoSel,p0=(1000,500,0,100,0))
print(popt)
PotsLong = np.arange(0,np.max(PotsSel), 0.1)
#PotsLong = np.arange(np.min(PotsSel),np.max(PotsSel), 0.1)
plt.plot(PotsSel, FluoSel, 'o') plt.plot(PotsSel, FluoSel, 'o')
plt.plot(PotsSel, sf(FluoSel, 13, 3)) plt.plot(PotsLong, FuncTest(PotsLong,*popt))
#plt.plot(PotsSel, sf(FluoSel, 13, 3))
#%% #%%
#lo aplico #lo aplico
...@@ -219,7 +229,7 @@ print(popt_expvspot) ...@@ -219,7 +229,7 @@ print(popt_expvspot)
Figura paper. Umbral vs campo magnetico con la calibracion y la teoria superpuesta (la teoria sale de threeLevel_2repumps_CPTPlotter.py de Figura CPT Teorica) Figura paper. Umbral vs campo magnetico con la calibracion y la teoria superpuesta (la teoria sale de threeLevel_2repumps_CPTPlotter.py de Figura CPT Teorica)
''' '''
propor = LinearFitPotvsB(longBvec, *popt_expvspot)[-1]/RabiVector[0][-1] #esto viene del threeLevel_2repumps_CPTPlotter.py de Figura CPT Teorica propor = LinearFitPotvsB(longBvec, *popt_expvspot)[-1]/RabiVector[0][-1] #esto viene del threeLevel_2repumps_CPTPlotter.py de Figura CPT Teorica de la carpeta Work (no de Papers)
#colores=sns.color_palette("mako") #colores=sns.color_palette("mako")
colores=sns.color_palette("rocket") colores=sns.color_palette("rocket")
...@@ -313,7 +323,7 @@ plt.yticks([0,1,2,3], fontsize=12, fontname='STIXGeneral') ...@@ -313,7 +323,7 @@ plt.yticks([0,1,2,3], fontsize=12, fontname='STIXGeneral')
plt.ylim(0,3.7) plt.ylim(0,3.7)
plt.tight_layout() plt.tight_layout()
plt.legend(loc='upper left', frameon=True, fontsize=7, handletextpad=0.1) plt.legend(loc='upper left', frameon=True, fontsize=7, handletextpad=0.1)
plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 B vs K eigenbasis/Figuras_finales/Measurement_thresholds_v2.pdf') #plt.savefig('/home/nico/Nextcloud/G_liaf/Publicaciones/Papers/2022 B vs K eigenbasis/Figuras_finales/Measurement_thresholds_v2.pdf')
......
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 31 16:18:18 2023
@author: nico
"""
from scipy.special import jv
import numpy as np
import matplotlib.pyplot as plt
def CPTMicromotionSpectra(det, A, beta, x0, x1):
ftrap=22.1
gamma=2
P = -A*(jv(0, beta)**2)/(((det-x0)**2)+(0.5*gamma)**2)+10 -A*(jv(0, beta)**2)/(((det-x1)**2)+(0.5*gamma)**2)+10-0.5*det
i = 1
#print(P)
while i <= 10:
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-x1)+i*ftrap)**2)+(0.5*gamma)**2) - A*((jv(-i, beta))**2)/((((det-x1)-i*ftrap)**2)+(0.5*gamma)**2)
i = i + 1
#print(P)
return P
detvec = np.arange(-50,50,0.1)
A=1
betavec=[0,0.5,1,1.5]
x0=0
x1 = 10
plt.figure()
for beta in betavec:
plt.plot(detvec,CPTMicromotionSpectra(detvec,A,beta,x0,x1))
plt.xlim(-50,50)
plt.ylim(18.5,20.5)
...@@ -36,6 +36,9 @@ COMPMERG_FILES = """VaryingCompMerged/000014441-IR_Scan_withcal_optimized ...@@ -36,6 +36,9 @@ COMPMERG_FILES = """VaryingCompMerged/000014441-IR_Scan_withcal_optimized
VaryingCompMerged/000014442-IR_Scan_withcal_optimized VaryingCompMerged/000014442-IR_Scan_withcal_optimized
""" """
TEMP_FILES = """VaryingTemp/000015058-IR_Scan_withcal_optimized
"""
def Split(array,n): def Split(array,n):
length=len(array)/n length=len(array)/n
splitlist = [] splitlist = []
...@@ -57,7 +60,7 @@ def SeeKeys(files): ...@@ -57,7 +60,7 @@ def SeeKeys(files):
print(fname) print(fname)
print(list(data['datasets'].keys())) print(list(data['datasets'].keys()))
print(SeeKeys(COMPMERG_FILES)) print(SeeKeys(TEMP_FILES))
#carpeta pc nico labo escritorio: #carpeta pc nico labo escritorio:
...@@ -90,6 +93,23 @@ for k in range(len(CompFrequencies)): ...@@ -90,6 +93,23 @@ for k in range(len(CompFrequencies)):
CompCounts.append(Split(CompCountsMerged[k],len(CompFrequencies[k]))) CompCounts.append(Split(CompCountsMerged[k],len(CompFrequencies[k])))
TempTimes = []
TempCountsMerged = []
TempFrequencies = []
for i, fname in enumerate(TEMP_FILES.split()):
print(str(i) + ' - ' + fname)
data = h5py.File(fname+'.h5', 'r')
TempTimes.append(np.array(data['datasets']['scanning_heattimes']))
TempCountsMerged.append(np.array(data['datasets']['data_array']))
TempFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
TempCounts = []
for k in range(len(TempFrequencies)):
TempCounts.append(Split(TempCountsMerged[k],len(TempFrequencies[k])))
#%% #%%
import seaborn as sns import seaborn as sns
""" """
...@@ -174,6 +194,22 @@ plt.legend() ...@@ -174,6 +194,22 @@ plt.legend()
#%%
"""
Pongo para barrer temptimes y que me lo guarde todo mergeado. Salio mal igual...
"""
med=0
tempvec=[0,1,2,3,4]
plt.figure()
for med in tempvec:
plt.plot([2*f*1e-6 for f in TempFrequencies[0][1:]], TempCounts[0][med][1:], label=TempTimes[0][med])
plt.xlabel('Frecuencia (MHz)')
plt.ylabel('Counts')
plt.grid()
plt.legend()
......
...@@ -12,7 +12,7 @@ from scipy import interpolate ...@@ -12,7 +12,7 @@ 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')
""" """
...@@ -46,42 +46,23 @@ def SeeKeys(files): ...@@ -46,42 +46,23 @@ def SeeKeys(files):
print(fname) print(fname)
print(list(data['datasets'].keys())) print(list(data['datasets'].keys()))
def Lorentzian( x, A, B, x0, gam ):
return A * gam**2 / ( gam**2 + ( x - x0 )**2) + B
PiezoVerCounts = []
PiezoVerFrequencies = []
PIEZOVER_FILES = np.arange(922, 948,1)
for i in PIEZOVER_FILES:
#print(str(i) + ' - ' + fname)
data = h5py.File(f'VaryingBeamlocation/Directions/Vertical/000014{i}-IR_Scan_withcal_optimized'+'.h5', 'r')
PiezoVerCounts.append(np.array(data['datasets']['counts_spectrum']))
PiezoVerFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
PiezoDiagCounts = [] Piezo1Counts = []
PiezoDiagFrequencies = [] Piezo1Frequencies = []
PIEZODIAG_FILES = list(np.arange(948, 976,1)) PIEZOS1_FILES = [32,33,34,35,37,38,39,40,41,42,43,44,45,46]
for i in PIEZODIAG_FILES: for i in PIEZOS1_FILES:
#print(str(i) + ' - ' + fname) #print(str(i) + ' - ' + fname)
data = h5py.File(f'VaryingBeamlocation/Directions/Diagonal/000014{i}-IR_Scan_withcal_optimized'+'.h5', 'r') data = h5py.File(f'VaryingBeamsize/Size1/0000150{i}-IR_Scan_withcal_optimized'+'.h5', 'r')
PiezoDiagCounts.append(np.array(data['datasets']['counts_spectrum'])) Piezo1Counts.append(np.array(data['datasets']['counts_spectrum']))
PiezoDiagFrequencies.append(np.array(data['datasets']['IR1_Frequencies'])) Piezo1Frequencies.append(np.array(data['datasets']['IR1_Frequencies']))
def ErrorDRdepth(p, f, b):
ep = np.sqrt(p)
ef = np.sqrt(f)
eb = np.sqrt(b)
derivadap = 1/((f-b)**2)
derivadaf = ((p-b)/((f-b)**2))**2
derivadab = ((p-f)/((f-b)**2))**2
return 2*np.sqrt(derivadap*ep*ep + derivadaf*ef*ef + derivadab*eb*eb)
def Lorentzian( x, A, B, x0, gam ):
return A * gam**2 / ( gam**2 + ( x - x0 )**2) + B
#%% #%%
""" """
...@@ -98,7 +79,7 @@ Moviendo verticalmente el haz ...@@ -98,7 +79,7 @@ Moviendo verticalmente el haz
palette = sns.color_palette("tab10") palette = sns.color_palette("tab10")
pmlocmedvec = np.arange(0,len(PIEZOVER_FILES),1) pmlocmedvec = np.arange(0,len(PIEZOS1_FILES),1)
#pmlocmedvec = [26] #pmlocmedvec = [26]
...@@ -106,7 +87,9 @@ pmlocmedvec = np.arange(0,len(PIEZOVER_FILES),1) ...@@ -106,7 +87,9 @@ pmlocmedvec = np.arange(0,len(PIEZOVER_FILES),1)
plt.figure() plt.figure()
bkg = np.min(PiezoVerCounts[5]) #bkg = np.min(PiezoS1Counts[5])
bkg=120
pmdepthsdrver=[] pmdepthsdrver=[]
errorpmdepthsdrver=[] errorpmdepthsdrver=[]
...@@ -117,13 +100,13 @@ errorIntensityver = [] ...@@ -117,13 +100,13 @@ errorIntensityver = []
jj=0 jj=0
for med in pmlocmedvec: for med in pmlocmedvec:
Freqs = [2*f*1e-6 for f in PiezoVerFrequencies[med][1:]] Freqs = [2*f*1e-6 for f in Piezo1Frequencies[med][1:]]
Counts = [c for c in PiezoVerCounts[med][1:]] Counts = [c for c in Piezo1Counts[med][1:]]
popt, pcov = curve_fit(Lorentzian, Freqs, Counts, p0=(-200,2100,435.8,0.05), bounds=((-10000,0,435.5,0),(0,1e4, 436.1, 1))) popt, pcov = curve_fit(Lorentzian, Freqs, Counts, p0=(-200,2100,435.8,0.05), bounds=((-10000,0,435.5,0),(0,1e4, 436.1, 1)))
pmdepthsdrver.append(1-(np.min(Lorentzian(Freqs,*popt))-bkg)/(popt[1]-bkg)) pmdepthsdrver.append(1-(np.min(Lorentzian(Freqs,*popt))-bkg)/(popt[1]-bkg))
errorpmdepthsdrver.append(ErrorDRdepth(np.min(Lorentzian(Freqs,*popt)),popt[1], bkg)) #errorpmdepthsdrver.append(ErrorDRdepth(np.min(Lorentzian(Freqs,*popt)),popt[1], bkg))
Intens = popt[1] Intens = popt[1]
...@@ -132,7 +115,7 @@ for med in pmlocmedvec: ...@@ -132,7 +115,7 @@ for med in pmlocmedvec:
if med not in [800]: if med not in [800]:
plt.plot([2*f*1e-6 for f in PiezoVerFrequencies[med][1:]], [c for c in PiezoVerCounts[med][1:]], '-o', markersize=2, alpha=0.7) plt.plot([2*f*1e-6 for f in Piezo1Frequencies[med][1:]], [c for c in Piezo1Counts[med][1:]], '-o', markersize=2, alpha=0.7)
plt.plot(Freqs,Lorentzian(Freqs,*popt)) plt.plot(Freqs,Lorentzian(Freqs,*popt))
jj=jj+1 jj=jj+1
......
...@@ -12,7 +12,7 @@ from scipy import interpolate ...@@ -12,7 +12,7 @@ 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')
""" """
...@@ -58,6 +58,22 @@ for i in PIEZOVER_FILES: ...@@ -58,6 +58,22 @@ for i in PIEZOVER_FILES:
PiezoVerCounts.append(np.array(data['datasets']['counts_spectrum'])) PiezoVerCounts.append(np.array(data['datasets']['counts_spectrum']))
PiezoVerFrequencies.append(np.array(data['datasets']['IR1_Frequencies'])) PiezoVerFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
PiezoVerDCounts = []
PiezoVerDFrequencies = []
PIEZOVERD_FILES = list(np.arange(70, 97,1))+list(np.arange(99,116))
for i in PIEZOVERD_FILES:
#print(str(i) + ' - ' + fname)
if i <100:
data = h5py.File(f'VaryingBeamlocation/Directions/VerticalDense/0000150{i}-IR_Scan_withcal_optimized'+'.h5', 'r')
else:
data = h5py.File(f'VaryingBeamlocation/Directions/VerticalDense/000015{i}-IR_Scan_withcal_optimized'+'.h5', 'r')
PiezoVerDCounts.append(np.array(data['datasets']['counts_spectrum']))
PiezoVerDFrequencies.append(np.array(data['datasets']['IR1_Frequencies']))
PiezoDiagCounts = [] PiezoDiagCounts = []
PiezoDiagFrequencies = [] PiezoDiagFrequencies = []
...@@ -278,3 +294,76 @@ plt.ylim(-0.1,1.1) ...@@ -278,3 +294,76 @@ plt.ylim(-0.1,1.1)
plt.grid() plt.grid()
#plt.axvline(3, color='salmon') #plt.axvline(3, color='salmon')
plt.legend() plt.legend()
#%%
import seaborn as sns
"""
Resonancias DD configuracion +2/-2 colineal variando la ubicacion del ion en los haces
Moviendo verticalmente el haz pero con mayor densidad de puuntos
"""
palette = sns.color_palette("tab10")
pmlocmedvec = np.arange(0,len(PIEZOVERD_FILES),1)
#pmlocmedvec = [6]
plt.figure()
#bkg = np.min(PiezoVerDCounts[5])
bkg=150
pmdepthsdrverd=[]
errorpmdepthsdrverd=[]
Intensityverd = []
errorIntensityverd = []
jj=0
for med in pmlocmedvec:
Freqs = [2*f*1e-6 for f in PiezoVerDFrequencies[med][1:]]
Counts = [c for c in PiezoVerDCounts[med][1:]]
popt, pcov = curve_fit(Lorentzian, Freqs, Counts, p0=(-200,2100,435.8,0.05), bounds=((-10000,0,435.5,0),(0,1e4, 436.1, 1)))
pmdepthsdrverd.append(1-(np.min(Lorentzian(Freqs,*popt))-bkg)/(popt[1]-bkg))
errorpmdepthsdrverd.append(ErrorDRdepth(np.min(Lorentzian(Freqs,*popt)),popt[1], bkg))
Intens = popt[1]
Intensityverd.append(Intens)
errorIntensityverd.append(2*np.sqrt(Intens)+np.sqrt(bkg))
if med not in [800]:
plt.plot([2*f*1e-6 for f in PiezoVerDFrequencies[med][1:]], [c for c in PiezoVerDCounts[med][1:]], '-o', markersize=2, alpha=0.7)
plt.plot(Freqs,Lorentzian(Freqs,*popt))
jj=jj+1
# plt.xlabel('Frecuencia (MHz)')
# plt.ylabel('Counts')
#plt.xlim(435.2, 436.5)
plt.grid()
# plt.legend()
# #plt.title('Espectros para distintas geometrías')
plt.figure()
plt.errorbar(np.arange(0,len(Intensityverd),1), [i/np.max(Intensityverd) for i in Intensityverd], yerr=[e/np.max(Intensityverd) for e in errorIntensityverd], fmt='o', capsize=3, markersize=8)
plt.errorbar(np.arange(0,len(Intensityverd),1), [p for p in pmdepthsdrverd], yerr=errorpmdepthsdrverd, fmt='o',color='limegreen',capsize=3,markersize=8)
plt.xlabel('Screw step')
plt.ylabel('Intensity / DR Relative depth')
#plt.xticks([1,2,3,4,5])
plt.xlim(-2,35)
plt.ylim(-0.1,1.1)
plt.grid()
#plt.axvline(3, color='salmon')
plt.legend()
\ 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