Skip to content
MotionalOptic_TransitoryEffect.py 3.15 KiB
Newer Older
import h5py
import matplotlib.pyplot as plt
import numpy as np
import sys
import re
import ast
from scipy.optimize import curve_fit
import os
from scipy import interpolate

#Mediciones barriendo angulo del TISA y viendo kicking de resonancias oscuras

#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20220106_CPT_DosLaseres_v08_TISA_DR\Data

os.chdir('/home/nico/Documents/artiq_experiments/analisis/plots/20230510_MotionalSpectrum/DataOpticTransitory/')


MOTIONAL_FILES = """
000012033-AD9910RAM
000012032-AD9910RAM
000012031-AD9910RAM
000012030-AD9910RAM
000012025-AD9910RAM
000012026-AD9910RAM
000012027-AD9910RAM
000012028-AD9910RAM
000012029-AD9910RAM
000012034-AD9910RAM
"""


def SeeKeys(files):
    for i, fname in enumerate(files.split()):
        data = h5py.File(fname+'.h5', 'r') # Leo el h5: Recordar que nuestros datos estan en 'datasets'
        print(fname)
        print(list(data['datasets'].keys()))

print(SeeKeys(MOTIONAL_FILES))

#%%
#carpeta pc nico labo escritorio:
#C:\Users\Usuario\Documents\artiq\artiq_experiments\analisis\plots\20211101_CPT_DosLaseres_v03\Data

Counts = []
RealFreqs = []
UV_amp_vec = []

for i, fname in enumerate(MOTIONAL_FILES.split()):
    print(str(i) + ' - ' + fname)
    data = h5py.File(fname+'.h5', 'r')
    RealFreqs.append(np.array(data['datasets']['real_freq']))
    Counts.append(np.array(data['datasets']['counts']))
    UV_amp_vec.append(np.array(data['datasets']['UV_amp']))


Potencias = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2, 92.7, 108, 124, 134, 154, 167]

PotenciasUsadas = [7.4, 11.4, 16.8, 23.2, 31.1, 40.7, 51.5, 64, 78.2]
#%%

"""
Ploteo una curva para buscar su minimo
"""

jvec = [0,1,2]

plt.figure()
i = 0

kmin = 106

for j in jvec:
    plt.errorbar([1*f*1e-3 for f in RealFreqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label=f"Pot: {Potencias[j]} uW")
    plt.plot([1*f*1e-3 for f in RealFreqs[j]][kmin], Counts[j][kmin], 'o', markersize=15)
    i = i + 1
plt.xlabel('Frecuencia (kHz)')
plt.ylabel('counts')
#plt.xlim(782,787)
#plt.ylim(2000,5000)
plt.grid()
plt.legend(loc='upper left')





#%%

"""
Ploteo las curvas de referencia 
"""

jvec = [0, 1, 2, 3, 8]



plt.figure()
i = 0
for j in jvec:
    plt.errorbar([1*f*1e-3 for f in RealFreqs[j]], Counts[j], yerr=np.sqrt(Counts[j]), fmt='o', capsize=2, markersize=2, label=f"Pot: {Potencias[j]} uW")
    i = i + 1
plt.xlabel('Frecuencia (kHz)')
plt.ylabel('counts')
#plt.xlim(782,787)
plt.ylim(2000,5000)
plt.grid()
plt.legend(loc='upper left')


#%%
"""
Busco el cociente entre el minimo y el maximo
"""
kmins = [106, 106, 106, 106, 110, 110, 110, 112, 108]


minabs = np.min(Counts[2])

MinimosFluos = []
MaximosFluos = []
CocientesFluos = []
ErrorCocientesFluos = []

for m in range(9):
    mini = Counts[m][kmins[m]]-minabs
    maxi = Counts[m][0]-minabs
    MinimosFluos.append(mini)
    MaximosFluos.append(maxi)
    CocientesFluos.append(mini/maxi)
    ErrorCocientesFluos.append((mini/maxi)*(np.sqrt(mini)/mini + np.sqrt(maxi)/maxi))
    
    
plt.figure()
plt.errorbar(PotenciasUsadas, CocientesFluos, yerr=ErrorCocientesFluos, fmt='o', capsize=5, markersize=15)
plt.axhline(1)
plt.xlabel('Potencia IR (uW)')