Domain: Physics — High-energy particle physics

Problem:
Compute, in natural units, the single number
\[
\Re V(r_{0},\Theta_{0};v_{0},T_{0})
\]
for a heavy quarkonium moving in a deconfined medium, where \(\Re V\) is the real part of the medium–modified retarded Cornell potential obtained by Lorentz–boosting the Cornell interaction, filtering it with the static hard–thermal–loop dielectric permittivity (retarded; Landau–cut contribution only), and performing the inverse Fourier integral in spherical momentum coordinates with the Bessel kernel; use post–azimuthal reduction and no closed forms. Fix the kinematics and inputs to
\[
r_{0}=0.60~\mathrm{fm},\qquad \Theta_{0}=\frac{\pi}{4},\qquad v_{0}=0.70,\qquad
T_{0}=2\,T_{c},\qquad T_{c}=0.155~\mathrm{GeV},
\]
\[
N_{c}=3,\quad N_{f}=3,\quad \sigma=0.18~\mathrm{GeV}^{2},\quad \alpha_{s}\ \text{from one–loop running at}\ \Lambda=2\pi T_{0},\ \Lambda_{\mathrm{MS}}=0.176~\mathrm{GeV},
\]
and Debye mass \(m_{D}\) from leading–order HTL. Evaluate the exact integral numerically using a geometric grid for the momentum magnitude
\[
p \in [p_{\min},p_{\max}],\qquad p_{\min}=10^{-4}T_{0},\qquad p_{\max}=40\,T_{0},
\]
and Gauss–Legendre nodes for the polar angle \(\mu=\cos\theta\). Double all relevant grid resolutions \(N_{p}\) and \(N_{\mu}\) (keeping \(p_{\min},p_{\max}\) fixed) until the fractional change of \(\Re V\) is below \(10^{-3}\). Convert units once at the end using \(1~\mathrm{fm} = 5.067731~\mathrm{GeV}^{-1}\), and return only the final value of \(\Re V(r_{0},\Theta_{0};v_{0},T_{0})\) in \(\mathrm{GeV}\) as a single number with three significant figures.

Hint 1: Use the kernel
\[
\Phi(p,\mu)=J_{0}\!\bigl(p\,r\,\sqrt{1-\mu^{2}}\sin\Theta\bigr)\cos\!\bigl(p\,r\,\mu\cos\Theta\bigr),
\]
computing \(r\sin\Theta\) and \(r\cos\Theta\) separately after converting \(r\) to \(\mathrm{GeV}^{-1}\).

Hint 2: Evaluate \(\alpha_{s}\) from one–loop running at \(\Lambda=2\pi T\) and compute
\[
m_{D}^{2}=g^{2}T^{2}\Bigl(\tfrac{N_{c}}{3}+\tfrac{N_{f}}{6}\Bigr);
\]
then form
\[
\mathcal{N}(p,\mu)=\frac{\alpha_{s}\bigl(m_{D}^{2}+p^{2}\Phi(p,\mu)\bigr)}{1-v^{2}\mu^{2}}
-\frac{2\sigma\bigl(1-\Phi(p,\mu)\bigr)}{\bigl(1-v^{2}\mu^{2}\bigr)^{2}}.
\]

Hint 3: Use the reduction rule
\[
\Re V(r,\Theta;v,T)=
-\frac{1}{\pi}
\int_{p_{\min}}^{p_{\max}} dp \int_{-1}^{1} d\mu\,
\frac{\mathcal{N}(p,\mu)}{p^{2}+m_{D}^{2}},
\]
noting that the \(p\)–integration uses only \(dp\) with no additional factor of \(p\).

Answer: \( 0.209\)

Solution code:
import numpy as np
from scipy.special import j0
from numpy.polynomial.legendre import leggauss

def calculate_potential():
    # Parameters
    r_sin = 2.1501  # GeV^-1
    r_cos = 2.1501  # GeV^-1
    v2 = 0.49
    alpha_s = 0.2905
    mD2 = 0.5265  # GeV^2
    sigma = 0.18   # GeV^2
    p_min = 3.1e-5 # GeV
    p_max = 12.4   # GeV
    
    def integrate(Np, Nmu):
        # Geometric grid for p
        p_grid = np.geomspace(p_min, p_max, Np)
        
        # Gauss-Legendre quadrature for mu
        mu_nodes, mu_weights = leggauss(Nmu)
        
        result = 0.0
        
        # Midpoint rule on geometric grid
        for i in range(Np-1):
            p_mid = np.sqrt(p_grid[i] * p_grid[i+1])
            dp = p_grid[i+1] - p_grid[i]
            
            # Integrate over mu
            for mu, w_mu in zip(mu_nodes, mu_weights):
                # Compute Phi
                sqrt_term = np.sqrt(1 - mu**2)
                Phi = j0(p_mid * r_sin * sqrt_term) * np.cos(p_mid * r_cos * mu)
                
                # Compute N
                denom = 1 - v2 * mu**2
                N = (alpha_s * (mD2 + p_mid**2 * Phi) / denom - 
                     2 * sigma * (1 - Phi) / denom**2)
                
                # Integrand
                integrand = N / (p_mid**2 + mD2)
                
                result += dp * w_mu * integrand
        
        return -result / np.pi
    
    # Adaptive refinement
    Np, Nmu = 100, 50
    V_old = integrate(Np, Nmu)
    
    # Double resolution until convergence
    for _ in range(10):
        Np *= 2
        Nmu *= 2
        V_new = integrate(Np, Nmu)
        
        if abs(V_new - V_old) / abs(V_old) < 1e-3:
            return V_new
        
        V_old = V_new
    
    return V_new
R = calculate_potential()
print(R)