Skip to content

Instantly share code, notes, and snippets.

@r4lv
Last active May 24, 2020 20:59
Show Gist options
  • Save r4lv/9459b2538cd25b5e16e09f8a2a4873ec to your computer and use it in GitHub Desktop.
Save r4lv/9459b2538cd25b5e16e09f8a2a4873ec to your computer and use it in GitHub Desktop.
phasespace==1.1.1
numpy==1.18.4
matplotlib==3.2.1
scipy==1.4.1
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tutorial 3: Toy simulation of $e^{+} e^{-} \\rightarrow \\gamma A'$ using phase space\n",
"\n",
"The idea of the notebook will be to study a basic phase space simulaton of the process $e^{+}e^{-} \\rightarrow \\gamma A'$. Here we will assume that the electron travels along the $z$ axis with $E_{e^{-}} = 6.3\\,\\text{GeV}$ and the positron travels in the exact opposite direction with $E_{e^{+}} = 0.3$ GeV. You may neglect the mass of electrons and take $\\sqrt{s} = \\sqrt{7.56}$ and $\\beta_{e^{+} e^{-}} = 0.9091$.\n",
"\n",
"\n",
"We will generate the decay in the centre-of-mass (CM) frame and compute the momentums and energies of the photon and the $A'$. We will next study the angular distribution of the $A'$ in the CM frame. Finally we will compute the probability that the particle decays in some hypothetical detector volume. The detector is placed $R=5\\,\\text{m}$ in the the $z$ direction from the collision point such that in spherical coordinates it covers the ranges $5 < r < 45\\,\\text{m}$, $0 < \\theta < 15^{\\circ}$ and $0 < \\phi < 360^{\\circ}$. Below you can see the detector. An inner hermetic detector is tasked at reconstructing the $\\gamma$ and cases in which the $A'$ is short lived. Meanwhile, the long baseline detector gives sensitivity to the scenario in which the $A'$ has a longer lifetime."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div style=\"text-align: center\">\n",
" <img alt=\"\" style=\"width:100%; max-width: 1000px;\" src=\"data:image/png;base64,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AAAAAAABAit9jHEECDREPUDw1ltvaUdkZmYmAYLoAACsX79+y5YtNuvMso4pvB/+8Id5eXmaFyxYoEc1b97cRQbA/PnzbcjJycnIyHB1MGvWrF//+tdnz57V2fNLL700adIk12hByeKVK1dqMC1btuzYsWNaJeUGmnw6BBUVFUeOHLF1A1WVlJScO3cujKBAly5dbN1ALUEBAAAAAABgd3K8AAEIEGiFQdQDBFlZWVE7diFAAAB47rnnbBg4cOCVV17p6ubuu++eO3euCrS1jXvVqlU33nijiwAAdQ+8/fbb3vPL1U3nzp217EBbSOy53KgDBEhNTe3atauOe1MqtW3b1jVR7KfQt05bNxB5UKBFixb6ylEywJcV0NdSSNk+AAAAAABoIDhz5oyLbUhKSmogDQRaJO2iggABAECr019++WWbp06d6upMS5FHjBixdu1aiyBEHiAAiPJYZb0uDY8aNcrVmZ65FiAoLCx8//33BwwY4BonJCcn33HHHa5pISigZIAvK7Bv377z58+7EKmRQrESJQN8WYFu3bo1a9bMRQwAAAAAAAIEluyPZejbt6+u/qvEMbo1pSqkHDZsGAGC6AAAqPNcvUxW0/Td737XheIHP/iBBQjUuX348GFVbbuwAFCZx+LFi22eMmVKSOVUivKkp6drd77mRYsWRT1AwB/lwYMHDxw4oDNj1dFPnjz5kksucU0atENEf+JKBviyAsXFxXpqRxIU8LICFyEoAAAAAAAAKwws8R/LMKlS1OsHEhIS1BhNgCA6AADLli2zYdy4cYmJiS4UN998sxq2tXldwcy//OUvOvV0YQGwfv16nTpr0GFzqHfQ9ZDbb789NzfXntF5eXnu4kJ5efnHH3+sXLAdHntZdduXZovTmgCoxlD5gI9MlayAUuFWHxKSVq1aWTLAlxVQwU9UQicAAAAAANBAYHftogtYt27dNddcExcXR4AgCgAAOvv/29/+ZvP48ePD2Luck5OjG88WRIg8QAAQ5fn617+elpbmQnTbbbcpQGD1Vps2bcrMzHT1jMSAsgIHKmnQubJvJ71OgtU2r8PgNm3auEaOoICXFQgqKOBlBRwAAAAAACBAADh/A8G0adNcVBAgAACsWLFCG5o1qA9n9OjRLnS33HKLBQjy8/NLS0vbtWvnQgfgtdde87pAXOh69erVp0+f7du3a16+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\" />\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Centre-of-mass frame"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to simulate the decay we will use the `phasespace` package in python. Given we assume the CM frame, we set a starting the mass to $\\sqrt{s}$:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import phasespace\n",
"import numpy as np\n",
"\n",
"E1 = 6.3\n",
"E2 = 0.3\n",
"beta = (E1-E2)/(E1+E2)\n",
"gamma = 1/np.sqrt(1-beta**2)\n",
"s = (E1+E2)**2 - (E1-E2)**2\n",
"Ap_Mass = 2\n",
"photon_Mass = 0\n",
"\n",
"# here we generate two particles A' with mass Ap_Mass\n",
"# and a photon with mass = 0 \n",
"\n",
"# We generate 1,000,000 events\n",
"Ngen = 1_000_000\n",
"weights, particles = phasespace.nbody_decay(np.sqrt(s),\n",
" [Ap_Mass, photon_Mass]).generate(n_events=Ngen)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's inspect what we have made. We are returned a dictionary with keys `p_0` for the $A'$ and `p_1` for the $\\gamma$. In the dictionary these keys map to tensorflow tensors, however we will simply convert these to numpy arrays:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'p_0': <tf.Tensor: shape=(1000000, 4), dtype=float64, numpy=\n",
" array([[-0.37532898, 0.22631087, 0.47645784, 2.10216568],\n",
" [-0.30168791, 0.38343113, 0.42551792, 2.10216568],\n",
" [ 0.07943709, 0.12522052, 0.63016672, 2.10216568],\n",
" ...,\n",
" [ 0.09240029, 0.07989894, -0.63575064, 2.10216568],\n",
" [-0.35995081, -0.51702018, -0.14908413, 2.10216568],\n",
" [-0.41131191, 0.10709213, -0.48831784, 2.10216568]])>,\n",
" 'p_1': <tf.Tensor: shape=(1000000, 4), dtype=float64, numpy=\n",
" array([[ 0.37532898, -0.22631087, -0.47645784, 0.64737974],\n",
" [ 0.30168791, -0.38343113, -0.42551792, 0.64737974],\n",
" [-0.07943709, -0.12522052, -0.63016672, 0.64737974],\n",
" ...,\n",
" [-0.09240029, -0.07989894, 0.63575064, 0.64737974],\n",
" [ 0.35995081, 0.51702018, 0.14908413, 0.64737974],\n",
" [ 0.41131191, -0.10709213, 0.48831784, 0.64737974]])>}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"particles"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"# here we get the 4-momentum of the A' and the gamma as numpy arrays\n",
"p_Ap = particles['p_0'].numpy()\n",
"p_gamma = particles['p_1'].numpy()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we have converted the tensors to numpy arrays that contain the 4-momenta of all generate particles lets inspect a bit further. It is very useful to examine the shape of our data first (e.g p_Ap.shape)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1000000, 4)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_Ap.shape"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see the shape is (100000,4), in fact we have a matrix where the rows represent the particles generated (Ngen= 100000) and the columns are actually the 4-momentum components px, py, pz, E. Hence why the shape is (100000,4). Now lets have a look at the 4-momenta for $A'$ and $gamma$ for our generate events"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.37532898, 0.22631087, 0.47645784, 2.10216568],\n",
" [-0.30168791, 0.38343113, 0.42551792, 2.10216568],\n",
" [ 0.07943709, 0.12522052, 0.63016672, 2.10216568],\n",
" ...,\n",
" [ 0.09240029, 0.07989894, -0.63575064, 2.10216568],\n",
" [-0.35995081, -0.51702018, -0.14908413, 2.10216568],\n",
" [-0.41131191, 0.10709213, -0.48831784, 2.10216568]])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_Ap"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.37532898, -0.22631087, -0.47645784, 0.64737974],\n",
" [ 0.30168791, -0.38343113, -0.42551792, 0.64737974],\n",
" [-0.07943709, -0.12522052, -0.63016672, 0.64737974],\n",
" ...,\n",
" [-0.09240029, -0.07989894, 0.63575064, 0.64737974],\n",
" [ 0.35995081, 0.51702018, 0.14908413, 0.64737974],\n",
" [ 0.41131191, -0.10709213, 0.48831784, 0.64737974]])"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_gamma"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Why is the 4th component, Energy, always constant for our $\\gamma$ and $A'$?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we can use numpy slicing/indexing syntax to retrieve all generate events but either the momentum of energy components"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# 3 momentum\n",
"pvec_Ap = p_Ap[:,:3]"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1000000, 3)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pvec_Ap.shape"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.37532898, 0.22631087, 0.47645784],\n",
" [-0.30168791, 0.38343113, 0.42551792],\n",
" [ 0.07943709, 0.12522052, 0.63016672],\n",
" ...,\n",
" [ 0.09240029, 0.07989894, -0.63575064],\n",
" [-0.35995081, -0.51702018, -0.14908413],\n",
" [-0.41131191, 0.10709213, -0.48831784]])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pvec_Ap"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"E_Ap = p_Ap[:,3]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2.10216568, 2.10216568, 2.10216568, ..., 2.10216568, 2.10216568,\n",
" 2.10216568])"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"E_Ap"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How would you compute the momentum magnitude? Try in the empty cell below. \n",
"\n",
"*Hint:* you will need to square the momentum components which can be done very simply with one operation.\n",
"\n",
"Then you will need to do to use np.sum(v,axis=1) (a sum over the 3 momentum coordinates)\n",
"\n",
"Finally, you can apply np.sqrt()\n",
"\n",
"Your final result should be constant for each generated particle and the shape is (100000,1) What is your momentum magnitude?"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"# Compute your momentum magnitude here\n",
"P_Ap = np.sqrt(np.sum(pvec_Ap**2,axis=1))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.64737974, 0.64737974, 0.64737974, ..., 0.64737974, 0.64737974,\n",
" 0.64737974])"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"P_Ap"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"# Compute here the invariant mass np.sqrt() using E_Ap and P_Ap\n",
"# you should get 1.2 as expected\n",
"M_Ap = np.sqrt(E_Ap**2 - P_Ap**2)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2., 2., 2., ..., 2., 2., 2.])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M_Ap"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"px_Ap = p_Ap[:,0]\n",
"py_Ap = p_Ap[:,1]\n",
"pz_Ap = p_Ap[:,2]\n",
"E_Ap = p_Ap[:,3]"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"# Compute phi using np.arctan() of the relevant momenta\n",
"phi_Ap = np.arctan(py_Ap/px_Ap)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"# Compute theta using np.arctan\n",
"theta_Ap = np.arctan(np.sqrt(px_Ap**2 + py_Ap**2) / pz_Ap)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"# here we do a simple transform for theta so that we are in the interval 0 -> pi\n",
"theta_Ap[theta_Ap < 0 ] = theta_Ap[theta_Ap < 0 ] + np.pi"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"# Here \n",
"vals = np.linspace(0,np.pi,100)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's now plot $\\theta$ and $\\phi$ in the CM frame. Given that the decay happens according to phase space e.g isoptopic in $\\theta$ and $\\phi$ you should see $\\sin \\theta$ dependence and a uniform $\\phi$ dependence"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# here you can plot your theta\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# here we convert radians to degrees\n",
"plt.hist(theta_Ap*180/np.pi, bins=50)\n",
"plt.xlabel(r'$\\theta_{\\rm cm}$');\n",
"#plt.savefig('theta.pdf')\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Here you can plot your phi\n",
"import matplotlib.pyplot as plt\n",
"plt.hist(phi_Ap*180/np.pi, bins=50)\n",
"plt.xlabel(r'$\\phi_{\\rm cm}$');\n",
"#plt.savefig('phi.pdf')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. $e^{+} e^{-} \\rightarrow \\gamma A'$ in the Lab frame \n",
"\n",
"So far we have been studying our phase space simulation in the CM frame. Let us now boost into the CM frame.\n",
"\n",
"Note that we have a boost of $\\beta_{e^{+} e^{-}} = -0.9091$ in the $z$ direction. Also note the equations for how the momentum components change under a boost in the $z$ direction:\n",
"\\begin{align}\n",
" p^{\\rm lab}_{x} &= p^{\\rm cm}_{x} \\\\\n",
" p^{\\rm lab}_{y} &= p^{\\rm cm}_{y} \\\\\n",
" p^{\\rm lab}_{z} &= \\gamma( p^{\\rm cm}_{z} - \\beta E^{\\rm cm}) \\\\\n",
"\\end{align}"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"import phasespace\n",
"import numpy as np\n",
"\n",
"E1 = 6.3\n",
"E2 = 0.3\n",
"beta= -(E1-E2)/(E1+E2)\n",
"gamma = 1/np.sqrt(1-beta**2)\n",
"s = (E1+E2)**2 - (E1-E2)**2\n",
"Ap_Mass = 1.2\n",
"photon_Mass = 0\n",
"\n",
"# here we generate two particles A' with mass Ap_Mass\n",
"# and a photon with mass = 0 \n",
"\n",
"# We generate 1,000,000 events\n",
"Ngen = 1_000_000\n",
"weights, particles = phasespace.nbody_decay(np.sqrt(s),\n",
" [Ap_Mass, photon_Mass]).generate(n_events=Ngen)\n",
"\n",
"# here we get the 4-momentum of the A' and the gamma as numpy arrays\n",
"p_Ap = particles['p_0'].numpy()\n",
"p_gamma = particles['p_1'].numpy()\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"# Given that we have Beta and hence gamma compute p^lab_z\n",
"px_Ap = p_Ap[:,0]\n",
"py_Ap = p_Ap[:,1]\n",
"pz_Ap = p_Ap[:,2]\n",
"E_Ap = p_Ap[:,3]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"# Now boost into the lab frame\n",
"pz_Ap_lab = gamma * (pz_Ap - beta *E_Ap)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"#Now compute momentum again \n",
"P_Ap = np.sqrt(px_Ap**2 + py_Ap**2 + pz_Ap_lab**2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Is the momentum still constant?"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.hist(P_Ap, bins=50)\n",
"plt.xlabel(r'$P_{A}$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's also inspect the angular distribution in $\\theta_{\\rm lab}$. Why would $\\phi$ on the other hand be unchanged?"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"theta = np.arctan(np.sqrt(px_Ap**2+py_Ap**2)/pz_Ap_lab)\n",
"theta[theta < 0 ] = theta[theta < 0 ] + np.pi"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAENCAYAAAD6/JlzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAASgUlEQVR4nO3df6zd9V3H8efLVtwP3SijIdgWi9po2KKOXQGzxSyiUJixmGwEYqRbyGoy0PkjccWY1GzDMKNOMBOto64sc4zglOqYWNmI+geMlpExwMkNP6RNgc524FwU2d7+cT4dx8v9FHrP/dVzno/k5n6/7+/ne87nu+84r34+3+/53lQVkiTN5juWugOSpOXLkJAkdRkSkqQuQ0KS1GVISJK6DAlJUtdLhkSSHUmeTvLlodpJSXYnebj9XtXqSXJdkukkX0py5tA+m1v7h5NsHqq/Kcn9bZ/rkuRo7yFJWjwvZyTxMWDjjNpW4I6q2gDc0dYBLgA2tJ8twPUw+MAHtgFnA2cB24Y+9K8H3j2038aXeA9J0iJ5yZCoqn8CDs0obwJ2tuWdwEVD9Rtr4C7gxCSnAucDu6vqUFUdBnYDG9u211TVXTX4Vt+NM15rtveQJC2SlXPc75SqOtCWnwROactrgCeG2u1rtaPV981SP9p7HNXJJ59c69evf3lHIUkCYO/evV+tqtUz63MNiW+rqkqyoM/2eKn3SLKFwfQWp512Gnv27FnI7kjS2Eny+Gz1ud7d9FSbKqL9frrV9wPrhtqtbbWj1dfOUj/ae7xIVW2vqqmqmlq9+kVBKEmao7mGxC7gyB1Km4Fbh+qXtbuczgGeaVNGtwPnJVnVLlifB9zetj2b5Jx2V9NlM15rtveQJC2Sl5xuSvJJ4K3AyUn2MbhL6Rrg5iSXA48DF7fmtwEXAtPAN4B3AVTVoSQfAO5p7d5fVUcuhr+HwR1UrwQ+2344yntIkhZJxu1R4VNTU+U1CUk6Nkn2VtXUzLrfuJYkdRkSkqQuQ0KS1GVISJK6Rv4ynSRp8azf+plZ649d87YFeT9HEpKkLkNCktRlSEiSugwJSVKXISFJ6jIkJEldhoQkqcuQkCR1GRKSpC5DQpLUZUhIkroMCUlSlyEhSeoyJCRJXYaEJKnLkJAkdRkSkqQuQ0KS1GVISJK6DAlJUpchIUnqMiQkSV2GhCSpy5CQJHUZEpKkLkNCktRlSEiSugwJSVKXISFJ6hopJJL8WpIHknw5ySeTvCLJ6UnuTjKd5FNJTmhtv6utT7ft64de56pW/0qS84fqG1ttOsnWUfoqSTp2cw6JJGuAXwGmquoNwArgEuBDwIer6geBw8DlbZfLgcOt/uHWjiRntP1eD2wE/iTJiiQrgI8AFwBnAJe2tpKkRTLqdNNK4JVJVgKvAg4APwXc0rbvBC5qy5vaOm37uUnS6jdV1f9U1aPANHBW+5muqkeq6jngptZWkrRI5hwSVbUf+H3g3xmEwzPAXuBrVfV8a7YPWNOW1wBPtH2fb+1fN1yfsU+vLklaJKNMN61i8C/704HvBV7NYLpo0SXZkmRPkj0HDx5cii5I0lgaZbrpp4FHq+pgVf0v8GngzcCJbfoJYC2wvy3vB9YBtO2vBf5juD5jn179Rapqe1VNVdXU6tWrRzgkSdKwUULi34FzkryqXVs4F3gQ+Dzw9tZmM3BrW97V1mnbP1dV1eqXtLufTgc2AF8A7gE2tLulTmBwcXvXCP2VJB2jlS/dZHZVdXeSW4B7geeBLwLbgc8ANyX5YKvd0Ha5Afh4kmngEIMPfarqgSQ3MwiY54ErquqbAEmuBG5ncOfUjqp6YK79lSQduzmHBEBVbQO2zSg/wuDOpJlt/xt4R+d1rgaunqV+G3DbKH2UJM2d37iWJHUZEpKkLkNCktRlSEiSugwJSVKXISFJ6jIkJEldhoQkqcuQkCR1GRKSpC5DQpLUZUhIkroMCUlSlyEhSeoyJCRJXYaEJKnLkJAkdRkSkqQuQ0KS1GVISJK6DAlJUpchIUnqMiQkSV2GhCSpy5CQJHUZEpKkLkNCktRlSEiSugwJSVKXISFJ6jIkJEldhoQkqcuQkCR1GRKSpC5DQpLUNVJIJDkxyS1J/jXJQ0l+IslJSXYnebj9XtXaJsl1SaaTfCnJmUOvs7m1fzjJ5qH6m5Lc3/a5LklG6a8k6diMOpK4Fvj7qvph4EeBh4CtwB1VtQG4o60DXABsaD9bgOsBkpwEbAPOBs4Cth0Jltbm3UP7bRyxv5KkYzDnkEjyWuAngRsAquq5qvoasAnY2ZrtBC5qy5uAG2vgLuDEJKcC5wO7q+pQVR0GdgMb27bXVNVdVVXAjUOvJUlaBKOMJE4HDgJ/keSLST6a5NXAKVV1oLV5EjilLa8Bnhjaf1+rHa2+b5b6iyTZkmRPkj0HDx4c4ZAkScNGCYmVwJnA9VX1RuC/eGFqCYA2AqgR3uNlqartVTVVVVOrV69e6LeTpIkxSkjsA/ZV1d1t/RYGofFUmyqi/X66bd8PrBvaf22rHa2+dpa6JGmRzDkkqupJ4IkkP9RK5wIPAruAI3cobQZubcu7gMvaXU7nAM+0aanbgfOSrGoXrM8Dbm/bnk1yTrur6bKh15IkLYKVI+7/y8AnkpwAPAK8i0Hw3JzkcuBx4OLW9jbgQmAa+EZrS1UdSvIB4J7W7v1Vdagtvwf4GPBK4LPtR5K0SEYKiaq6D5iaZdO5s7Qt4IrO6+wAdsxS3wO8YZQ+SpLmzm9cS5K6DAlJUpchIUnqMiQkSV2GhCSpy5CQJHUZEpKkLkNCktRlSEiSugwJSVKXISFJ6jIkJEldhoQkqcuQkCR1GRKSpC5DQpLUZUhIkroMCUlSlyEhSeoyJCRJXYaEJKnLkJAkdRkSkqQuQ0KS1GVISJK6DAlJUpchIUnqMiQkSV2GhCSpy5CQJHUZEpKkLkNCktRlSEiSulYudQckSS+2futnlroLwDyMJJKsSPLFJH/X1k9PcneS6SSfSnJCq39XW59u29cPvcZVrf6VJOcP1Te22nSSraP2VZJ0bOZjuum9wEND6x8CPlxVPwgcBi5v9cuBw63+4daOJGcAlwCvBzYCf9KCZwXwEeAC4Azg0tZWkrRIRgqJJGuBtwEfbesBfgq4pTXZCVzUlje1ddr2c1v7TcBNVfU/VfUoMA2c1X6mq+qRqnoOuKm1lSQtklFHEn8E/Cbwrbb+OuBrVfV8W98HrGnLa4AnANr2Z1r7b9dn7NOrv0iSLUn2JNlz8ODBEQ9JknTEnEMiyc8CT1fV3nnsz5xU1faqmqqqqdWrVy91dyRpbIxyd9ObgZ9LciHwCuA1wLXAiUlWttHCWmB/a78fWAfsS7ISeC3wH0P1I4b36dUlSYtgziOJqrqqqtZW1XoGF54/V1W/AHweeHtrthm4tS3vauu07Z+rqmr1S9rdT6cDG4AvAPcAG9rdUie099g11/5Kko7dQnxP4n3ATUk+CHwRuKHVbwA+nmQaOMTgQ5+qeiDJzcCDwPPAFVX1TYAkVwK3AyuAHVX1wAL0V5LUMS8hUVV3Ane25UcY3Jk0s81/A+/o7H81cPUs9duA2+ajj5KkY+djOSRJXYaEJKnLkJAkdRkSkqQuQ0KS1GVISJK6DAlJUpd/dEiSltBy+eNCPY4kJEldhoQkqcuQkCR1GRKSpC5DQpLUZUhIkroMCUlSlyEhSeryy3SStAiW+5fmehxJSJK6DAlJUpchIUnqMiQkSV1euJakeXS8XqDucSQhSeoyJCRJXU43SdIcjNu0Uo8jCUlSlyEhSepyukmSjmJSppV6DAlJwjDoMSQkTRTD4NgYEpLGkmEwPwwJScueH/hLx5CQNDI/xMeXISFNsN6H+2PXvO2Y2mt8zTkkkqwDbgROAQrYXlXXJjkJ+BSwHngMuLiqDicJcC1wIfAN4J1VdW97rc3Ab7eX/mBV7Wz1NwEfA14J3Aa8t6pqrn2WxsFifFAbBjpilJHE88BvVNW9Sb4H2JtkN/BO4I6quibJVmAr8D7gAmBD+zkbuB44u4XKNmCKQdjsTbKrqg63Nu8G7mYQEhuBz47QZ2nZ8QNZy9mcQ6KqDgAH2vJ/JnkIWANsAt7amu0E7mQQEpuAG9tI4K4kJyY5tbXdXVWHAFrQbExyJ/Caqrqr1W8ELsKQ0DLnh77Gybxck0iyHngjg3/xn9ICBOBJBtNRMAiQJ4Z229dqR6vvm6UuLQuGgSbByCGR5LuBvwJ+taqeHVx6GKiqSrLg1xCSbAG2AJx22mkL/XaaMIaBJtlIIZHkOxkExCeq6tOt/FSSU6vqQJtOerrV9wPrhnZf22r7eWF66kj9zlZfO0v7F6mq7cB2gKmpKS9s66j80JdevlHubgpwA/BQVf3h0KZdwGbgmvb71qH6lUluYnDh+pkWJLcDv5tkVWt3HnBVVR1K8myScxhMY10G/PFc+6vJYxhIoxtlJPFm4BeB+5Pc12q/xSAcbk5yOfA4cHHbdhuD21+nGdwC+y6AFgYfAO5p7d5/5CI28B5euAX2s3jRWpIW1Sh3N/0LkM7mc2dpX8AVndfaAeyYpb4HeMNc+6jJ4IhBWjh+41rHDcNAWnz+ZTpJUpcjCS0rjhak5cWQ0JIwDKTjgyGhBWUYSMc3r0lIkrocSWheOGKQxpMjCUlSlyMJHRNHDNJkcSQhSepyJKFZOWKQBI4kJElH4UhiwjlikHQ0jiQkSV2OJCaEIwZJc+FIQpLU5UhizDhikDSfHElIkroMCUlSl9NNxymnlSQtBkcSkqQuRxLLnCMGSUvJkYQkqcuRxDLgaEHScuVIQpLUZUhIkrqcblpETitJOt44kpAkdRkSkqQup5sWgNNKksaFIwlJUpcjiRE4YpA07hxJSJK6DAlJUpfTTS+D00qSJtWyH0kk2ZjkK0mmk2xd6v5I0iRZ1iGRZAXwEeAC4Azg0iRnLG2vJGlyLPfpprOA6ap6BCDJTcAm4MGFeDOnlSTp/1vuIbEGeGJofR9w9sxGSbYAW9rq15N8ZY7vdzLw1TnuezyatOOFyTvmSTtemNBjzodGPubvm6243EPiZamq7cD2UV8nyZ6qmpqHLh0XJu14YfKOedKOFzzm+basr0kA+4F1Q+trW02StAiWe0jcA2xIcnqSE4BLgF1L3CdJmhjLerqpqp5PciVwO7AC2FFVDyzgW448ZXWcmbTjhck75kk7XvCY51WqaqFeW5J0nFvu002SpCVkSEiSugwJJvPRH0keS3J/kvuS7Fnq/iyEJDuSPJ3ky0O1k5LsTvJw+71qKfs4nzrH+ztJ9rfzfF+SC5eyj/Mpybokn0/yYJIHkry31cf5HPeOecHO88Rfk2iP/vg34GcYfFnvHuDSqlqQb3UvF0keA6aqamy/dJTkJ4GvAzdW1Rta7feAQ1V1TfsHwaqqet9S9nO+dI73d4CvV9XvL2XfFkKSU4FTq+reJN8D7AUuAt7J+J7j3jFfzAKdZ0cSQ4/+qKrngCOP/tBxrqr+CTg0o7wJ2NmWdzL4D2wsdI53bFXVgaq6ty3/J/AQg6c0jPM57h3zgjEkZn/0x4L+j75MFPAPSfa2x5pMilOq6kBbfhI4ZSk7s0iuTPKlNh01NlMvw5KsB94I3M2EnOMZxwwLdJ4Nicn1lqo6k8ETdq9oUxUTpQZzreM+33o98APAjwEHgD9Y2u7MvyTfDfwV8KtV9ezwtnE9x7Mc84KdZ0NiQh/9UVX72++ngb9mMO02CZ5q87pH5nefXuL+LKiqeqqqvllV3wL+nDE7z0m+k8GH5Seq6tOtPNbneLZjXsjzbEhM4KM/kry6XfQiyauB84AvH32vsbEL2NyWNwO3LmFfFtyRD8vm5xmj85wkwA3AQ1X1h0ObxvYc9455Ic/zxN/dBNBuF/sjXnj0x9VL3KUFleT7GYweYPBolr8cx2NO8kngrQweHf0UsA34G+Bm4DTgceDiqhqLi72d430rgymIAh4Dfmlovv64luQtwD8D9wPfauXfYjBHP67nuHfMl7JA59mQkCR1Od0kSeoyJCRJXYaEJKnLkJAkdRkSkqQuQ0KS1GVISPMoyYok17bHON/fvpMiHbcMCWl+XQU8UlWvB64D3rPE/ZFGsnKpOyCNi/aIk5+vqje10qPA25awS9LIDAlp/vw0sC7JfW39JOAfl7A/0sh8LIc0T5JsA56qqj9t6x8FvgQ8C3y1qv5uRvt3zlaXlhOvSUjzZxXwDYAkKxk8Xfdvj2xM8vokv5vkhiQ/0cqXJvmDJGPx5zU1fgwJaf78G3BOW/414DNV9ejQ9ueAVzB4Qusvtto/VNVvAD+exP8etez4f0pp/nwSODPJNPAjwK/P2P4rDB5J/2fAq2Zsc95Xy5IXrqV5UlWHeWEkMZvPA+9jMJI44vwkPwrsaX9VTFpWvHAtSepyukmS1GVISJK6DAlJUpchIUnqMiQkSV2GhCSpy5CQJHUZEpKkLkNCktT1f3gziw8putonAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.hist(theta*180/np.pi, bins=50)\n",
"plt.xlabel(r'$\\theta_{\\rm lab}$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is the probability that the particle has a $\\theta_{\\rm}$ within the long baseline detectors acceptance ($0 < \\theta_{\\rm lab} < 15^{\\circ}$).\n",
"\n",
"Now repeat this for a different mass hypthesis of the $A'$. Try repeat this calculation for $M_{A'} = 1.4$ and $M_{A'} = 1.2$"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.418931"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#more formally using the MC method we can compute this as\n",
"\n",
"len(theta[theta*180/np.pi < 15]) / len(theta)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Simulating the decay flight of $A'$\n",
"\n",
"In this third part we will look at simulating the decay flight of the $A'$ to understand if the $A'$ would decay in the detector volume. Let's take the case where $M_{A'} = 1.2$ GeV as you will also perform this calculation for this mass analytically in the homework"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"import phasespace\n",
"import numpy as np\n",
"\n",
"E1 = 6.3\n",
"E2 = 0.3\n",
"beta= -(E1-E2)/(E1+E2)\n",
"gamma = 1/np.sqrt(1-beta**2)\n",
"s= (E1+E2)**2 - (E1-E2)**2\n",
"Ap_Mass = 1.2\n",
"photon_Mass = 0\n",
"\n",
"# here we generate two particles A' with mass Ap_Mass\n",
"# and a photon with mass = 0 \n",
"\n",
"# We generate 1,000,000 events\n",
"Ngen = 1_000_000\n",
"weights, particles = phasespace.nbody_decay(np.sqrt(s),\n",
" [Ap_Mass, photon_Mass]).generate(n_events=Ngen)\n",
"\n",
"\n",
"# here we get the 4-momentum of the A' and the gamma as numpy arrays\n",
"p_Ap = particles['p_0'].numpy()\n",
"p_gamma = particles['p_1'].numpy()\n",
"\n",
"# Given that we have Beta and hence gamma compute p^lab_\n",
"px_Ap = p_Ap[:,0]\n",
"py_Ap = p_Ap[:,1]\n",
"pz_Ap = p_Ap[:,2]\n",
"E_Ap = p_Ap[:,3]\n",
"\n",
"# Now boost into the lab frame\n",
"pz_Ap_lab = gamma * (pz_Ap - beta*E_Ap)\n",
"\n",
"#Now compute momentum again \n",
"P_Ap_lab = np.sqrt(px_Ap**2 + py_Ap**2 + pz_Ap_lab**2)\n",
"\n",
"# energy is \n",
"E_Ap_lab = np.sqrt(Ap_Mass**2 + P_Ap_lab**2)\n",
"\n",
"# theta lab\n",
"theta_Ap_lab = np.arctan(np.sqrt(px_Ap**2+py_Ap**2)/pz_Ap_lab)\n",
"theta_Ap_lab[theta_Ap_lab < 0 ] = theta_Ap_lab[theta_Ap_lab < 0 ] + np.pi"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"# Given the angular acceptance we will select momentum values where theta iswithin the detecor acceptance\n",
"Psel = P_Ap_lab[theta_Ap_lab*180/np.pi < 15]\n",
"Esel = np.sqrt(Ap_Mass**2 + Psel**2)\n",
"# we compute the correspoding beta and gamma\n",
"beta = Psel / Esel\n",
"gamma = 1/np.sqrt(1-beta**2)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.419796"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We see the probability of this angular acceptance from before\n",
"len(Psel) / len(P_Ap_lab)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.095980556481348\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Lets again plot P_Ap_lab\n",
"import matplotlib.pyplot as plt\n",
"plt.hist(Psel, bins=50)\n",
"plt.xlabel(r'$P_{A}$');\n",
"\n",
"# We can also you compute the average momentum\n",
"print(np.mean(Psel))\n",
"# In the analytical computation of the homework this value will be used of roughly 5.1 GeV/c"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the homework you will derive the following formula for the the probability the decay happens between to values of $r$:\n",
"\\begin{equation}\n",
" P(r_{1} < r_{\\rm decay} < r_{2}) = e^{-r_{1} / (\\beta \\gamma c\\tau )} - e^{-r_{2} / (\\beta \\gamma c\\tau )} \n",
"\\end{equation}\n",
"\n",
"where here $\\tau$ is the lifetime. \n",
"\n",
"With this and the accept reject method we can run a small simulation to find the probability that decays end up within the detector volumen $5<r<45$ (remember we have already selection the $P$ values in the required angular range.\n",
"\n",
"We will actually do this for the value of $c \\tau$ that roughly maximises the probability that the decay hapens in the detector volume this can be found by differentiating the expression above and is a question in the homework. The value will be roughly $c\\tau = 4.29\\,\\text{m}$. This is approximate as the homework will assume the average $P^{\\rm lab}_{A'}$ value.\n",
"\n",
"To simulate the decays we compute the probability, $ P(5< r_{\\rm decay} < 45)$, for each generated $A'$ decays in the $5<r<45$ based on the $\\beta$ and $\\gamma$ values and the $r$ interval. Now we generate a random uniform number, $u$, where $0 < u < 1$. When $ u < P(5< r_{\\rm decay} < 45)$ we accept the event."
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6579433820236495\n"
]
}
],
"source": [
"ctau = 4.283\n",
"r1 = 5\n",
"r2 = 45\n",
"prob_decay = np.exp(-r1/(beta*gamma*ctau)) - np.exp(-r2/(beta*gamma*ctau))\n",
"u = np.random.uniform(0,1,len(Psel))\n",
"print(len(Psel[u<prob_decay]) / len(Psel))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.276202\n"
]
}
],
"source": [
"# The total efficiency is now found to be:\n",
"print(len(Psel[u<prob_decay]) / len(P_Ap_lab))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is slightly lower than the value in the homework as we don't have a fixed momentum."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6756758044383463\n"
]
}
],
"source": [
"# HW calculaton but using toys\n",
"betahw = 5.1/np.sqrt(5.1**2+1.2**2)\n",
"gammahw = 1/np.sqrt(1-betahw**2)\n",
"\n",
"prob_decay = np.exp(-r1/(betahw*gammahw*ctau)) - np.exp(-r2/(betahw*gammahw*ctau))\n",
"u = np.random.uniform(0, 1, len(Psel))\n",
"print(len(Psel[u<prob_decay]) / len(Psel))"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.283646\n"
]
}
],
"source": [
"# The total efficiency is now found to be:\n",
"print(len(Psel[u<prob_decay]) / len(P_Ap_lab))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also use our toy decay simulation approach to get the probability $P(5< r_{\\rm decay} < 45)$ as a function of $c\\tau$"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"taus = np.linspace(0.1, 10, 100)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"r1 = 10\n",
"r2 = 40\n",
"\n",
"P = []\n",
"for tau in taus:\n",
" prob_decay = np.exp(-r1/(beta*gamma*tau)) - np.exp(-r2/(beta*gamma*tau))\n",
" k = np.random.uniform(0, 1, len(Psel))\n",
" P.append(len(Psel[k<prob_decay]) / len(Psel))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(taus,P)\n",
"plt.ylabel(r'$P(5< r_{\\rm decay} < 45)$')\n",
"plt.xlabel(r'$c \\tau$');"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "3.7.6 (Framework)",
"language": "python",
"name": "3.7.6-framework"
},
"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.7.6"
},
"toc-autonumbering": false,
"toc-showcode": false,
"toc-showmarkdowntxt": false,
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 4
}
@r4lv
Copy link
Author

r4lv commented May 24, 2020

Binder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment