cpp/angle_dependence.py
2024-12-15 18:34:05 +01:00

62 lines
1.5 KiB
Python

import pathlib
import re
import numpy as np
from matplotlib import pyplot as plt
from python.helpers import read_parameter_file
angles = []
tau_cc = []
tau_ss = []
tau2 = []
tevo = [5e-6, 10e-6]
for fit_files in pathlib.Path('.').glob(f'IsotropicAngle/angle=*/Delta/tau=*/ste_fit_*.dat'):
folder = fit_files.parent
file_base = fit_files.stem.replace('ste_fit_', '')
parameter = read_parameter_file(folder / ('ste_' + file_base + '_parameter.txt'))
angles.append(parameter['angle'])
with fit_files.open('r') as f:
# tau of F2 is hidden in the second header line
for _ in range(2):
line = f.readline()
tau2.append(float(re.search('tau=(.+?)\s', line).group(1)))
fit_values = np.loadtxt(fit_files)
x = fit_values[:, 0]
# get indexes for given evolution times
nearest_idx = [np.searchsorted(x, tt) for tt in tevo]
tau_cc.append(fit_values[nearest_idx, 1])
tau_ss.append(fit_values[nearest_idx, 4])
angles = np.array(angles)
tau_cc = np.array(tau_cc)
tau_ss = np.array(tau_ss)
tau2 = np.array(tau2)
sortidx = np.argsort(angles)
angles = angles[sortidx]
tau_cc = tau_cc[sortidx]
tau_ss = tau_ss[sortidx]
tau2 = tau2[sortidx]
plt.semilogy(angles, tau_cc, '-.')
plt.semilogy(angles, tau_ss, '--')
plt.semilogy(angles, tau2)
np.savetxt(
'tau_angles.dat',
np.c_[angles, tau_cc, tau_ss, tau2],
header=f"Angle dependence of correlation times\nfor evolution times {tevo}\nangle->tau_cc->tauss->tau2"
)
plt.show()