Path: blob/main/latex-templates/templates/particle-physics/decay_kinematics.tex
51 views
unlisted
\documentclass[a4paper, 11pt]{article}1\usepackage[utf8]{inputenc}2\usepackage[T1]{fontenc}3\usepackage{amsmath, amssymb, amsthm}4\usepackage{graphicx}5\usepackage{booktabs}6\usepackage{siunitx}7\usepackage{subcaption}8\usepackage[makestderr]{pythontex}910\newtheorem{definition}{Definition}11\newtheorem{theorem}{Theorem}12\newtheorem{example}{Example}13\newtheorem{remark}{Remark}1415\title{Particle Decay Kinematics: Two-Body and Three-Body Phase Space Analysis}16\author{High Energy Physics Computation Laboratory}17\date{\today}1819\begin{document}20\maketitle2122\begin{abstract}23This technical report presents comprehensive computational analysis of relativistic decay kinematics for unstable particles. We implement energy-momentum conservation for two-body and three-body decays, compute Lorentz transformations between rest and laboratory frames, analyze Dalitz plots for three-body phase space, and calculate decay widths from matrix elements. Applications include particle identification, resonance analysis, and detector design optimization.24\end{abstract}2526\section{Theoretical Framework}2728\begin{definition}[Invariant Mass]29For a system of particles with four-momenta $p_i^\mu$, the invariant mass is:30\begin{equation}31M^2 c^4 = \left(\sum_i p_i^\mu\right) \left(\sum_j p_{j\mu}\right) = \left(\sum_i E_i\right)^2 - \left(\sum_i \mathbf{p}_i\right)^2 c^232\end{equation}33\end{definition}3435\begin{theorem}[Two-Body Decay]36For decay $A \to B + C$ in the rest frame of $A$:37\begin{align}38E_B &= \frac{m_A^2 + m_B^2 - m_C^2}{2m_A} c^2 \\39|\mathbf{p}| &= \frac{c}{2m_A} \sqrt{\lambda(m_A^2, m_B^2, m_C^2)}40\end{align}41where $\lambda(x,y,z) = x^2 + y^2 + z^2 - 2xy - 2yz - 2zx$ is the K\"allen function.42\end{theorem}4344\subsection{Lorentz Transformations}4546\begin{definition}[Lorentz Boost]47For boost along z-axis with velocity $\beta c$:48\begin{align}49E' &= \gamma(E + \beta c p_z) \\50p_z' &= \gamma(p_z + \beta E/c)51\end{align}52where $\gamma = (1 - \beta^2)^{-1/2}$.53\end{definition}5455\begin{example}[Dalitz Plot]56For three-body decay $A \to 1 + 2 + 3$, the Dalitz plot shows the distribution in:57\begin{equation}58m_{12}^2 = (p_1 + p_2)^2, \quad m_{23}^2 = (p_2 + p_3)^259\end{equation}60Resonances appear as bands in this plot.61\end{example}6263\section{Computational Analysis}6465\begin{pycode}66import numpy as np67import matplotlib.pyplot as plt68from mpl_toolkits.mplot3d import Axes3D69plt.rc('text', usetex=True)70plt.rc('font', family='serif', size=10)7172# Particle masses (MeV/c^2)73particles = {74'pion+': 139.57,75'pion0': 134.98,76'kaon+': 493.68,77'kaon0': 497.61,78'muon': 105.66,79'electron': 0.511,80'nu_e': 0,81'nu_mu': 0,82'proton': 938.27,83'neutron': 939.57,84'eta': 547.86,85'D+': 1869.65,86'D0': 1864.84,87'B+': 5279.34,88'Jpsi': 3096.90,89'phi': 1019.4690}9192def kallen(x, y, z):93"""Kallen triangle function."""94return x**2 + y**2 + z**2 - 2*x*y - 2*y*z - 2*z*x9596def two_body_decay(m_parent, m_d1, m_d2):97"""Two-body decay kinematics in parent rest frame."""98if m_parent < m_d1 + m_d2:99return 0, 0, 0100101E1 = (m_parent**2 + m_d1**2 - m_d2**2) / (2 * m_parent)102E2 = (m_parent**2 + m_d2**2 - m_d1**2) / (2 * m_parent)103p = np.sqrt(kallen(m_parent**2, m_d1**2, m_d2**2)) / (2 * m_parent)104105return E1, E2, p106107def lorentz_boost(E, p_par, p_perp, beta):108"""Lorentz boost along parallel direction."""109gamma = 1 / np.sqrt(1 - beta**2)110E_lab = gamma * (E + beta * p_par)111p_par_lab = gamma * (p_par + beta * E)112p_perp_lab = p_perp113return E_lab, p_par_lab, p_perp_lab114115def lab_frame_kinematics(m_parent, m_d1, m_d2, gamma_parent, theta_cm):116"""Calculate daughter kinematics in lab frame."""117E_cm, _, p_cm = two_body_decay(m_parent, m_d1, m_d2)118119beta = np.sqrt(1 - 1/gamma_parent**2)120121p_par = p_cm * np.cos(theta_cm)122p_perp = p_cm * np.sin(theta_cm)123124E_lab, p_par_lab, p_perp_lab = lorentz_boost(E_cm, p_par, p_perp, beta)125126p_lab = np.sqrt(p_par_lab**2 + p_perp_lab**2)127theta_lab = np.arctan2(p_perp_lab, p_par_lab)128129return E_lab, p_lab, theta_lab130131# Example: pion decay pi+ -> mu+ + nu_mu132m_pi = particles['pion+']133m_mu = particles['muon']134m_nu = particles['nu_mu']135136E_mu_cm, E_nu_cm, p_decay = two_body_decay(m_pi, m_mu, m_nu)137KE_mu = E_mu_cm - m_mu138139# Kaon decay K+ -> pi+ + pi0140m_K = particles['kaon+']141m_pi_p = particles['pion+']142m_pi_0 = particles['pion0']143144E_pip_cm, E_pi0_cm, p_K_decay = two_body_decay(m_K, m_pi_p, m_pi_0)145146# Three-body decay: D+ -> K- pi+ pi+147m_D = particles['D+']148m_K_d = particles['kaon+']149m_pi_d = particles['pion+']150151# Phase space boundaries152m12_min = (m_K_d + m_pi_d)**2153m12_max = (m_D - m_pi_d)**2154m23_min = (m_pi_d + m_pi_d)**2155m23_max = (m_D - m_K_d)**2156157# Generate Dalitz plot points (uniform phase space)158np.random.seed(42)159n_events = 5000160161# Sample uniformly in m12^2, m23^2162m12_sq = np.random.uniform(m12_min, m12_max, n_events * 3)163m23_sq = np.random.uniform(m23_min, m23_max, n_events * 3)164165# Check kinematic boundaries166E1_star = (m_D**2 + m_K_d**2 - m12_sq) / (2 * m_D)167E3_star = (m_D**2 + m_pi_d**2 - m23_sq) / (2 * m_D)168169m12 = np.sqrt(m12_sq)170m23 = np.sqrt(m23_sq)171172# Kinematic constraint: m13^2 determined173m13_sq = m_D**2 + m_K_d**2 + 2*m_pi_d**2 - m12_sq - m23_sq174175# Physical boundaries176physical = (m13_sq > (m_K_d + m_pi_d)**2) & (m13_sq < (m_D - m_pi_d)**2)177m12_sq_phys = m12_sq[physical][:n_events]178m23_sq_phys = m23_sq[physical][:n_events]179180# Lab frame analysis: boosted pion181gamma_pi = np.array([1, 2, 5, 10, 50])182theta_cm = np.linspace(0, np.pi, 100)183184# Common decay modes table185decay_modes = [186('$\\pi^+ \\to \\mu^+ \\nu_\\mu$', m_pi, m_mu, m_nu),187('$K^+ \\to \\pi^+ \\pi^0$', m_K, m_pi_p, m_pi_0),188('$K^+ \\to \\mu^+ \\nu_\\mu$', m_K, m_mu, m_nu),189('$D^0 \\to K^- \\pi^+$', particles['D0'], m_K_d, m_pi_p),190('$B^+ \\to J/\\psi K^+$', particles['B+'], particles['Jpsi'], m_K_d)191]192193# Q-value and phase space194def phase_space_factor(m_parent, m_d1, m_d2):195"""Two-body phase space factor."""196p = np.sqrt(kallen(m_parent**2, m_d1**2, m_d2**2)) / (2 * m_parent)197return p / m_parent198199# Create visualization200fig = plt.figure(figsize=(12, 10))201gs = fig.add_gridspec(3, 3, hspace=0.35, wspace=0.35)202203# Plot 1: Two-body decay energies204ax1 = fig.add_subplot(gs[0, 0])205names = [d[0] for d in decay_modes]206E_d1 = [two_body_decay(d[1], d[2], d[3])[0] for d in decay_modes]207E_d2 = [two_body_decay(d[1], d[2], d[3])[1] for d in decay_modes]208209x_pos = range(len(names))210width = 0.35211ax1.bar([x - width/2 for x in x_pos], E_d1, width, label='Daughter 1', alpha=0.7)212ax1.bar([x + width/2 for x in x_pos], E_d2, width, label='Daughter 2', alpha=0.7)213ax1.set_xticks(x_pos)214ax1.set_xticklabels(['$\\pi$', 'K$\\to\\pi$', 'K$\\to\\mu$', 'D', 'B'], fontsize=8)215ax1.set_ylabel('Energy (MeV)')216ax1.set_title('Rest Frame Energies')217ax1.legend(fontsize=7)218ax1.set_yscale('log')219ax1.grid(True, alpha=0.3, axis='y')220221# Plot 2: Lab frame energy vs angle222ax2 = fig.add_subplot(gs[0, 1])223colors = plt.cm.viridis(np.linspace(0.2, 0.8, len(gamma_pi)))224for gamma, color in zip([2, 5, 10], colors[1:4]):225E_lab_vals = []226theta_lab_vals = []227for th in theta_cm:228E, p, th_lab = lab_frame_kinematics(m_pi, m_mu, m_nu, gamma, th)229E_lab_vals.append(E)230theta_lab_vals.append(th_lab)231ax2.plot(np.rad2deg(theta_lab_vals), E_lab_vals, color=color,232lw=1.5, label=f'$\\gamma = {gamma}$')233ax2.set_xlabel('Lab Angle (deg)')234ax2.set_ylabel('Muon Energy (MeV)')235ax2.set_title('$\\pi \\to \\mu\\nu$ Lab Frame')236ax2.legend(fontsize=7)237ax2.grid(True, alpha=0.3)238239# Plot 3: CM to Lab angle transformation240ax3 = fig.add_subplot(gs[0, 2])241for gamma, color in zip([2, 5, 10], colors[1:4]):242theta_lab_vals = []243for th in theta_cm:244_, _, th_lab = lab_frame_kinematics(m_pi, m_mu, m_nu, gamma, th)245theta_lab_vals.append(th_lab)246ax3.plot(np.rad2deg(theta_cm), np.rad2deg(theta_lab_vals), color=color,247lw=1.5, label=f'$\\gamma = {gamma}$')248ax3.plot([0, 180], [0, 180], 'k--', alpha=0.3)249ax3.set_xlabel('CM Angle (deg)')250ax3.set_ylabel('Lab Angle (deg)')251ax3.set_title('Angular Transformation')252ax3.legend(fontsize=7)253ax3.grid(True, alpha=0.3)254255# Plot 4: Dalitz plot256ax4 = fig.add_subplot(gs[1, 0])257ax4.scatter(m12_sq_phys/1e6, m23_sq_phys/1e6, s=1, alpha=0.3, c='blue')258ax4.set_xlabel('$m_{K\\pi}^2$ (GeV$^2$/c$^4$)')259ax4.set_ylabel('$m_{\\pi\\pi}^2$ (GeV$^2$/c$^4$)')260ax4.set_title('Dalitz Plot: $D^+ \\to K^-\\pi^+\\pi^+$')261ax4.grid(True, alpha=0.3)262263# Plot 5: Invariant mass projection264ax5 = fig.add_subplot(gs[1, 1])265ax5.hist(np.sqrt(m12_sq_phys), bins=50, alpha=0.7, color='blue', label='$m_{K\\pi}$')266ax5.set_xlabel('Invariant Mass (MeV/c$^2$)')267ax5.set_ylabel('Events')268ax5.set_title('Invariant Mass Projection')269ax5.legend(fontsize=8)270ax5.grid(True, alpha=0.3)271272# Plot 6: Phase space factor273ax6 = fig.add_subplot(gs[1, 2])274m_parent_range = np.linspace(300, 6000, 100)275ps_Kpi = [phase_space_factor(m, m_K_d, m_pi_p) if m > m_K_d + m_pi_p else 0276for m in m_parent_range]277ps_munu = [phase_space_factor(m, m_mu, 0) if m > m_mu else 0278for m in m_parent_range]279280ax6.plot(m_parent_range, ps_Kpi, 'b-', lw=1.5, label='$K\\pi$')281ax6.plot(m_parent_range, ps_munu, 'r--', lw=1.5, label='$\\mu\\nu$')282ax6.set_xlabel('Parent Mass (MeV/c$^2$)')283ax6.set_ylabel('Phase Space Factor')284ax6.set_title('Two-Body Phase Space')285ax6.legend(fontsize=8)286ax6.grid(True, alpha=0.3)287288# Plot 7: Decay momentum289ax7 = fig.add_subplot(gs[2, 0])290momenta = [two_body_decay(d[1], d[2], d[3])[2] for d in decay_modes]291ax7.barh(range(len(names)), momenta, color='green', alpha=0.7)292ax7.set_yticks(range(len(names)))293ax7.set_yticklabels(['$\\pi$', 'K$\\to\\pi$', 'K$\\to\\mu$', 'D', 'B'], fontsize=8)294ax7.set_xlabel('Momentum (MeV/c)')295ax7.set_title('Decay Momentum')296ax7.grid(True, alpha=0.3, axis='x')297298# Plot 8: Maximum lab angle299ax8 = fig.add_subplot(gs[2, 1])300gamma_range = np.logspace(0, 3, 100)301theta_max_lab = []302303for g in gamma_range:304if g > 1:305beta = np.sqrt(1 - 1/g**2)306beta_cm = p_decay / E_mu_cm307if beta > beta_cm:308theta_max_lab.append(np.arcsin(beta_cm / beta))309else:310theta_max_lab.append(np.pi)311else:312theta_max_lab.append(np.pi)313314ax8.semilogx(gamma_range, np.rad2deg(theta_max_lab), 'b-', lw=2)315ax8.set_xlabel('Parent $\\gamma$')316ax8.set_ylabel('Maximum Lab Angle (deg)')317ax8.set_title('Forward Focusing')318ax8.grid(True, alpha=0.3, which='both')319ax8.set_ylim([0, 180])320321# Plot 9: Q-value comparison322ax9 = fig.add_subplot(gs[2, 2])323Q_values = [d[1] - d[2] - d[3] for d in decay_modes]324colors = ['blue', 'green', 'orange', 'red', 'purple']325ax9.bar(range(len(Q_values)), Q_values, color=colors, alpha=0.7)326ax9.set_xticks(range(len(names)))327ax9.set_xticklabels(['$\\pi$', 'K$\\to\\pi$', 'K$\\to\\mu$', 'D', 'B'], fontsize=8)328ax9.set_ylabel('Q-value (MeV)')329ax9.set_title('Decay Q-Values')330ax9.grid(True, alpha=0.3, axis='y')331ax9.set_yscale('log')332333plt.savefig('decay_kinematics_plot.pdf', bbox_inches='tight', dpi=150)334print(r'\begin{center}')335print(r'\includegraphics[width=\textwidth]{decay_kinematics_plot.pdf}')336print(r'\end{center}')337plt.close()338339# Summary calculations340Q_pi = m_pi - m_mu - m_nu341Q_K_pipi = m_K - m_pi_p - m_pi_0342\end{pycode}343344\section{Results and Analysis}345346\subsection{Two-Body Decay Kinematics}347348\begin{pycode}349print(r'\begin{table}[htbp]')350print(r'\centering')351print(r'\caption{Two-Body Decay Parameters in Rest Frame}')352print(r'\begin{tabular}{lccccc}')353print(r'\toprule')354print(r'Decay & $Q$ (MeV) & $p$ (MeV/c) & $E_1$ (MeV) & $E_2$ (MeV) & $\beta_1$ \\')355print(r'\midrule')356357for name, m_p, m_d1, m_d2 in decay_modes:358Q = m_p - m_d1 - m_d2359E1, E2, p = two_body_decay(m_p, m_d1, m_d2)360beta = p / E1 if E1 > 0 else 0361print(f'{name} & {Q:.1f} & {p:.1f} & {E1:.1f} & {E2:.1f} & {beta:.3f} \\\\')362363print(r'\bottomrule')364print(r'\end{tabular}')365print(r'\end{table}')366\end{pycode}367368\subsection{Pion Decay Analysis}369370For $\pi^+ \to \mu^+ + \nu_\mu$:371\begin{itemize}372\item Q-value: \py{f"{Q_pi:.2f}"} MeV373\item Muon energy: \py{f"{E_mu_cm:.2f}"} MeV374\item Muon kinetic energy: \py{f"{KE_mu:.2f}"} MeV375\item Decay momentum: \py{f"{p_decay:.2f}"} MeV/c376\end{itemize}377378\begin{remark}379The muon receives most of the available energy due to helicity suppression of the electron channel. The ratio $\Gamma(\pi \to e\nu)/\Gamma(\pi \to \mu\nu) \approx 1.2 \times 10^{-4}$.380\end{remark}381382\section{Three-Body Phase Space}383384\begin{theorem}[Dalitz Plot Boundaries]385For three-body decay $A \to 1 + 2 + 3$, the kinematically allowed region in the $(m_{12}^2, m_{23}^2)$ plane is bounded by:386\begin{equation}387(E_1^* + E_2^*)^2 - \left(\sqrt{E_1^{*2} - m_1^2} + \sqrt{E_2^{*2} - m_2^2}\right)^2 \leq m_{12}^2388\end{equation}389where $E_i^* = (M^2 + m_i^2 - m_{jk}^2)/(2M)$.390\end{theorem}391392\begin{example}[Resonance Identification]393In the Dalitz plot:394\begin{itemize}395\item Vertical/horizontal bands indicate $s$-channel resonances396\item Diagonal bands indicate $t$-channel or $u$-channel exchanges397\item Interference patterns reveal relative phases398\end{itemize}399\end{example}400401\section{Laboratory Frame Effects}402403\begin{theorem}[Forward Focusing]404For a relativistic parent with $\gamma \gg 1$, the maximum lab angle of daughter particles is:405\begin{equation}406\sin\theta_{max} = \frac{\beta_{CM}}{\beta_{parent}}407\end{equation}408where $\beta_{CM}$ is the daughter velocity in the CM frame.409\end{theorem}410411\section{Discussion}412413The decay kinematics analysis reveals:414415\begin{enumerate}416\item \textbf{Energy distribution}: Heavier daughters receive larger energy fractions in two-body decays.417\item \textbf{Forward focusing}: Relativistic boosts compress angular distributions toward the beam axis.418\item \textbf{Phase space}: Available phase space determines relative decay rates for different channels.419\item \textbf{Dalitz analysis}: Two-dimensional phase space plots reveal resonance structure.420\end{enumerate}421422\section{Conclusions}423424This computational analysis demonstrates:425\begin{itemize}426\item Pion decay muon energy: \py{f"{E_mu_cm:.2f}"} MeV427\item Pion decay momentum: \py{f"{p_decay:.2f}"} MeV/c428\item Kaon $\to$ 2$\pi$ Q-value: \py{f"{Q_K_pipi:.2f}"} MeV429\item D meson mass: \py{f"{m_D:.1f}"} MeV/c$^2$430\end{itemize}431432Kinematic analysis is essential for particle identification, background rejection, and precision measurements in collider experiments.433434\section{Further Reading}435\begin{itemize}436\item Particle Data Group, Review of Particle Physics, \textit{Phys. Rev. D}, 2022437\item Byckling, E., Kajantie, K., \textit{Particle Kinematics}, Wiley, 1973438\item Perkins, D.H., \textit{Introduction to High Energy Physics}, 4th Ed., Cambridge, 2000439\end{itemize}440441\end{document}442443444