Commit 6ccdeec4 authored by Marcelo Luda's avatar Marcelo Luda

varsion luda

parent 6c0d5bad
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
from glob import glob
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#%% Carga de datos experimentales
#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data
# os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230804_RotationalDopplerShift_v2/Data')
os.chdir('Data')
"""
en este codigo ploteo espectros CPT de resonancias D-D para configuracion colineal (insensible a velocidad perpendicular)
y configuracion desplazada (sensible).
Primero una gaussiana variando la potencia (power_files).
Luego, variando compensacion con electrodo DCA y con electrodo OVEN.
"""
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return idx
# Levanto carpetas / archivos de datos por experimento
POWER_FILES = sorted(glob('VaryingPower/*'))
EXTRA_FILES = sorted(glob('Extra/*'))
COMP_COL_FILES = sorted(glob('VaryingComp/Col/*'))
COMP_DESP_FILES = sorted(glob('VaryingComp/Desp/*'))
# Función para verificar lectura de archivos
def SeeKeys(files):
for i, fname in enumerate(files):
data = h5py.File(fname, 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
print(fname)
print(list(data['datasets'].keys()))
# Veamos si está bien...
print(SeeKeys(POWER_FILES))
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data
PowerCounts = []
PowerIR1_Freqs = []
for i, fname in enumerate(POWER_FILES):
print(f"{i:02d} - {fname}")
data = h5py.File(fname, 'r')
#Amplitudes.append(np.array(data['datasets']['amplitudes']))
PowerCounts.append(np.array(data['datasets']['counts_spectrum']))
PowerIR1_Freqs.append(np.array(data['datasets']['IR1_Frequencies']))
ExtraCounts = []
ExtraIR1_Freqs = []
for i, fname in enumerate(EXTRA_FILES):
print(f"{i:02d} - {fname}")
data = h5py.File(fname, 'r')
#Amplitudes.append(np.array(data['datasets']['amplitudes']))
ExtraCounts.append(np.array(data['datasets']['counts_spectrum']))
ExtraIR1_Freqs.append(np.array(data['datasets']['IR1_Frequencies']))
CompColCounts = []
CompColIR1_Freqs = []
for i, fname in enumerate(COMP_COL_FILES):
print(f"{i:02d} - {fname}")
data = h5py.File(fname, 'r')
#Amplitudes.append(np.array(data['datasets']['amplitudes']))
CompColCounts.append(np.array(data['datasets']['counts_spectrum']))
CompColIR1_Freqs.append(np.array(data['datasets']['IR1_Frequencies']))
CompDespCounts = []
CompDespIR1_Freqs = []
for i, fname in enumerate(COMP_DESP_FILES):
print(f"{i:02d} - {fname}")
data = h5py.File(fname, 'r')
#Amplitudes.append(np.array(data['datasets']['amplitudes']))
CompDespCounts.append(np.array(data['datasets']['counts_spectrum']))
CompDespIR1_Freqs.append(np.array(data['datasets']['IR1_Frequencies']))
#%%
"""
Resonancias DD variando la potencia del IR2
"""
powermedvec = [3,4,0,1,2]
AmpsVecs = [0.05, 0.08, 0.12, 0.17, 0.22]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
jj=0
for med in powermedvec:
plt.plot([2*f*1e-6 for f in PowerIR1_Freqs[med][1:]], [c for c in PowerCounts[med][1:]], '-o', markersize=2, label=f'amp:{AmpsVecs[jj]}')
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.grid()
plt.legend()
plt.title('Variando potencia de IR2 para potencia de IR1 fija')
#%%
"""
Resonancias DD en config colineal, haces OAM, lindas con algunos parametros (ver cuaderno)
"""
extramedvec = [1]
#AmpsVecs = [0.05, 0.08, 0.12, 0.17, 0.22]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
jj=0
for med in extramedvec:
plt.plot([2*f*1e-6 for f in ExtraIR1_Freqs[med][1:]], [c for c in ExtraCounts[med][1:]], '-o', markersize=2)
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.xlim(433.5, 438)
plt.ylim(1100,3200)
plt.axvline(freqDR)
plt.axvline(freqDR+0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.grid()
plt.legend()
plt.title('Variando potencia de IR2 para potencia de IR1 fija')
#%%
"""
Comparo resonancias DD con haces OAM en config colineal con desplazada
"""
extramedvec = [1,2]
#AmpsVecs = [0.05, 0.08, 0.12, 0.17, 0.22]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
secular=False
plt.plot([2*f*1e-6 for f in ExtraIR1_Freqs[1][1:]], [c for c in ExtraCounts[1][1:]], '-o', markersize=2, label='Colineales')
plt.plot([2*f*1e-6 for f in ExtraIR1_Freqs[2][1:]], [c for c in ExtraCounts[2][1:]], '-o', markersize=2, label='Desplazadas')
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.xlim(425, 455)
plt.ylim(1100,3200)
if secular:
plt.axvline(freqDR)
plt.axvline(freqDR+0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.grid()
plt.legend()
plt.title('Comparacion de config colineal (insensible) con desplazada (sensible)')
#%%
"""
Resonancias DD config colineal OAM variando compensacion dcA
"""
import seaborn as sns
paleta = sns.color_palette("tab10")
compcolmedvec = [5,0,1,2,3,4]
CompsDCA = [-100, -150, -200, -250, -300, -350]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
idx1 = find_nearest([2*f*1e-6 for f in CompColIR1_Freqs[compcolmedvec[0]][1:]], DR1)
idx2 = find_nearest([2*f*1e-6 for f in CompColIR1_Freqs[compcolmedvec[0]][1:]], DR2)
MinimosFluos_Col = []
ErrorMinimosFluos_Col = []
MinimosFluos_Col_Relativos = []
jj=0
for med in compcolmedvec:
plt.plot([2*f*1e-6 for f in CompColIR1_Freqs[med][1:]], [c for c in CompColCounts[med][1:]], '-o', markersize=2)
plt.plot([DR1, DR2], [c for c in [CompColCounts[med][idx1+1],CompColCounts[med][idx2+1]]] , 'o', color=paleta[jj], markersize=15)
MinimosFluos_Col.append([-c+np.mean(CompColCounts[med][1:20]) for c in [CompColCounts[med][idx1+1],CompColCounts[med][idx2+1]]])
ErrorMinimosFluos_Col.append([np.sqrt(CompColCounts[med][idx1+1]), np.sqrt(CompColCounts[med][idx2+1])])
MinimosFluos_Col_Relativos.append([1-(c-30)/(np.mean(CompColCounts[med][0:20])-30) for c in [CompColCounts[med][idx1+1],CompColCounts[med][idx2+1]]])
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.xlim(433.5, 438)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compesnacion dcA config colineal OAM')
#%%
"""
Resonancias DD config desplazada OAM variando compensacion dcA
"""
import seaborn as sns
paleta = sns.color_palette("tab10")
compdespmedvec = [0,2,3,4,5,6]
CompsDCA = [-100, -100, -150, -200, -250, -300, -350]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
idx1 = find_nearest([2*f*1e-6 for f in CompDespIR1_Freqs[compdespmedvec[0]][1:]], DR1)
idx2 = find_nearest([2*f*1e-6 for f in CompDespIR1_Freqs[compdespmedvec[0]][1:]], DR2)
freqDR=435.8
MinimosFluos_Desp = []
ErrorMinimosFluos_Desp = []
MinimosFluos_Desp_Relativos = []
jj=0
for med in compdespmedvec:
plt.plot([2*f*1e-6 for f in CompDespIR1_Freqs[med][1:]], [c for c in CompDespCounts[med][1:]], '-o', markersize=2)
plt.plot([DR1, DR2], [c for c in [CompDespCounts[med][idx1+1],CompDespCounts[med][idx2+1]]] , 'o', color=paleta[jj], markersize=15)
MinimosFluos_Desp.append([-c+np.mean(CompDespCounts[med][1:20]) for c in [CompDespCounts[med][idx1+1],CompDespCounts[med][idx2+1]]])
ErrorMinimosFluos_Desp.append([np.sqrt(CompDespCounts[med][idx1+1]), np.sqrt(CompDespCounts[med][idx2+1])])
MinimosFluos_Desp_Relativos.append([1-(c-30)/(np.mean(CompDespCounts[med][0:20])-30) for c in [CompDespCounts[med][idx1+1],CompDespCounts[med][idx2+1]]])
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.ylim(400, 1280)
#plt.ylim(0,100)
plt.grid()
plt.legend()
plt.title('Variando compesnacion dcA config desplazada OAM')
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#%% Version Luda de los expectros al desplazar ###############################
from scipy.signal import savgol_filter as savgol
# Grafico con subplots
fig,axx = plt.subplots(2,2,figsize=(12,8), constrained_layout=True , sharey='row', sharex='row' )
fig.set_constrained_layout_pads(w_pad=1/72, h_pad=0, hspace=0, wspace=0)
# En la fila de arriba los espectros ..........................................
####################################
ax = axx[0][0]
compcolmedvec = [5,0,1,2,3,4]
CompsDCA_col = [-100, -150, -200, -250, -300, -350]
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
rango_dr1 = np.array([435,437])
rango_dr2 = np.array([443,445])
I_base_fit = np.arange(0,50).tolist()+np.arange(230,280).tolist()+np.arange(450,490).tolist()
I_base_fit = np.array(I_base_fit)
picos = {0:[], 1:[]}
for med in compcolmedvec:
frecuencia = CompColIR1_Freqs[med][1:]*2e-6
cuentas = CompColCounts[med][1:]
if med==4:
# FIX OUTLIER
cuentas = cuentas.tolist()
cuentas.pop(291); cuentas.pop(291); cuentas.pop(291);
cuentas = np.array(cuentas)
frecuencia = frecuencia.tolist()
frecuencia.pop(291); frecuencia.pop(291); frecuencia.pop(291);
frecuencia = np.array(frecuencia)
cuentas_suave = savgol(cuentas,13,2)
ax.plot(frecuencia,cuentas, '.', alpha=0.5)
ax.plot(frecuencia,cuentas_suave, '-', alpha=0.9, color=ax.get_lines()[-1].get_color())
mm = np.polyfit(frecuencia[I_base_fit], cuentas[I_base_fit],1)
ax.plot( [420,460], np.polyval(mm,[420,460]) , '-', color=ax.get_lines()[-1].get_color(), alpha=0.5)
for jj,rango in enumerate([rango_dr1,rango_dr2]):
I = np.arange(len(frecuencia))[(frecuencia>rango.min())&(frecuencia<rango.max())]
idx = cuentas_suave[I].argmin() + I[0]
ax.plot(frecuencia[idx],cuentas_suave[idx], 'o', ms=12, color=ax.get_lines()[-1].get_color(),zorder=10)
base = np.polyval(mm,rango.mean())
val_pico = cuentas_suave[I].min()
picos[jj].append( (base-val_pico)/base )
# ax.plot(cuentas)
ax.grid(b=True,linestyle=':',color='lightgray')
ax.set_xlabel(r'frecuencia [kHz]')
ax.set_ylabel(r'Cuentas')
ax.set_title("Colineal")
picos_col_dr1 = np.array(picos[0])
picos_col_dr2 = np.array(picos[1])
####################################
ax = axx[0][1]
compdespmedvec = [0,2,3,4,5,6]
CompsDCA_desp = [-100, -150, -200, -250, -300, -350]
ftrap = 22.1
# DR1 = 435.8
# DR2 = 444.2
rango_dr1 = np.array([435,437])
rango_dr2 = np.array([443,445])
picos = {0:[], 1:[]}
for med in compdespmedvec:
frecuencia = CompDespIR1_Freqs[med][1:]*2e-6
cuentas = CompDespCounts[med][1:]
if med==0:
# FIX OUTLIER
cuentas[207] = cuentas[206:208:2].mean()
cuentas_suave = savgol(cuentas,13,2)
ax.plot(frecuencia,cuentas, '.', alpha=0.5)
ax.plot(frecuencia,cuentas_suave, '-', alpha=0.9, color=ax.get_lines()[-1].get_color())
mm = np.polyfit(frecuencia[I_base_fit], cuentas[I_base_fit],1)
ax.plot( [420,460], np.polyval(mm,[420,460]) , '-', color=ax.get_lines()[-1].get_color(), alpha=0.5)
for jj,rango in enumerate([rango_dr1,rango_dr2]):
I = np.arange(len(frecuencia))[(frecuencia>rango.min())&(frecuencia<rango.max())]
idx = cuentas_suave[I].argmin() + I[0]
ax.plot(frecuencia[idx],cuentas_suave[idx], 'o', ms=12, color=ax.get_lines()[-1].get_color(),zorder=10)
base = np.polyval(mm,rango.mean())
val_pico = cuentas_suave[I].min()
picos[jj].append( (base-val_pico)/base )
# ax.plot(cuentas)
ax.grid(b=True,linestyle=':',color='lightgray')
ax.set_xlabel(r'frecuencia [kHz]')
# ax.set_ylabel(r'Cuentas')
ax.set_title("Desplazado")
picos_desp_dr1 = np.array(picos[0])
picos_desp_dr2 = np.array(picos[1])
ax.set_xlim(427,453)
# En la fila de abajo las profundidades .......................................
####################################
ax = axx[1][0]
ax.plot( CompsDCA_col , picos_col_dr1 , 'o--' , color='gray')
for comp,pic in zip(CompsDCA_col , picos_col_dr1):
ax.plot(comp,pic,'o')
ax.set_prop_cycle(None)
ax.plot( CompsDCA_col , picos_col_dr2 , 'o-' , color='gray')
for comp,pic in zip(CompsDCA_col , picos_col_dr2):
ax.plot(comp,pic,'o')
ax.grid(b=True,linestyle=':',color='lightgray')
ax.set_xlabel('Descompensación [mV]')
ax.set_ylabel('Profundidad relativa')
####################################
ax = axx[1][1]
ax.plot( CompsDCA_desp , picos_desp_dr1 , 'o--' , color='gray' )
for comp,pic in zip(CompsDCA_desp , picos_desp_dr1):
ax.plot(comp,pic,'o')
ax.set_prop_cycle(None)
ax.plot( CompsDCA_desp , picos_desp_dr2 , 'o-' , color='gray')
for comp,pic in zip(CompsDCA_desp , picos_desp_dr2):
ax.plot(comp,pic,'o')
ax.grid(b=True,linestyle=':',color='lightgray')
ax.set_xlabel('Descompensación [mV]')
ax.semilogy()
ax.set_ylim(0.09,1.05)
for ax in axx[1]:
ax.grid(b=True,linestyle=':',color='lightgray', which='minor', axis='y')
from matplotlib.ticker import FormatStrFormatter
ax.yaxis.set_minor_formatter(FormatStrFormatter("%.1f"))
for ax in axx[0]:
ax.axvline(DR1, ls='--', color='gray')
ax.axvline(DR2, ls='-', color='gray')
#%%
"""
Ahora grafico el valor de los minimos en funcion de la descompensacion dcA
"""
CompsDCAcol = [-100, -150, -200, -250, -300, -350]
CompsDCAdesp = [-100, -150, -200, -250, -300, -350]
MinimosFluos_Col_DR1 = np.transpose(np.array(MinimosFluos_Col))[0]
MinimosFluos_Col_DR2 = np.transpose(np.array(MinimosFluos_Col))[1]
MinimosFluos_Desp_DR1 = np.transpose(np.array(MinimosFluos_Desp))[0]
MinimosFluos_Desp_DR2 = np.transpose(np.array(MinimosFluos_Desp))[1]
ErrorMinimosFluos_Col_DR1 = np.transpose(np.array(ErrorMinimosFluos_Col))[0]
ErrorMinimosFluos_Col_DR2 = np.transpose(np.array(ErrorMinimosFluos_Col))[1]
ErrorMinimosFluos_Desp_DR1 = np.transpose(np.array(ErrorMinimosFluos_Desp))[0]
ErrorMinimosFluos_Desp_DR2 = np.transpose(np.array(ErrorMinimosFluos_Desp))[1]
#DR1
plt.figure()
plt.errorbar(CompsDCAcol[:],MinimosFluos_Col_DR1[:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Colineal')
plt.errorbar(CompsDCAdesp[:],MinimosFluos_Desp_DR1[:],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR2)[:]],fmt='o', capsize=2, markersize=12, label='Desplazada')
plt.legend()
plt.title('DR1')
plt.grid()
plt.xlabel('Endcap voltage (mV)')
plt.ylabel('DR1 counts - mean')
#DR2
plt.figure()
plt.errorbar(CompsDCAcol[:],MinimosFluos_Col_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Colineal')
plt.errorbar(CompsDCAdesp[:],MinimosFluos_Desp_DR2[:],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR1)[:]],fmt='o', capsize=2, markersize=12, label='Desplazada')
plt.legend()
plt.title('DR2')
plt.grid()
plt.xlabel('Endcap voltage (mV)')
plt.ylabel('DR2 counts - mean')
#%%
"""
Ahora veo los valores relativos a la fluorescencia al principio del espectro
"""
MinimosFluos_Col_Relativos_DR1 = np.transpose(np.array(MinimosFluos_Col_Relativos))[0]
MinimosFluos_Col_Relativos_DR2 = np.transpose(np.array(MinimosFluos_Col_Relativos))[1]
MinimosFluos_Desp_Relativos_DR1 = np.transpose(np.array(MinimosFluos_Desp_Relativos))[0]
MinimosFluos_Desp_Relativos_DR2 = np.transpose(np.array(MinimosFluos_Desp_Relativos))[1]
plt.figure()
plt.semilogy(CompsDCAcol, MinimosFluos_Col_Relativos_DR1, 'o', markersize=12, label='Colineal')
plt.semilogy(CompsDCAdesp, MinimosFluos_Desp_Relativos_DR1, 'o', markersize=12, label='Desplazada')
plt.title('DR1')
plt.grid()
plt.xlabel('Endcap voltage (mV)')
plt.ylabel('DR1 counts relatives')
plt.legend()
plt.figure()
plt.semilogy(CompsDCAcol, MinimosFluos_Col_Relativos_DR2, 'o', markersize=12, label='Colineal')
plt.semilogy(CompsDCAdesp, MinimosFluos_Desp_Relativos_DR2, 'o', markersize=12, label='Desplazada')
plt.title('DR2')
plt.grid()
plt.xlabel('Endcap voltage (mV)')
plt.ylabel('DR2 counts relatives')
plt.legend()
#hasta aca
#%%
"""
Resonancias DD config colineal OAM variando compensacion OVEN
"""
import seaborn as sns
compcolmedvec = [6,7,8,9,10,11,12,13,14]
CompsOVENcol = [6.1, 5.9, 5.7, 5.5, 5.3, 5.1, 4.9, 4.7, 4.5]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
jj=0
for med in compcolmedvec:
plt.plot([2*f*1e-6 for f in CompColIR1_Freqs[med][1:]], [c for c in CompColCounts[med][1:]], '-o', markersize=2)
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.xlim(433.5, 438)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compesnacion dcA config colineal OAM')
""" Le resto el fondo a ver como se ven"""
paleta = sns.color_palette("tab10")
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.25
idx1 = find_nearest([2*f*1e-6 for f in CompColIR1_Freqs[compcolmedvec[0]][1:]], DR1)
idx2 = find_nearest([2*f*1e-6 for f in CompColIR1_Freqs[compcolmedvec[0]][1:]], DR2)
MinimosFluos_Col = []
ErrorMinimosFluos_Col = []
freqDR=435.8
jj=0
for med in compcolmedvec:
plt.plot([2*f*1e-6 for f in CompColIR1_Freqs[med][1:]], [c-np.mean(CompColCounts[med][1:20]) for c in CompColCounts[med][1:]], '-o', markersize=2)
plt.plot([DR1, DR2], [c-np.mean(CompColCounts[med][1:20]) for c in [CompColCounts[med][idx1+1],CompColCounts[med][idx2+1]]] , 'o', color=paleta[jj], markersize=15)
MinimosFluos_Col.append([-c+np.mean(CompColCounts[med][1:20]) for c in [CompColCounts[med][idx1+1],CompColCounts[med][idx2+1]]])
ErrorMinimosFluos_Col.append([np.sqrt(CompColCounts[med][idx1+1]), np.sqrt(CompColCounts[med][idx2+1])])
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.xlim(443, 445)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compesnacion dcA config colineal OAM')
""" Estas son dos curvas con mas estadistica """
compcolmedvec = [15, 16]
CompsOVEN = [5.9,4.3]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
jj=0
for med in compcolmedvec:
plt.plot([2*f*1e-6 for f in CompColIR1_Freqs[med][1:]], [c for c in CompColCounts[med][1:]], '-o', markersize=2)
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.ylim(300, 1000)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compensacion OVEN config colineal OAM mas estadistica')
#%%
import seaborn as sns
"""
Resonancias DD config desplazada OAM variando compensacion OVEN
"""
compdespmedvec = [7,8,9,10,11,12,13,14,15,16]
CompsOVENdesp = [5.9, 5.7, 5.5, 5.3, 5.1, 4.9, 4.7, 4.5, 4.3, 4.1]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
jj=0
for med in compdespmedvec:
plt.plot([2*f*1e-6 for f in CompDespIR1_Freqs[med][1:]], [c for c in CompDespCounts[med][1:]], '-o', markersize=2)
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.ylim(300, 1000)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compensacion OVEN config desplazada OAM')
""" Le resto el fondo a ver como se ven y ploteo sus valores de DR"""
paleta = sns.color_palette("tab10")
compdespmedvec = [7,8,9,10,11,12,13,14,15,16]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
idx1 = find_nearest([2*f*1e-6 for f in CompDespIR1_Freqs[compcolmedvec[0]][1:]], DR1)
idx2 = find_nearest([2*f*1e-6 for f in CompDespIR1_Freqs[compcolmedvec[0]][1:]], DR2)
freqDR=435.8
MinimosFluos_Desp = []
ErrorMinimosFluos_Desp = []
jj=0
for med in compdespmedvec:
plt.plot([2*f*1e-6 for f in CompDespIR1_Freqs[med][1:]], [c-np.mean(CompDespCounts[med][1:20]) for c in CompDespCounts[med][1:]], '-o', color=paleta[jj], markersize=2, zorder=0)
plt.plot([DR1, DR2], [c-np.mean(CompDespCounts[med][1:20]) for c in [CompDespCounts[med][idx1+1],CompDespCounts[med][idx2+1]]] , 'o', color=paleta[jj], markersize=15)
MinimosFluos_Desp.append([-c+np.mean(CompDespCounts[med][1:20]) for c in [CompDespCounts[med][idx1+1],CompDespCounts[med][idx2+1]]])
ErrorMinimosFluos_Desp.append(([np.sqrt(CompDespCounts[med][idx1+1]), np.sqrt(CompDespCounts[med][idx2+1])]))
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.ylim(300, 1000)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compensacion OVEN config desplazada OAM')
""" Estas son dos curvas con mas estadistica """
compdespmedvec = [17, 18]
CompsOVEN = [5.9,4.3]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
freqDR=435.8
jj=0
for med in compdespmedvec:
plt.plot([2*f*1e-6 for f in CompDespIR1_Freqs[med][1:]], [c for c in CompDespCounts[med][1:]], '-o', markersize=2)
jj=jj+1
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
#plt.ylim(300, 1000)
#plt.ylim(1100,3200)
plt.grid()
plt.legend()
plt.title('Variando compensacion OVEN config desplazada OAM mas estadistica')
#%%
""" Agarro la desplazada compensada para ver si se ven bandas laterales de movimiento (no)"""
CompsOVEN = [5.9,4.3]
plt.figure()
ftrap = 22.1
DR1 = 435.8
DR2 = 444.2
#freqDR=435.8
freqDR=DR2
jj=0
plt.plot([2*f*1e-6 for f in CompDespIR1_Freqs[18][1:]], [c for c in CompDespCounts[18][1:]], '-o', markersize=2)
plt.xlabel('Frecuencia')
plt.ylabel('Counts')
plt.xlim(442, 446)
plt.axvline(freqDR)
plt.axvline(freqDR+0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.8,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-0.9,color='red',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR+1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.axvline(freqDR-1.65,color='green',linestyle='dashed',zorder=0,alpha=0.5)
plt.grid()
plt.legend()
plt.title('Variando compensacion OVEN config desplazada OAM mas estadistica')
#%%
"""
Ahora grafico el valor de los minimos en funcion de la descompensacion OVEN
"""
CompsOVENcol = [6.1, 5.9, 5.7, 5.5, 5.3, 5.1, 4.9, 4.7, 4.5]
CompsOVENdesp = [5.9, 5.7, 5.5, 5.3, 5.1, 4.9, 4.7, 4.5, 4.3, 4.1]
MinimosFluos_Col_DR1 = np.transpose(np.array(MinimosFluos_Col))[0]
MinimosFluos_Col_DR2 = np.transpose(np.array(MinimosFluos_Col))[1]
MinimosFluos_Desp_DR1 = np.transpose(np.array(MinimosFluos_Desp))[0]
MinimosFluos_Desp_DR2 = np.transpose(np.array(MinimosFluos_Desp))[1]
ErrorMinimosFluos_Col_DR1 = np.transpose(np.array(ErrorMinimosFluos_Col))[0]
ErrorMinimosFluos_Col_DR2 = np.transpose(np.array(ErrorMinimosFluos_Col))[1]
ErrorMinimosFluos_Desp_DR1 = np.transpose(np.array(ErrorMinimosFluos_Desp))[0]
ErrorMinimosFluos_Desp_DR2 = np.transpose(np.array(ErrorMinimosFluos_Desp))[1]
#DR1
plt.figure()
plt.errorbar(CompsOVENcol[1:],MinimosFluos_Col_DR1[1:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[1:]],fmt='o', capsize=2, markersize=12, label='Colineal')
plt.errorbar(CompsOVENdesp[:-2],MinimosFluos_Desp_DR1[:-2],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR2)[:-2]],fmt='o', capsize=2, markersize=12, label='Desplazada')
plt.legend()
plt.title('DR1')
plt.grid()
plt.xlabel('CompOVEN voltage')
plt.ylabel('DR1 counts - mean')
#DR2
plt.figure()
plt.errorbar(CompsOVENcol[1:],MinimosFluos_Col_DR2[1:],yerr=[2*i for i in list(ErrorMinimosFluos_Col_DR1)[1:]],fmt='o', capsize=2, markersize=12, label='Colineal')
plt.errorbar(CompsOVENdesp[:-2],MinimosFluos_Desp_DR2[:-2],yerr=[2*i for i in list(ErrorMinimosFluos_Desp_DR1)[:-2]],fmt='o', capsize=2, markersize=12, label='Desplazada')
plt.legend()
plt.title('DR2')
plt.grid()
plt.xlabel('CompOVEN voltage')
plt.ylabel('DR2 counts - mean')
\ 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