{ "cells": [ { "cell_type": "markdown", "id": "0", "metadata": {}, "source": [ "# 2→2 scattering in `feynlag`: from Mandelstam invariants to a forward–backward asymmetry\n", "\n", "*For a reader who has been through the [Particle Decays Tutorial](Particle_Decays_Tutorial.ipynb)\n", "and knows what a Dirac trace and a spin sum are, but has never seen a **cross section**\n", "derived — only a decay width.*\n", "\n", "Every decay example in this library computes one particle going to two: a width\n", "$\\Gamma$. This notebook computes the other basic collider observable — two particles\n", "**scattering** into two, a cross section $\\sigma$ — starting from\n", "$e^+e^-\\to\\mu^+\\mu^-$ through a photon (textbook QED), and ending at\n", "$e^+e^-\\to\\mu^+\\mu^-$ through the **Z alone**, where something genuinely new happens:\n", "a $\\gamma_5$ (ε-tensor) term that is exactly zero in every decay this library has ever\n", "computed turns out to be **non-zero** here. That term is the physical\n", "forward–backward asymmetry $A_{FB}$ — a real, measured LEP observable — and getting it\n", "requires new algebra (`feynlag.pheno.epsilon`) beyond anything the decay engine needed.\n", "\n", "This is Tiers 1–2 of `docs/manual/scattering_roadmap.md` (chapter 17)." ] }, { "cell_type": "code", "execution_count": null, "id": "1", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 28 (\" '003DA5',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 29 (\" 'C0392B',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 30 (\" '1A6B3A',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 31 (\" 'FFBE00',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 32 (\" '3F6FD1',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 33 (\" '8E44AD',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 34 (\" 'E67E22',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 35 (\" '17A589',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 36 (\" '2C3E50',\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Missing colon in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 37 (\" 'CB4335'])\")\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Bad value in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 21 ('axes.edgecolor : #4A4A6A'): Key axes.edgecolor: '' does not look like a color arg\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Bad value in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 27 (\"axes.prop_cycle : cycler('color', [\"): Key axes.prop_cycle: \"cycler('color', [\" is not a valid cycler construction: Could not parse \"cycler('color', [\": '[' was never closed (, line 1)\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "Bad value in file PosixPath('/home/moises/.config/matplotlib/stylelib/ifunam.mplstyle'), line 95 ('patch.edgecolor : face'): Key patch.edgecolor: 'face' does not look like a color arg\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import sympy as sp\n", "\n", "from feynlag import (\n", " Lagrangian, Model, WeylFermion, electroweak_scaffold,\n", " fermion_gauge_current, to_physical_basis,\n", ")\n", "from feynlag.pheno import (\n", " ExternalState, TwoToTwoKinematics, collect_decay_vertices, cross_section,\n", " differential_cross_section, ffv_s_channel_squared, forward_backward_asymmetry,\n", ")\n", "from feynlag.pheno.epsilon import (\n", " epsilon_pair_tensor, epsilon_product_sign, gamma5_trace_coefficient,\n", " gram_determinant, levi_civita_array,\n", ")\n", "\n", "sp.init_printing()" ] }, { "cell_type": "markdown", "id": "2", "metadata": {}, "source": [ "## 1. Mandelstam invariants, by hand\n", "\n", "A $1(k_1)+2(k_2)\\to3(k_3)+4(k_4)$ process has four external momenta and four-momentum\n", "conservation $k_1+k_2=k_3+k_4$, leaving **two** independent kinematic variables (plus\n", "the overall energy scale). The traditional choice is\n", "\n", "$$s=(k_1+k_2)^2,\\qquad t=(k_1-k_3)^2,\\qquad u=(k_1-k_4)^2,$$\n", "\n", "with the identity $s+t+u=\\sum_i m_i^2$ — so only two of the three are independent.\n", "`TwoToTwoKinematics` takes `(s, t)` as the two *primary* symbols and makes `u` a\n", "**derived property**, never a free symbol: momentum conservation then holds by\n", "construction, not by a separate check the caller has to remember to run.\n", "\n", "Why `(s,t)` and not the more visual `(s,\\cos\\theta)`? Because the `s,t,u`\n", "parametrization is *linear* — the on-shell dot-product table below has no square\n", "roots in it — while $\\cos\\theta$ drags $\\sqrt{\\lambda(s,m_i^2,m_j^2)}$ (the Källén\n", "function) into every entry, and hence into every Dirac trace downstream. Angles are\n", "recovered at the very end via `cos_theta()`/`t_of_cos()`." ] }, { "cell_type": "code", "execution_count": null, "id": "3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "u = m1^2+m2^2+m3^2+m4^2-s-t, derived:\n" ] }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle m_{1}^{2} + m_{2}^{2} + m_{3}^{2} + m_{4}^{2} - s - t$" ], "text/plain": [ " 2 2 2 2 \n", "m₁ + m₂ + m₃ + m₄ - s - t" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "k4.k1 - (k1+k2-k3).k1 simplifies to 0: True\n" ] } ], "source": [ "m1, m2, m3, m4 = sp.symbols('m1 m2 m3 m4', positive=True)\n", "kin = TwoToTwoKinematics(m1, m2, m3, m4)\n", "\n", "print(\"u = m1^2+m2^2+m3^2+m4^2-s-t, derived:\")\n", "display(kin.u)\n", "\n", "# momentum conservation as a *dot-table* identity, k4 = k1+k2-k3\n", "lhs = kin.dot(kin.k4, kin.k1)\n", "rhs = kin.dot(kin.k1, kin.k1) + kin.dot(kin.k2, kin.k1) - kin.dot(kin.k3, kin.k1)\n", "print(\"k4.k1 - (k1+k2-k3).k1 simplifies to 0:\", sp.simplify(sp.expand(lhs - rhs)) == 0)" ] }, { "cell_type": "markdown", "id": "4", "metadata": {}, "source": [ "The flux factor and the $d\\sigma/dt$, $d\\sigma/d\\cos\\theta$ conversion factors follow\n", "from the same two-body kinematics as a decay's phase space — `TwoToTwoKinematics`\n", "just adds the *initial*-state flux on top of the final-state phase space a decay\n", "already has." ] }, { "cell_type": "code", "execution_count": null, "id": "5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "flux factor 1/(2*sqrt(lambda(s,m1^2,m2^2))):\n" ] }, { "data": { "image/png": "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", "text/latex": [ "$\\displaystyle \\frac{1}{2 \\sqrt{m_{1}^{4} - 2 m_{1}^{2} m_{2}^{2} - 2 m_{1}^{2} s + m_{2}^{4} - 2 m_{2}^{2} s + s^{2}}}$" ], "text/plain": [ " 1 \n", "─────────────────────────────────────────────────────\n", " ________________________________________________\n", " ╱ 4 2 2 2 4 2 2 \n", "2⋅╲╱ m₁ - 2⋅m₁ ⋅m₂ - 2⋅m₁ ⋅s + m₂ - 2⋅m₂ ⋅s + s " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"flux factor 1/(2*sqrt(lambda(s,m1^2,m2^2))):\")\n", "display(kin.flux_factor())" ] }, { "cell_type": "markdown", "id": "6", "metadata": {}, "source": [ "## 2. The QED benchmark: $e^+e^-\\to\\mu^+\\mu^-$ through one photon (Tier 1)\n", "\n", "`feynlag.pheno.diagrams` builds the amplitude explicitly — open fermion\n", "`SpinorChain`s joined by a `BosonPropagator` inside a `Diagram` — rather than writing\n", "down an already-squared closed form the way the 1→2 decay engine does. That is what\n", "makes attaching a *propagator*, and eventually a *second diagram*, possible at all.\n", "`ffv_s_channel_squared` is the worked assembler for one fermion pair annihilating\n", "into another through one s-channel vector." ] }, { "cell_type": "code", "execution_count": null, "id": "7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "matches the textbook closed form: True\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "matches Peskin & Schroeder closed form: True\n" ] } ], "source": [ "m, e = sp.symbols('m e', positive=True)\n", "kin_qed = TwoToTwoKinematics(0, 0, m, m)\n", "m2_qed = ffv_s_channel_squared(e, e, e, e, kin_qed, mediator_mass=0)\n", "\n", "# display-only symbols for the closed-form check -- note kin.t is `real=True`,\n", "# not `positive=True` (it's negative throughout the physical region), so this\n", "# must match that exactly or the substitution below silently fails to bite.\n", "s_sym, t_sym = sp.Symbol('s', positive=True), sp.Symbol('t', real=True)\n", "m2_display = m2_qed.subs(kin_qed.s, s_sym).subs(kin_qed.t, t_sym)\n", "u = 2 * m**2 - s_sym - t_sym\n", "textbook = 8 * e**4 / s_sym**2 * ((t_sym - m**2)**2 + (u - m**2)**2 + 2 * m**2 * s_sym)\n", "print(\"matches the textbook closed form:\", sp.simplify(sp.expand(m2_display - textbook)) == 0)\n", "\n", "# cross_section integrates over kin_qed.t itself -- feed it the UNsubstituted\n", "# m2_qed, not the display version above (whose kin_qed.t is already gone).\n", "electron = ExternalState('e', 0, sp.Rational(1, 2))\n", "sigma_qed = sp.simplify(cross_section(m2_qed, kin_qed, (electron, electron)))\n", "beta = sp.sqrt(1 - 4 * m**2 / kin_qed.s)\n", "alpha = e**2 / (4 * sp.pi)\n", "peskin = (4 * sp.pi * alpha**2 / (3 * kin_qed.s)) * beta * (3 - beta**2) / 2\n", "print(\"matches Peskin & Schroeder closed form:\", sp.simplify(sp.expand(sigma_qed - peskin)) == 0)" ] }, { "cell_type": "code", "execution_count": null, "id": "8", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# dsigma/dcos(theta) for the massless case, plotted\n", "kin_massless = TwoToTwoKinematics(0, 0, 0, 0)\n", "m2_massless = ffv_s_channel_squared(e, e, e, e, kin_massless, mediator_mass=0)\n", "dsdcos_qed = differential_cross_section(m2_massless, kin_massless, (electron, electron),\n", " variable=\"cos\")\n", "cosv, s_num = sp.symbols('cos s', real=True)\n", "dsdcos_qed = dsdcos_qed.subs(kin_massless.t, kin_massless.t_of_cos(cosv)).subs(kin_massless.s, s_num)\n", "f_qed = sp.lambdify((cosv,), dsdcos_qed.subs({e: 1, s_num: 100}), 'numpy')\n", "\n", "xs = np.linspace(-0.98, 0.98, 200)\n", "plt.figure(figsize=(5, 3.5))\n", "plt.plot(xs, f_qed(xs))\n", "plt.xlabel(r\"$\\cos\\theta$\"); plt.ylabel(r\"$d\\sigma/d\\cos\\theta$ (arb. units)\")\n", "plt.title(r\"QED: $e^+e^-\\to\\mu^+\\mu^-$ — symmetric $(1+\\cos^2\\theta)$ shape\")\n", "plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "9", "metadata": {}, "source": [ "The QED shape is symmetric under $\\cos\\theta\\to-\\cos\\theta$ — as forward as it is\n", "backward. That symmetry is about to break." ] }, { "cell_type": "markdown", "id": "10", "metadata": {}, "source": [ "## 3. Why $\\gamma_5$ survives for 2→2 but never did for a decay\n", "\n", "Every trace in this library that involves a chiral projector $P_{L,R}=(1\\mp\\gamma_5)/2$\n", "splits as\n", "\n", "$$\\mathrm{Tr}[X\\,P_{L,R}] = \\tfrac12\\mathrm{Tr}[X] \\mp \\tfrac12\\mathrm{Tr}[X\\gamma_5].$$\n", "\n", "The second term is a totally antisymmetric $\\varepsilon^{abcd}$ tensor contracted with\n", "whatever four indices $X$ supplies. $\\varepsilon$ needs **four independent** vectors to\n", "be non-zero at all (any repeated or linearly-dependent index kills it by\n", "antisymmetry).\n", "\n", "- A **1→2 decay** supplies only $p_1,p_2$ — two independent momenta ($P=p_1+p_2$ isn't\n", " a third) — so the term is *always* exactly zero. This is what\n", " `feynlag.pheno.lorentz.reduce_projectors` proves and relies on for every width this\n", " library has ever computed.\n", "- A **2→2 process** has $k_1,k_2,k_3$ independent ($k_4=k_1+k_2-k_3$ is not a fourth) —\n", " **three** independent momenta. That is not yet four on its own, but when **two**\n", " separate chiral fermion currents meet at one propagator, each contributes its own\n", " momentum pair to a *different* $\\varepsilon$, and the product of the two — the\n", " cross-chain $\\varepsilon\\cdot\\varepsilon$ term — is generically **non-zero**. That\n", " product is exactly the forward–backward asymmetry.\n", "\n", "`reduce_projectors` was tightened from \"provably zero for $\\le3$ momenta\" to\n", "\"$\\le2$\" for exactly this reason (a 2→2 process was silently passing under the old,\n", "looser threshold). The chain-level 2→2 engine in `pheno/diagrams.py` no longer calls\n", "`reduce_projectors` at all — it computes the ε term for real instead." ] }, { "cell_type": "markdown", "id": "11", "metadata": {}, "source": [ "## 4. The ε·ε algebra: two identities, both signs *derived*\n", "\n", "`feynlag.pheno.epsilon` is the one module with $\\varepsilon$-tensor knowledge.\n", "SymPy's own Clifford-algebra engine (`sympy.physics.hep.gamma_matrices`) has **no**\n", "$\\gamma_5$ object and no ε-aware trace, so both identities below are built from\n", "scratch rather than looked up — and, following this library's rule that a sign is\n", "*derived* from the explicit Dirac representation rather than quoted from a textbook\n", "(the same discipline `feynlag.dirac.majorana_symmetry_sign` uses), so are $\\kappa$ and\n", "$s_{\\det}$ below.\n", "\n", "**Identity 1** — $\\mathrm{Tr}[\\gamma^a\\gamma^b\\gamma^c\\gamma^d\\gamma_5]=\\kappa\\,\\varepsilon^{abcd}$:" ] }, { "cell_type": "code", "execution_count": null, "id": "12", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "kappa = -4*I (derived from the literal g0 g1 g2 g3 g5 matrix trace)\n" ] } ], "source": [ "kappa = gamma5_trace_coefficient()\n", "print(\"kappa =\", kappa, \" (derived from the literal g0 g1 g2 g3 g5 matrix trace)\")" ] }, { "cell_type": "markdown", "id": "13", "metadata": {}, "source": [ "**Identity 2** — $\\varepsilon^{a\\ldots}\\varepsilon^{b\\ldots}=s_{\\det}\\cdot\\det[g^{a_ib_j}]$,\n", "a genuine Gram-determinant computation:" ] }, { "cell_type": "code", "execution_count": null, "id": "14", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "s_det = -1 (derived against the (+,-,-,-) metric)\n" ] } ], "source": [ "s_det = epsilon_product_sign()\n", "print(\"s_det =\", s_det, \" (derived against the (+,-,-,-) metric)\")" ] }, { "cell_type": "markdown", "id": "15", "metadata": {}, "source": [ "`epsilon_pair_tensor` expands identity 2 as 24 signed products of four metrics, with\n", "every free Lorentz index left **open** — no partial-contraction identity needed, and\n", "the all-momentum case reduces on its own to $-\\det[p_i\\cdot p'_j]$. The one thing left\n", "to check before this can be used at all: does a 2→2 diagram's own four momenta make\n", "that Gram determinant vanish, so the *single*-ε cross terms (one chain's ε piece times\n", "the other chain's ordinary trace) are provably zero?" ] }, { "cell_type": "code", "execution_count": null, "id": "16", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Gram determinant of the four external momenta: 0\n", "-> every single-ε cross term is provably zero for ANY 2->2 diagram\n" ] } ], "source": [ "heads = [kin.k1, kin.k2, kin.k3, kin.k4] # kin from section 1, symbolic masses\n", "det = sp.simplify(gram_determinant(heads, kin.dot))\n", "print(\"Gram determinant of the four external momenta:\", det)\n", "print(\"-> every single-ε cross term is provably zero for ANY 2->2 diagram\")" ] }, { "cell_type": "markdown", "id": "17", "metadata": {}, "source": [ "That is `feynlag.pheno.epsilon.assert_epsilon_single_vanishes`'s job: prove this\n", "*computationally*, from the diagram's own `kin.dot` table, every time — not assume it\n", "from a momentum count that would need re-deriving for a future topology.\n", "\n", "With both identities in hand, `Amplitude.squared` no longer has to refuse a\n", "chiral-on-both-vertices diagram: it adds the computed $\\varepsilon\\cdot\\varepsilon$\n", "piece to the ordinary (non-ε) piece before the **one**\n", "`contract_to_dots` call the rest of the engine already relies on." ] }, { "cell_type": "markdown", "id": "18", "metadata": {}, "source": [ "## 5. $e^+e^-\\to\\mu^+\\mu^-$ through the Z: extracting real couplings from the Lagrangian\n", "\n", "Rather than typing in the textbook $g_L=T_3-Q\\sin^2\\theta_W$ formula, this section\n", "builds the SM electroweak gauge sector with two lepton generations and pulls the\n", "*actual* $Z\\bar ff$ vertex — `g_left`/`g_right` — straight out of the Lagrangian, the\n", "same way `DecayCalculator` does internally for 1→2 widths. See\n", "`examples/ee_to_ff.py` for the standalone script this section is drawn from." ] }, { "cell_type": "code", "execution_count": null, "id": "19", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "g_L = 0.0000-0.2006j, g_R = 0.0000+0.1720j (electron; g_L != g_R -- chiral!)\n" ] } ], "source": [ "GW, G1, VEV, MH, MZ = 0.6535, 0.3580, 246.0, 125.25, 91.1876\n", "\n", "def build_model():\n", " ew = electroweak_scaffold(gw=GW, g1=G1, v=VEV, mh=MH)\n", " SU2L, U1Y = ew.SU2L, ew.U1Y\n", " i = sp.Symbol(\"i\", integer=True)\n", "\n", " def doublet(name, comps):\n", " return WeylFermion(name, reps={SU2L: 2, U1Y: -sp.Rational(1, 2)},\n", " chirality=\"L\", nflavors=1, component_names=comps)\n", "\n", " def singlet(name, comp):\n", " return WeylFermion(name, reps={U1Y: -1}, chirality=\"R\", nflavors=1,\n", " component_names=[comp])\n", "\n", " Le, eR = doublet(\"Le\", [\"nueL\", \"eL\"]), singlet(\"eR\", \"eR\")\n", " Lmu, muR = doublet(\"Lmu\", [\"numuL\", \"muL\"]), singlet(\"muR\", \"muR\")\n", "\n", " L = Lagrangian()\n", " ew.add_higgs(L)\n", " for f in (Le, eR, Lmu, muR):\n", " L.add(fermion_gauge_current(f, i), sector=\"gauge\")\n", "\n", " model = Model(\"SM_ee_mumu\", gauge_groups=ew.gauge_groups,\n", " fields=ew.fields + [Le, eR, Lmu, muR],\n", " parameters=ew.parameters, lagrangian=L)\n", " model.solve_tadpoles([ew.mu2])\n", " phys = to_physical_basis(model, ew)\n", "\n", " eL, eLb = Le.components[1], Le.bar_components[1]\n", " eRc, eRb = eR.components[0], eR.bar_components[0]\n", " muL, muLb = Lmu.components[1], Lmu.bar_components[1]\n", " muRc, muRb = muR.components[0], muR.bar_components[0]\n", " e_sym, ebar_sym, mu_sym, mubar_sym = sp.symbols(\"e ebar mu mubar\")\n", " particle_map = {eL[i]: e_sym, eRc[i]: e_sym, eLb[i]: ebar_sym, eRb[i]: ebar_sym,\n", " muL[i]: mu_sym, muRc[i]: mu_sym, muLb[i]: mubar_sym, muRb[i]: mubar_sym}\n", " return dict(model=model, conjugate_map=phys.cmap, Z=phys.Z,\n", " e=e_sym, ebar=ebar_sym, mu=mu_sym, mubar=mubar_sym,\n", " particle_map=particle_map, gw=ew.gw, g1=ew.g1)\n", "\n", "\n", "def z_coupling(built, particle, antiparticle):\n", " vertices = collect_decay_vertices(built[\"model\"], [built[\"Z\"]], fermion_sectors=(\"gauge\",),\n", " conjugate_map=built[\"conjugate_map\"],\n", " particle_map=built[\"particle_map\"])\n", " for v in vertices:\n", " if v.vertex_type == \"FFV\" and set(v.particles[:2]) == {particle, antiparticle}:\n", " return v.g_left, v.g_right\n", " raise RuntimeError(\"vertex not found\")\n", "\n", "\n", "built = build_model()\n", "gL, gR = z_coupling(built, built[\"e\"], built[\"ebar\"])\n", "hL, hR = z_coupling(built, built[\"mu\"], built[\"mubar\"])\n", "couplings_num = {built[\"gw\"].s: GW, built[\"g1\"].s: G1}\n", "gL, gR, hL, hR = (c.subs(couplings_num) for c in (gL, gR, hL, hR))\n", "print(f\"g_L = {complex(gL):.4f}, g_R = {complex(gR):.4f} (electron; g_L != g_R -- chiral!)\")" ] }, { "cell_type": "markdown", "id": "20", "metadata": {}, "source": [ "`g_L \\ne g_R`: the electron's Z coupling is genuinely chiral (the weak interaction\n", "distinguishes left- from right-handed fermions), unlike the vector QED photon coupling\n", "above. This is exactly the case Tier 1 could only refuse." ] }, { "cell_type": "code", "execution_count": null, "id": "21", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sigma|M|^2 computed without raising -- this is the Tier-2 result.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "A_FB matches (3/4) A_e A_f [LEPEWWG06 Eq. 1.66]: True\n", "A_FB numeric value: 0.01743\n" ] } ], "source": [ "kin_z = TwoToTwoKinematics(0, 0, 0, 0)\n", "mZ_sym = sp.Symbol('m_Z', positive=True)\n", "m2_z = ffv_s_channel_squared(gL, gR, hL, hR, kin_z, mediator_mass=mZ_sym)\n", "print(\"Sigma|M|^2 computed without raising -- this is the Tier-2 result.\")\n", "\n", "afb_expr = forward_backward_asymmetry(m2_z, kin_z)\n", "Ae = (gL**2 - gR**2) / (gL**2 + gR**2)\n", "Af = (hL**2 - hR**2) / (hL**2 + hR**2)\n", "lep_formula = sp.Rational(3, 4) * Ae * Af\n", "# A_FB is independent of s and m_Z -- the propagator denominator is a\n", "# cosθ-independent common factor that cancels exactly in the sigma_F/sigma_B\n", "# ratio (proved symbolically, with mediator_mass=0, in\n", "# test_z_only_forward_backward_asymmetry_is_three_quarters_Ae_Af). With a\n", "# genuine m_Z symbol and float (not exact-rational) couplings, sympy's\n", "# `simplify` does not always spot that cancellation, so this evaluates at one\n", "# concrete benchmark point rather than asserting it symbolically here.\n", "afb_num = complex(afb_expr.subs({kin_z.s: 200.0**2, mZ_sym: MZ}))\n", "lep_num = complex(lep_formula)\n", "print(\"A_FB matches (3/4) A_e A_f [LEPEWWG06 Eq. 1.66]:\", abs(afb_num - lep_num) < 1e-9)\n", "print(\"A_FB numeric value:\", round(afb_num.real, 5))" ] }, { "cell_type": "markdown", "id": "22", "metadata": {}, "source": [ "$A_{FB}=\\tfrac34A_eA_f$ is Eq. (1.66) of the LEP Electroweak Working Group's combined\n", "Z-pole report [ALEPH/DELPHI/L3/OPAL/SLD, Phys. Rept. 427 (2006) 257,\n", "arXiv:hep-ex/0509008] — the actual measured LEP asymmetry formula, reproduced here\n", "from first principles through this library's Dirac-trace engine." ] }, { "cell_type": "code", "execution_count": null, "id": "23", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# dsigma/dcos(theta): chiral (Z) vs. an equal-|gL|^2+|gR|^2 \"vector-like\" coupling\n", "dsdcos_z = differential_cross_section(m2_z, kin_z, (electron, electron), variable=\"cos\")\n", "dsdcos_z = dsdcos_z.subs(kin_z.t, kin_z.t_of_cos(cosv)).subs(kin_z.s, s_num)\n", "f_z = sp.lambdify((cosv,), dsdcos_z.subs({mZ_sym: MZ, s_num: 200.0**2}), 'numpy')\n", "\n", "ge, hf = sp.sqrt((gL**2 + gR**2) / 2), sp.sqrt((hL**2 + hR**2) / 2)\n", "m2_vec = ffv_s_channel_squared(ge, ge, hf, hf, kin_z, mediator_mass=mZ_sym)\n", "dsdcos_vec = differential_cross_section(m2_vec, kin_z, (electron, electron), variable=\"cos\")\n", "dsdcos_vec = dsdcos_vec.subs(kin_z.t, kin_z.t_of_cos(cosv)).subs(kin_z.s, s_num)\n", "f_vec = sp.lambdify((cosv,), dsdcos_vec.subs({mZ_sym: MZ, s_num: 200.0**2}), 'numpy')\n", "\n", "xs = np.linspace(-0.98, 0.98, 200)\n", "plt.figure(figsize=(5.5, 3.8))\n", "plt.plot(xs, f_z(xs), label=\"chiral Z coupling (real)\")\n", "plt.plot(xs, f_vec(xs), '--', label=r\"equal $g_L^2{+}g_R^2$ vector coupling\")\n", "plt.xlabel(r\"$\\cos\\theta$\"); plt.ylabel(r\"$d\\sigma/d\\cos\\theta$ (arb. units)\")\n", "plt.title(r\"$e^+e^-\\to\\mu^+\\mu^-$ through the Z: the forward--backward tilt\")\n", "plt.legend(); plt.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "24", "metadata": {}, "source": [ "The chiral (solid) curve tilts toward forward scattering ($\\cos\\theta>0$) relative to\n", "the symmetric vector-coupling (dashed) curve — the ε term's visible signature. The two\n", "curves enclose the **same area**: `test_z_only_total_cross_section_is_epsilon_independent`\n", "pins that the ε term is odd in $\\cos\\theta$ and integrates away over the full range, so\n", "the *total* cross section only depends on $g_L^2+g_R^2$. $A_{FB}$ is an angular\n", "observable only — Tier 1's photon-only 2.322 pb benchmark cross section is unaffected\n", "by any of this landing." ] }, { "cell_type": "markdown", "id": "25", "metadata": {}, "source": [ "## 6. Where this leaves the roadmap\n", "\n", "| tier | status | what it adds |\n", "|---|---|---|\n", "| 1 | ✅ shipped | kinematics, one diagram, no interference — the QED benchmark above |\n", "| 2 | ✅ shipped | the ε (γ₅) algebra — the Z-only chiral result and $A_{FB}$ above |\n", "| 3 | not started | γ/Z **interference** — the full 2.7878 pb MadGraph benchmark |\n", "| 4 | not started | derivative couplings — $e^+e^-\\to W^+W^-$, gauge cancellation |\n", "| 5 | not started | coloured/hadronic 2→2 (parton level, no PDFs) |\n", "\n", "See `docs/manual/scattering_roadmap.md` for the full tiered plan, and\n", "`tests/test_scattering.py` for everything this notebook's numbers are pinned against." ] } ], "metadata": { "kernelspec": { "display_name": "Python (lagrangian)", "language": "python", "name": "lagrangian" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.13" } }, "nbformat": 4, "nbformat_minor": 5 }