diff --git a/docs/source/theory/intro.rst b/docs/source/theory/intro.rst index 6e37d3280..7ed214fd4 100644 --- a/docs/source/theory/intro.rst +++ b/docs/source/theory/intro.rst @@ -180,6 +180,12 @@ normalization, the following are available in ``yadism``: y_{+} &= 1.0 \\ y_{L} &= \frac{y^2}{2 (y^2/2 + (1-y) - (M_{h} x y/ Q)^2)} +- ``XSFPFCC`` for the FPF projection: + + .. math:: + + N = \frac{G_F^2}{8 \pi x ( 1 + Q^2 / M_W^2 )^2} + Heavyness --------- diff --git a/src/yadism/esf/exs.py b/src/yadism/esf/exs.py index d48a9d33b..081be269d 100644 --- a/src/yadism/esf/exs.py +++ b/src/yadism/esf/exs.py @@ -67,6 +67,10 @@ def xs_coeffs(kind, y, x=None, Q2=None, params=None): ym = 0 yp = 1.0 yL = y**2 / (2 * (y**2 / 2 + (1 - y) - (mn * x * y) ** 2 / Q2)) + elif kind == "XSFPFCC": + INV_GEV_TO_PB = GEV_CM2_CONV / 100.0 # Pb + norm = (INV_GEV_TO_PB * params["GF"] ** 2) / (4.0 * np.pi) + norm *= 1.0 / (2.0 * x * (1.0 + Q2 / params["M2W"])**2) else: mn = np.sqrt(params["M2target"]) m2w = params["M2W"] diff --git a/tests/yadism/esf/test_exs.py b/tests/yadism/esf/test_exs.py index cb00081d3..e3faac0c8 100644 --- a/tests/yadism/esf/test_exs.py +++ b/tests/yadism/esf/test_exs.py @@ -51,6 +51,15 @@ def test_xs_coeffs(): assert fw[0] == 1.0 assert fw[2] == 0.0 + xsfpfcc = xs_coeffs( + "XSFPFCC", + x=0.5, + Q2=1.0, + y=1.0, + params=dict(projectilePID=1, M2target=0.0, M2W=1.0, GF=1.0), + ) + assert xsfpfcc[0] == 3.893793e8 / (32.0 * 0.5 * np.pi) + nutev = xs_coeffs( "XSNUTEVCC", x=0.5,