Skip to content

luhuhis/correlators_flow

Repository files navigation

Data publication for "The diffusion of heavy quarks in a quark-gluon plasma from lattice QCD"

This publication contains the raw measurement data and a set of python and bash scripts to reproduce all results and figures presented in "The diffusion of heavy quarks from lattice QCD" (PhD thesis by Luis Altenkort, 2025, Bielefeld University).

Installation

Install system dependencies (Ubuntu)

  • Bash shell >=5
  • uv (Python package and project manager)
  • LaTeX with packages amsmath, mathtools, type1cm and apt packages cm-super, dvipng for matplotlib tex rendering
  • gnuplot >=5
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install additional LaTeX packages (skip if already installed via texlive-full etc. or manually install the packages listed above)
sudo apt install texlive-latex-extra texlive-xetex cm-super dvipng

# Install gnuplot
sudo apt install gnuplot 

Extract data and code archives

Download the files contained in the data publication and extract them:

mkdir 2025_altenkort
cd 2025_altenkort  # Download the corresponding files into this folder
tar -xzf correlators_flow.tar.gz
tar -xzf AnalysisToolbox.tar.gz
tar -xzf input_data.tar.gz

For convenience, the final results and figures can also be extracted from output_data.tar.gz and figures.tar.gz, respectively.

Note that the bundled AnalysisToolbox is based on commit f9eee73d, with the only change being the addition of latqcdtools/pyproject.toml.

[Optional] A set of scripts for the convenient submission of multi-GPU multi-node gauge configuration generation jobs on large slurm clusters can be extracted from conf-production-scripts.tar.gz.

Make scripts executable

chmod -R +x ./correlators_flow

Setup environment

Define certain subdirectories as environment variables:

export BASEPATH_RAW_DATA=$(pwd)/input
export BASEPATH_WORK_DATA=$(pwd)/output_data
export BASEPATH_PLOT=$(pwd)/figures
export G_PERT_LO_DIR=${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO

Set the number of available CPU processors for parallelization (adjust accordingly):

export NPROC=20  

Note on output file formats

Files are either saved in plain text (.txt, .dat) or in numpy binary format (.npy). In many cases, the mean/median/std_deviation/etc. over all bootstrap samples is exported to plain text files, while the results for the underlying bootstrap samples are stored in numpy format.

The output file names often contain these identifiers:

  • <qcdtype> is either quenched_1.50Tc_zeuthenFlow or hisq_ms5_zeuthenFlow
  • <conftype> may be, for example: s144t36_b0754400 (meaning $N_s=144$, $N_\tau=36$, $\beta=7.544$), or s096t28_b0824900_m002022_m01011 (meaning $N_s=96$, $N_\tau=28$, $\beta=8.249$, $m_s/a=0.002022$, $m_l/a=0.01011$), ...
  • <corr> is either EE or BB
  • <T-in-MeV> is either 195, 220, 251, or 293

Correlator analysis

Switch to the top-level folder of the code repository:

cd correlators_flow

Resampling, interpolation, continuum extrapolation

Create figures of perturbative correlators

Create Figure 4.1 at ${BASEPATH_PLOT}/EE_QED_LPT.pdf:

uv run ./perturbative_corr/plot_QED_LPT.py --inputfolder ${BASEPATH_RAW_DATA} --outputfolder ${BASEPATH_PLOT}

Create Figure 4.3 at ${BASEPATH_PLOT}/pertLO/EE_pert_contvslatt_flow.pdf:

uv run ./perturbative_corr/plot_pert_correlators.py --Ntau 24 --inputfolder ${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO/ --outputfolder ${BASEPATH_PLOT}/pertLO

Create Figure 4.4 at ${BASEPATH_PLOT}/pertLO//pert_latt_comparison_EE_Nt30_<tau>.pdf with tau=5 and tau=10:

uv run ./perturbative_corr/plot_tree_level_imp.py --Nt 30 --corr EE --flowtime_file ${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO/flowtimes.dat --outputpath ${BASEPATH_PLOT}/pertLO/ --inputpath ${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO/ --tau 5
uv run ./perturbative_corr/plot_tree_level_imp.py --Nt 30 --corr EE --flowtime_file ${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO/flowtimes.dat --outputpath ${BASEPATH_PLOT}/pertLO/ --inputpath ${BASEPATH_RAW_DATA}/quenched_1.50Tc_zeuthenFlow/pert_LO/ --tau 10

Merge correlator measurement files

Merge individual correlator measurement text files (output from SIMULATeQCD) into a small number of larger numpy files (binary format). Metadata is saved to text files. This may take some time (up to multiple hours), mostly depending on file system speed (with slow HDDs it may take hours).

./correlator_analysis/double_extrapolation/example_usage/1_merge_data.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_RAW_DATA} ${BASEPATH_WORK_DATA}
./correlator_analysis/double_extrapolation/example_usage/1_merge_data.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_RAW_DATA} ${BASEPATH_WORK_DATA}
./correlator_analysis/double_extrapolation/example_usage/1_merge_data.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_RAW_DATA} ${BASEPATH_WORK_DATA} ${BASEPATH_RAW_DATA}/hisq_ms5_zeuthenFlow/reference_flowtimes

This creates the following files in $BASEPATH_WORK_DATA/<qcdtype>/<corr>/<conftype>/:

File Comment
flowtimes_<conftype>.dat flowtimes that were measured, corresponding to the data in the .files
n_datafiles_<conftype>.dat metadata (number of files per stream, MCMC trajectory number, etc.)
<corr>_imag_<conftype>_merged.npy merged raw data, imaginary part of correlator
<corr>_real_<conftype>_merged.npy merged raw data, real part of correlator
polyakov_imag_<conftype>_merged.npy merged raw data, imaginary part of polyakovloop
polyakov_real_<conftype>_merged.npy merged raw data, real part of polyakovloop

Bootstrap resampling of uncorrelated blocks

Reminder: The double-extrapolation of the correlator data as well as the spectral reconstruction fits are later performed on each individual bootstrap sample.

Load the merged data files, extract an equally spaced MCMC time series, then plot the time history of the Polyakov loop at a large flow time. Then bin configurations according to the integrated autocorrelation time, then perform bootstrap resampling of the uncorrelated blocks and save the samples to numpy files (binary format).

Note: this may take multiple hours.

./correlator_analysis/double_extrapolation/example_usage/2_reduce_data.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/2_reduce_data.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/2_reduce_data.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/<qcdtype>/<corr>/<conftype>/

File Comment
<corr>_<conftype>_samples.npy Bootstrap samples of correlator
<corr>_flow_cov_<conftype>.npy Flow time correlation matrix (based on bootstrap samples)
<corr>_<conftype>.dat Median correlator (useful for checking the data / plotting)
<corr>_err_<conftype>.dat Std dev of correlator (useful for checking the data / plotting)

and, in $BASEPATH_PLOT/<qcdtype>/<corr>/<conftype>/

File Comment
polyakovloop_MCtime.pdf Figure 5.1 and 6.1. Shows the MCMC time series of the polyakovloop at a large flow time.

Plot flow time dependency

Create Figure 5.3, Figure 5.13, and Figure 6.3:

./correlator_analysis/plotting/example_usage/plot_flow_dep.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}
./correlator_analysis/plotting/example_usage/plot_flow_dep.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}
./correlator_analysis/plotting/example_usage/plot_flow_dep.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

The figures can be found at:

${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/s080t20_b0703500/EE_s080t20_b0703500_flow_dep.pdf
${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/s080t20_b0703500/EE_s080t20_b0703500_flow_depzoom.pdf
${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/BB/s080t20_b0703500/BB_s080t20_b0703500_flow_dep.pdf
${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/BB/s080t20_b0703500/BB_s080t20_b0703500_flow_depzoom.pdf
${BASEPATH_PLOT}/hisq_ms5_zeuthenFlow/EE/s096t24_b0824900_m002022_m01011/EE_s096t24_b0824900_m002022_m01011_flow_dep.pdf
${BASEPATH_PLOT}/hisq_ms5_zeuthenFlow/EE/s096t24_b0824900_m002022_m01011/EE_s096t24_b0824900_m002022_m01011_flow_depzoom.pdf

Interpolation

Interpolate the correlator in Euclidean time and in flow time, such that a common set of normalized flow times is available across all lattices and temperatures.

./correlator_analysis/double_extrapolation/example_usage/3_spline_interpolate.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/3_spline_interpolate.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/3_spline_interpolate.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/<qcdtype>/<corr>/<conftype>/:

File Comment
<corr>_<conftype>_relflows.txt Normalized flow times $\sqrt{8_{\tau_F}}/\tau$
<corr>_<conftype>_interpolation_relflow_mean.npy Median of the interpolated correlator for the corresponding normalized flow times (binary format, npy)
<corr>_<conftype>_interpolation_relflow_samples.npy Interpolations of each individual bootstrap sample of the correlator for the corresponding normalized flow times (binary format, npy)

and, in $BASEPATH_PLOT/<qcdtype>/<corr>/<conftype>/:

File Comment
<corr>_interpolation_relflow.pdf Multi-page PDF containing plots of interpolation in Eucl. time at different normalized flow times.
<corr>_interpolation_relflow_combined.pdf Figure 5.5. Plot of interpolation in Eucl. time for two normalized flow times.

Continuum extrapolation

Take the continuum limit of the correlators using a fit on each sample

./correlator_analysis/double_extrapolation/example_usage/4_continuum_extr.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/4_continuum_extr.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/4_continuum_extr.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/<corr>/cont_extr/ and $BASEPATH_WORK_DATA/hisq_ms5_zeuthenFlow/<corr>/<T-in-MeV>/cont_extr/:

File Comment
<corr>_cont_relflows.dat Normalized flow times at which the continuum extrapolation was done
<corr>_cont_relflow.dat Median of continuum-extrapolated correlator at corresponding normalized flow times
<corr>_cont_relflow_err.dat Std dev of continuum-extrapolated correlator at corresponding normalized flow times
<corr>_cont_relflow_samples.npy Continuum extrapolations of the correlator on each individual bootstrap sample

This also creates the following files in ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/<corr>/ and ${BASEPATH_PLOT}/hisq_ms5_zeuthenFlow/<corr>/<T-in-MeV>:

File Comment
<corr>_cont_quality_relflow.pdf Figure 5.6, Figure 6.4, Figure A.1. This is a multipage PDF containing plots of continuum extrapolation of correlator for the corresponding normalized flow times.

Plot flow time correlations

Create Figure 5.7 at ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/s144t36_b0754400/EE_s144t36_b0754400_correlation.pdf:

uv run ./correlator_analysis/plotting/plot_flow_correlations.py --qcdtype quenched_1.50Tc_zeuthenFlow --corr EE --conftype s144t36_b0754400 --basepath ${BASEPATH_WORK_DATA} --outputfolder ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/ --nproc ${NPROC}

Plot lattice spacing effects

Create Figure 5.2 at ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/EE_latt_effects.pdf:

./correlator_analysis/plotting/example_usage/2_plot_lateffects.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

Optional: create the same figures for the 2+1-flavor cases at ${BASEPATH_PLOT}/hisq_ms5_zeuthenFlow/EE/T<T-in-MeV>/EE_latt_effects.pdf:

./correlator_analysis/plotting/example_usage/2_plot_lateffects.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

Flow-time-to-zero extrapolation of $G_E$

./correlator_analysis/double_extrapolation/example_usage/5_flowtime_extr.sh quenched_1.50Tc_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}
./correlator_analysis/double_extrapolation/example_usage/5_flowtime_extr.sh hisq_ms5_zeuthenFlow EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/EE/ and $BASEPATH_WORK_DATA/hisq_ms5_zeuthenFlow/EE/T<Temp-in-MeV>/:

File Comment
EE_flow_extr_relflow.npy Flow-time-to-zero extrapolated continuum EE correlator for each bootstrap sample
EE_flow_extr_relflow.txt Median and std dev of flow-time-to-zero extrapolated continuum EE correlator

and in $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/EE/ and $BASEPATH_PLOT/hisq_ms5_zeuthenFlow/EE/T<Temp-in-MeV>/

File Comment
EE_flow_extr_quality_relflow.pdf Figure 5.9a, Figure 6.5

Compare final quenched $G_E$ with multi-level results

This will create Figure 5.9b.

uv run ./multi-level/cont_extr_new.py --basepath ${BASEPATH_RAW_DATA}
uv run ./correlator_analysis/plotting/6_plot_finalcorr.py --outputfolder ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/EE/ --input_flow ${BASEPATH_WORK_DATA}/quenched_1.50Tc_zeuthenFlow/EE/EE_flow_extr_relflow.txt --input_multilvl ${BASEPATH_RAW_DATA}/multi-level_2015/EE_2015_new.txt

This creates the files $BASEPATH_RAW_DATA/multi-level_2015/EE_2015_new_2022.txt and $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/EE/EE_flowVSmultilvl_relflow.pdf (Figure 5.9b).

Renormalization of $G_B$

Coupling calculations

Perform the continuum extrapolation of the flow-scheme coupling measured on zero temperature lattices, and convert it from flow scheme to the MSBAR scheme coupling at one scale, then use perturbative 5-loop running to move to other relevant scales.

./correlator_analysis/double_extrapolation/BB_renormalization/example_usage/extrapolate_coupling.sh ${BASEPATH_RAW_DATA} ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} 6.40

This creates the following files in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/coupling/:

File Comment
g2_muF_cont_extr.txt Continuum-extrapolated flow scheme coupling $g^2$ as function of flow scale $\mu_F=1/\sqrt{8 \tau_F}$ in units of temperature T
g2_MSBAR_runFromMu_6.28.txt Continuum MS-BAR coupling $g^2$ as a function of MS-BAR scale $\mu$ in units of temperature T (matched at $\mu_F/T=2\pi$ and then perturbatively run)

and, in $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/coupling/:

File Comment
g2.pdf Figure 5.14b. Flow- and MSBAR-scheme couplings $g^2$ as a function of scale in temperature units.
g2_cont_extr.pdf Figure 5.14a. Flow-scheme coupling $g^2$ as a function of squared lattice spacing (= inverse $N_\tau^2$ at fixed temperature).

Carry out renormalization of $G_B$ by computing $Z_\text{match}$

./correlator_analysis/double_extrapolation/BB_renormalization/example_usage/compute_Z.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

This creates the following files in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/coupling/

File Comment
Z_match_ref6.28_UVLO_IRNLO.dat $Z_\text{match}$ as a function of scale, with $\bar{\mu}T/T=19.18, \bar{\mu}{\tau_F}/\mu_F=1$
Z_match_ref6.28_UVNLO_IRNLO.dat $Z_\text{match}$ as a function of scale, with $\bar{\mu}T/T=19.18, \bar{\mu}{\tau_F}/\mu_F=1.50$
Z_match_ref6.28_UVLO_IRLO.dat $Z_\text{match}$ as a function of scale, with $\bar{\mu}T/T=2\pi T, \bar{\mu}{\tau_F}/\mu_F=1$
Z_match_ref6.28_UVNLO_IRLO.dat $Z_\text{match}$ as a function of scale, with $\bar{\mu}T/T=2\pi T, \bar{\mu}{\tau_F}/\mu_F=1.50$

and, in $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/coupling/:

File Comment
Z_total.pdf Figure 5.15 (right). All considered versions of $Z_\text{match}$ as a function of flow scale.
Z_total_flowtime.pdf Figure 5.15 (left) All considered versions of $Z_\text{match}$ as a function of flow radius $1/(8 \tau_F) T$

Flow-time-to-zero extrapolation of renormalized $G_B$

./correlator_analysis/double_extrapolation/example_usage/5_flowtime_extr.sh quenched_1.50Tc_zeuthenFlow BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/BB/:

File Comment
BB_flow_extr_relflow_ref6.28_<scale-choices>.npy Flow-time-to-zero extrapolated continuum BB correlator for each bootstrap sample
BB_flow_extr_relflow_ref6.28_<scale-choices>.txt Median and std dev of flow-time-to-zero extrapolated continuum BB correlator

using the following scales choices:

File $\bar{\mu}_T/T$ $\bar{\mu}_{\tau_F}/mu_F$
BB_flow_extr_relflow_ref6.28_UVLO_IRLO.npy $2\pi$ 1
BB_flow_extr_relflow_ref6.28_UVLO_IRLO.txt $2\pi$ 1
BB_flow_extr_relflow_ref6.28_UVLO_IRNLO.npy 19.18 1
BB_flow_extr_relflow_ref6.28_UVLO_IRNLO.txt 19.18 1
BB_flow_extr_relflow_ref6.28_UVNLO_IRLO.npy $2\pi$ 1.50
BB_flow_extr_relflow_ref6.28_UVNLO_IRLO.txt $2\pi$ 1.50
BB_flow_extr_relflow_ref6.28_UVNLO_IRNLO.npy 19.18 1.50
BB_flow_extr_relflow_ref6.28_UVNLO_IRNLO.txt 19.18 1.50

and, in $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/BB/:

File Comment
BB_flow_extr_quality_no_extr.pdf Figures 5.16a, A.2. Bare continuum BB correlator as a function of flow time.
BB_flow_extr_quality_relflow.pdf Figure 5.16b. Renormalized continuum BB correlator as a function of flow time with flow time extrapolation.

Compare final $G_E$ and $G_B$

Create Figure 5.17 at $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/EEvsBB.pdf

uv run ./correlator_analysis/plotting/plot_EEvsBB.py --inputfolder ${BASEPATH_WORK_DATA}/quenched_1.50Tc_zeuthenFlow/ --outputfolder ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/

Compare correlator at fixed normalized flow times

In the 2+1-flavor case, this is done after the spectral reconstruction (see below) since we use some of the results for comparison.

Quenched

 ./correlator_analysis/relative_flow/example_usage/Nf0.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

This creates the following files in ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/<corr>/:

File Comment
<corr>_relflow_quenched_0.25.pdf Figure 5.4 (left)
<corr>_relflow_quenched_0.30.pdf Figure 5.4 (right)

and, in ${BASEPATH_WORK_DATA}/quenched_1.50Tc_zeuthenFlow/EE/<conftype>/relflow/:

File Comment
<corr>_relflow_0.25.dat Correlator at normalized flow time 0.25
<corr>_relflow_0.30.dat Correlator at normalized flow time 0.30

Spectral function analysis

Make sure you are still in the top-level folder of the code repository correlators_flow.

Perform spectral function reconstruction

Note: this takes a lot of computing time. The output files can alternatively be obtained from output_data.tar.gz.

./spf_reconstruction/model_fitting/example_usage/spf_reconstruct.sh quenched_1.50Tc_zeuthenFlow EE  ${BASEPATH_WORK_DATA} NO ${NPROC}
./spf_reconstruction/model_fitting/example_usage/spf_reconstruct.sh quenched_1.50Tc_zeuthenFlow BB  ${BASEPATH_WORK_DATA} NO ${NPROC}
./spf_reconstruction/model_fitting/example_usage/spf_reconstruct.sh hisq_ms5_zeuthenFlow EE  ${BASEPATH_WORK_DATA} NO ${NPROC}

This creates the following files in $BASEPATH_WORK_DATA/<qcdtype>/<corr>/spf/<model>_<rho-UV-order>_Nf<nf>_T<T-in-MeV>_<min_scale>_<running-scale-coefficient>_tauTgtr0.24_<suffix>

File Comment
corrfit.dat Median final correlator and fitted model correlator
params_samples.npy Model spectral function fit parameters for each bootstrap sample, as well as chisq/dof
params.dat Median spectral function fit parameters and 34th percentiles
phIUV.npy UV part of fitted model spectral function as function of $\omega/T$ (numpy format)
samples.npy Copy of the input correlator bootstrap samples but multiplied by $G_\text{norm}$ (= actual fit input)
spffit.npy Median spectral function with left/right 34th percentiles as function of $\omega/T$

Sketch spectral function models and reconstruction process

Create Figure 5.10 at $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/coupling/UV_spf_EE_quenched_1.5Tc.pdf.

./spf_reconstruction/model_fitting/example_usage/EE_UV.sh ${BASEPATH_WORK_DATA}
./spf_reconstruction/plot_fits/example_usage/plot_g2.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

Create Figure 5.11a and Figure 5.11b at $BASEPATH_PLOT/model_corrs.pdf and $BASEPATH_PLOT/integrand.pdf, respectively:

uv run ./spf_reconstruction/plotting/plot_integrand.py --outputpath ${BASEPATH_PLOT} --Nf 0 --min_scale eff --T_in_GeV 0.472 --omega_prefactor "1" --order LO --corr EE --mu_IR_by_T 1

Plot spectral reconstruction results

Quenched case

(Note that for the color-magnetic case there are two script calls.)

./spf_reconstruction/plot_fits/example_usage/plot_fits_quenched.sh EE ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} yes
./spf_reconstruction/plot_fits/example_usage/plot_fits_quenched.sh BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} yes
./spf_reconstruction/plot_fits/example_usage/plot_fits_quenched.sh BB ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} no

This creates the following files in $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/<corr>/

File Comment
<corr>_corrfit_quenched_1.5Tc.pdf Figure 5.12a, Figure 5.18b
<corr>_spf_quenched_1.5Tc.pdf Figure 5.12b, Figure 5.18a
<corr>_kappa_quenched_1.5Tc.pdf Figure 5.12c, Figure 5.19a

and, in $BASEPATH_WORK_DATA/quenched_1.50Tc_zeuthenFlow/<corr>:

File Comment
<corr>_kappa_quenched_1.5Tc.txt Final $\kappa$ result

2+1-flavor case

./spf_reconstruction/plot_fits/example_usage/plot_fits_hisq.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

This creates the following files in $BASEPATH_PLOT/hisq_ms5_zeuthenFlow/EE/T<T-in-MeV>/

File Comment
EE_corrfit_T<T-in-MeV>.pdf Figure 6.7
EE_spf_T<T-in-MeV>.pdf Figure 6.8
EE_kappa_T<T-in-MeV>.pdf Figure 6.9

and, in $BASEPATH_WORK_DATA/hisq_ms5_zeuthenFlow/EE/<T-in-MeV>/:

File Comment
EE_kappa_T<T-in-MeV>.txt Final $\kappa$ result

Compare correlator at fixed normalized flow times

This is done after the spectral function analysis since we use some of the results for comparison.

2+1-flavor

./correlator_analysis/relative_flow/example_usage/Nf3TemperatureComparison_Paper.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT}

This creates the following files in $BASEPATH_PLOT/hisq_ms5_zeuthenFlow/EE/:

File Comment
EE_relflow_hisq_0.25.pdf Figure 6.2
EE_relflow_hisq_0.30.pdf Figure 6.2
EE_relflow_hisq_final.pdf Figure 6.6

and, in $BASEPATH_WORK_DATA/hisq_ms5_zeuthenFlow/EE/<conftype>/relflow/:

File Comment
EE_relflow_0.25.dat EE correlator at normalized flow time 0.25
EE_relflow_0.30.dat EE correlator at normalized flow time 0.30

Comparison to literature

Make sure you are still in the top-level folder of the code repository correlators_flow.

Create plots that compare the results with existing literature. Note: this explicitly depends on the previous call to plot_fits_quenched.sh and plot_fits_hisq.sh since it reads from their output text files.

./spf_reconstruction/plot_fits/example_usage/plot_final_kappas.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} EE
./spf_reconstruction/plot_fits/example_usage/plot_final_kappas.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} BB
./spf_reconstruction/plot_fits/example_usage/plot_final_kappas.sh ${BASEPATH_WORK_DATA} ${BASEPATH_PLOT} hisq_thesis

This creates the following files:

Folder File Comment
${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/<corr>/ kappa_<corr>_quenched_literature.pdf Figure 5.12d, Figure 5.19b
${BASEPATH_PLOT}/hisq_ms5_zeuthenFlow/EE/ kappa_hisq_thesis.pdf Figure 6.10

Plot comparison with literature for $2\pi TD$

Create Figure 7.1 at ${BASEPATH_PLOT}/2piTD.pdf

uv run ./spf_reconstruction/plotting/plot_2piTD.py --outputfolder ${BASEPATH_PLOT}

Plot fit to $g^2$ and $g^4$

Create Figure 7.2 at $BASEPATH_PLOT/quenched_1.50Tc_zeuthenFlow/compare_kappa_g2.pdf

uv run ./spf_reconstruction/plot_fits/publication_specific/2024-BB-paper/fit_kappa_to_g2_g4.py --outputpath ${BASEPATH_PLOT}/quenched_1.50Tc_zeuthenFlow/