Skip to content

Commit

Permalink
address Stephan comment until phasespace generation
Browse files Browse the repository at this point in the history
  • Loading branch information
shenvitor committed May 21, 2024
1 parent a193133 commit 9acb270
Showing 1 changed file with 192 additions and 42 deletions.
234 changes: 192 additions & 42 deletions docs/report/999.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@
"Basic Python programming and libraries (e.g. `numpy`, `scipy`, etc.) are used to illustrate the general process in PWA.\n",
"Before advancing to the complexities of symbolic expressions (computations) with `sympy`, this tutorial aims to equip readers with a basic understanding of PWA methodologies and full workflow in the context of hadron physics through a practical, hands-on example.\n",
"+++\n",
"✅ [ComPWA/RUB-EP1-AG#93](https://github.com/ComPWA/RUB-EP1-AG/issues/93), [compwa.github.io#217](https://github.com/ComPWA/compwa.github.io/pull/217)\n",
"✅ [ComPWA/RUB-EP1-AG#93](https://github.com/ComPWA/RUB-EP1-AG/issues/93), [com\n",
"I\n",
"pwa.github.io#217](https://github.com/ComPWA/compwa.github.io/pull/217)\n",
":::\n",
"::::"
]
Expand Down Expand Up @@ -72,6 +74,22 @@
"%pip install -q \"phasespace[fromdecay]\"==1.9.0 gdown==4.7.1 iminuit==2.25.2 matplotlib==3.7.3 numpy==1.24.4 pandas==2.2.1 particle==0.23.0 scipy==1.10.1 vector==1.1.1.post1"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"- This document serves as an introduction to Amplitude Analysis / Partial Wave Analysis (PWA) by demonstrating its application to a specific reaction channel and amplitude model.\n",
"- Basic Python programming and libraries (e.g. `numpy`, `scipy`, etc.) are used to illustrate the general process in PWA.\n",
"- Before advancing to the complexities of symbolic expressions (computations) with `sympy`.\n",
"- This tutorial aims to equip readers with a basic understanding of PWA methodologies and full workflow in the context of hadron physics through a practical, hands-on example."
]
},
{
"cell_type": "code",
"execution_count": null,
Expand Down Expand Up @@ -125,9 +143,7 @@
"tags": []
},
"source": [
"This document serves as an introduction to Amplitude Analysis / Partial Wave Analysis (PWA) by demonstrating its application to a specific reaction channel and amplitude model.\n",
"Basic Python programming and libraries (e.g. `numpy`, `scipy`, etc.) are used to illustrate the general process in PWA.\n",
"Before advancing to the complexities of symbolic expressions (computations) with `sympy`, this tutorial aims to equip readers with a basic understanding of PWA methodologies and full workflow in the context of hadron physics through a practical, hands-on example."
"## Amplitude model"
]
},
{
Expand All @@ -140,7 +156,10 @@
"tags": []
},
"source": [
"## Amplitude model"
"<!-- cspell:ignore Mathieu -->\n",
"This amplitude model is adapted from the [Lecture 11 in STRONG2020 HaSP School](https://indico.ific.uv.es/event/6803/contributions/21223/) by Vincent Mathieu.\n",
"\n",
"The (photo-production) reaction is $ \\gamma p \\to \\eta \\pi^0 p$, it is described by an amplitude model with three possible resonances: $a_2$, $\\Delta^+$, and $N^*$. "
]
},
{
Expand All @@ -150,13 +169,14 @@
"slideshow": {
"slide_type": ""
},
"tags": []
"tags": [
"full-width"
]
},
"source": [
"<!-- cspell:ignore Mathieu -->\n",
"This amplitude model is adapted from the [Lecture 11 in STRONG2020 HaSP School](https://indico.ific.uv.es/event/6803/contributions/21223/) by Vincent Mathieu.\n",
"\n",
"The (photo-production) reaction is $ \\gamma p \\to \\eta \\pi^0 p$, it is described by a amplitude model with three possible resonances: $a_2$, $\\Delta^+$, and $N^*$. "
"```{image} https://github.com/ComPWA/compwa-org/assets/17490173/ec6bf191-bd5f-43b0-a6cb-da470b071630\n",
":width: 100%\n",
"```"
]
},
{
Expand All @@ -166,14 +186,10 @@
"slideshow": {
"slide_type": ""
},
"tags": [
"full-width"
]
"tags": []
},
"source": [
"```{image} https://github.com/ComPWA/compwa-org/assets/17490173/ec6bf191-bd5f-43b0-a6cb-da470b071630\n",
":width: 100%\n",
"```"
"The Amplitude $A$ has three parts in this case:"
]
},
{
Expand All @@ -194,7 +210,7 @@
"\\end{eqnarray}\n",
"$$ (full_model_label)\n",
"\n",
"where $s, t, u$ are the Mandelstam variables $s_{ij}=(p_i+p_j)^2$, $t_i=(p_a-p_i)^2$, and $u_i=(p_b-p_i)^2$."
"where $s, t, u$ are the Mandelstam variables $s_{ij}=(p_i+p_j)^2$, $t_i=(p_a-p_i)^2$, and $u_i=(p_b-p_i)^2$, m is the mass, $\\Gamma$ is the width, $Y^m_l$ is the spherical harmonics, $\\Omega_i$ is the decay angles (a pair of Euler angles), and $a_i$, $b_i$, and $c_i$ are coefficients"
]
},
{
Expand Down Expand Up @@ -280,16 +296,18 @@
},
"source": [
":::{important}\n",
"The spin of $\\eta$ meson and $\\pi^0$ meson are all 0. But the spin of proton is not 0, it is spin-$\\frac{1}{2}$.\n",
"The spin of the $\\eta$ meson and the $\\pi^0$ meson are all 0. But the spin of the proton is not 0, it is spin-$\\frac{1}{2}$.\n",
"\n",
"In this amplitude model **spin** of baryon is simplified (not realistic):\n",
"$\\eta$, $\\pi^0$ and $p$ are all treated as spin-0 particles.\n",
"In this amplitude model the **spin** of baryon (proton in this example reaction) is simplified, treated as spin-0 particle, and thus not realistic.\n",
"Additionally, the mesons $\\eta$ and $\\pi^0$ are originally spin-0 particles.\n",
"Overall,\n",
"the $\\eta$, $\\pi^0$ and $p$ are all treated as spin-0 particles.\n",
"\n",
"This means that total intrinsic spin $s$ is ignored in this model,\n",
"This means that the total intrinsic spin $s$ is ignored in this model,\n",
"the total angular momentum \n",
"$J$ of the system or any subsystems within this model will solely depend on the orbital angular momentum \n",
"$L$, characterized by quantum number $l$.\n",
"And this simplifies the use of spherical harmonics $Y_l^m(\\theta,\\phi)$,\n",
"$L$, characterized by the quantum number $l$.\n",
"And this simplifies the use of the spherical harmonics $Y_l^m(\\theta,\\phi)$,\n",
"since only the orbital angular momentum component is involved, and thus the combination of contribution is not considered (e.g. Clebsch-Gordan Coefficients).\n",
"\n",
"In our case: \n",
Expand Down Expand Up @@ -325,7 +343,7 @@
"tags": []
},
"source": [
"The number of events for phase generation and data generation can be changed in this section."
"The number of events for phase space generation and data generation can be changed in this section."
]
},
{
Expand Down Expand Up @@ -374,7 +392,7 @@
"It allows physicists to calculate the likelihood of various final states given a set of initial conditions, taking into account conservation laws (energy, momentum, angular momentum, etc.).\n",
"The volume of phase space available for a particular process is directly related to the probability of that process occurring.\n",
"\n",
"Firstly, in CM frame the 4-momentum of the total system can be acquired by 4-momentum conservation:"
"Firstly, in center-of-mass (CM) frame the 4-momentum of the total system can be acquired by 4-momentum conservation:"
]
},
{
Expand Down Expand Up @@ -443,69 +461,184 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
":::{caution}\n",
"The calculation here is in the CM frame, and usually for experiment it is in lab frame.\n",
"The calculation here involved using the values from CM frame. While this frame is commonly used for theoretical calculations, experimental data is often analyzed in the lab frame. However, it's worth noting that for collider experiments, the CM frame can coincide with the lab frame.\n",
":::"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"$m_{\\gamma}=0$, \n",
"The GlueX experiment at Jefferson Lab uses a fixed target with a linearly polarized photon beam, and the beam energy range in lab frame is typically from [**8 to 9 GeV**](https://journals.jps.jp/doi/10.7566/JPSCP.26.022002).\n",
"\n",
"$E_{\\gamma} = p_{\\gamma}$\n",
"In the following, the variables without labelling of 'lab' is in the CM frame, those with labels of 'lab' is in the lab frame."
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"We use the $\\gamma$ beam energy in the lab frame $E_{\\gamma, lab} = 8.5 \\; GeV$ as the input:\n",
"\n",
"The four-momentum of photon (beam) in the lab frame:\n",
"$p_{\\gamma,lab} = (E_{\\gamma}, \\vec{p}_{\\gamma,lab})$\n",
"\n",
"Since photon is massless $m_{\\gamma}=0$, with $m^2 = E^2 - \\vec{p}^2$ and thus $E_{\\gamma} = |\\vec{p_{\\gamma}}|$\n",
"\n",
"The four-momentum of proton (target) in the lab frame:\n",
"$p_{p,lab} = (m_p, \\vec{0})$\n",
"\n",
"with $m_p$ is the proton mass\n",
"\n",
"We have the total four-momentum in lab frame:\n",
"$p_{tot,lab} = p_{\\gamma,lab} + p_{p,lab}$\n",
"\n",
"$E_{p} = \\sqrt { p_{p}^2+ m_{p}^2}$\n",
"\n",
"$m_0 = E_0 = |p_z|+\\sqrt{p_z^2+m_p^2}$"
"From the **lab frame** perspective, the CM total energy with expression in quantities from the **lab frame** is thus:\n",
"\n",
"$\\sqrt{s} = E_0 = m_0 = \\sqrt{2 E_{\\gamma,lab}m_p+m_p^2}$\n",
"\n",
"\n",
"Equivalently, from the **CM frame** perspective, since $\\vec{p}_{\\gamma} = -\\vec{p}_{p}$ and $|\\vec{p}_{\\gamma}| = |\\vec{p}_{p}|= p_{z}$, we can find out the CM total energy with expression in quantities from the CM frame is:\n",
"\n",
"$\\sqrt{s} = E_0 = m_0 = |p_{z}|+\\sqrt{p_{z}^2+m_p^2}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"remove-cell"
]
},
"source": [
"The $\\gamma$ energy ($E_{\\gamma}$) and $\\gamma$ beam momentum ($p_{\\gamma}$) are as input in this analysis, they are:\n",
"Therefore $\\gamma$ energy ($E_{\\gamma}$) and $\\gamma$ beam momentum ($p_{\\gamma}$) in **CM frame** can be found,they are:\n",
"\n",
"$E_{\\gamma} = p_{\\gamma} = 1.943718 GeV$"
"$E_{\\gamma} = |\\vec{p}_{\\gamma}| = p_{z} = 1.943718 \\; GeV$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
":::{important}\n",
"Beam momentum (energy) as input value. Assuming incoming $\\gamma$ beam to stationary proton target in photo-production experiment, e.g. GlueX.\n",
"Beam energy in the Lab frame as input value, and then we find the total energy in the CM frame and do the calculation in CM frame for analysis afterwards. \n",
"\n",
"Assuming incoming $\\gamma$ beam to stationary proton target in photo-production experiment, e.g. [GlueX](http://www.gluex.org/).\n",
":::"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"p_beam = 1.943718\n",
"E_lab_gamma = 8.5\n",
"m_proton = 0.938\n",
"m_0 = p_beam + np.sqrt(p_beam**2 + m_proton**2)\n",
"m_0 = np.sqrt(2 * E_lab_gamma * m_proton + m_proton**2)\n",
"m_eta = 0.548\n",
"m_pi = 0.135"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"p_beam = 1.943718\n",
"m_0test = p_beam + np.sqrt(p_beam**2 + m_proton**2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"m_0"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"m_0test"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"Thus, we then have the mass of the system $m_0$ (or $m_{p\\gamma}$ in this case) in CM frame:\n",
"\n",
Expand All @@ -524,7 +657,9 @@
"tags": []
},
"source": [
"Use of `phasespace` to generate decay particles (4-momentum and weights):"
"The [`phasespace`](https://github.com/zfit/phasespace) library is a Python package designed to simulate particle decays according to the principles of relativistic kinematics and phase space distributions. It is particularly useful for high-energy physics experiments where understanding the decay processes and resulting particle distributions is crucial.\n",
"\n",
"We use the [`phasespace`](https://github.com/zfit/phasespace) to generate decay particles (4-momentum and weights):"
]
},
{
Expand All @@ -549,6 +684,21 @@
").generate(n_events=phsp_events)"
]
},
{
"cell_type": "markdown",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
":::{note}\n",
"**Weights**: When generating decay events, weights are used to account for the probability distributions of different decay configurations. These are crucial for simulating realistic physical processes.\n",
":::"
]
},
{
"cell_type": "markdown",
"metadata": {
Expand Down Expand Up @@ -4972,7 +5122,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.13"
"version": "3.10.14"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 9acb270

Please sign in to comment.