Commit 6e80710b authored by Vlatko, Carolina's avatar Vlatko, Carolina

caro

parent bad31e20
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 23 14:52:32 2025
@author: carolina
"""
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
def bin_time_arrivals(arrival_times, tau):
"""
Binea los tiempos de llegada de los fotones según el periodo tau.
Parameters:
arrival_times (numpy array): Vector con los tiempos de llegada de los fotones.
tau (float): Periodo de bineado.
Returns:
numpy array: Vector con los tiempos bienados.
"""
return arrival_times - tau * (arrival_times // tau)
def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D
def sinusoidal(x, A, C, D):
return A * np.sin(2*np.pi*freqrf * x + C) + D
def lorentzian(x,A,b,C,det,fase,cte):
det = -10e6*2*np.pi
return A*((C**2)/(C**2 + (det-b*2*np.pi*freqrf*np.sin(2*np.pi*freqrf*x+fase))**2))+cte
def dropnan(a):
return a[~np.isnan(a)]
path = "/home/carolina/Documents/artiq_experiments/analisis/plots/20250421_fluorescencorrelation/"
freqrf = 7262766.1
taurf = 1/freqrf
meds = [20889, 20890, 20891, 20892, 20893, 20894, 20895, 20896, 20897, 20898, 20899, 20900, 20901, 20903, 20904 , 20905 , 20906, 20907, 20908, 20909, 20910, 20911]
Vdouble = [0, 10, 20, 40, 50, 50, 55, 55, 55, 60, 65, 70, 75, 80, 85, 90,100, 110, 130, 150, 170, 190]
y_mean_values = []
y_max_of_norm_values = []
y_max = []
params_meds = []
Vdouble_fitted = []
amp_fitted = []
amp_fitted_err = []
offset_fitted = []
meds = [meds[-1]]
for i, med in enumerate(meds):
#print(i)
filename = f"0000{med}-FluorescenceCorrelation.h5"
data = h5py.File(path + filename, 'r')
x_data = dropnan(np.array(data['datasets']['x_data']))
y_data = dropnan(np.array(data['datasets']['y_data']))
y_data_2 = dropnan(np.array(data['datasets']['y_data_2']))
"""
Grafico temporal replicado 3 veces a la frecuencia dada
"""
plt.figure(1, figsize=(8, 4))
try:
params, pcov = curve_fit(sinusoidal, x_data, y_data)
perr = np.sqrt(np.diag(pcov))
plt.plot(x_data, sinusoidal(x_data, *params), linestyle='--', label="Ajuste sinusoidal", color='black',linewidth=3,zorder=2)
# params, _ = curve_fit(lorentzian, x_data, y_data)
# plt.plot(x_data, lorentzian(x_data, *params), linestyle='--', label="Ajuste completo", color='black',linewidth=3,zorder=2)
Vdouble_fitted.append(Vdouble[i])
amp_fitted.append(params[0])
amp_fitted_err.append(perr[0])
offset_fitted.append(params[2])
except:
pass
plt.plot(x_data, y_data)
plt.xlabel("Tiempo bineado (repetido 3 veces)")
plt.show()
y_mean_values.append(np.mean(y_data_2))
y_max_of_norm_values.append(np.max(y_data))
y_max.append(np.max(y_data_2))
plt.figure(2), plt.clf()
plt.errorbar(Vdouble_fitted, np.abs(amp_fitted),fmt = '.', yerr=amp_fitted_err)
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