Skip to content

Instantly share code, notes, and snippets.

@r4lv
Last active May 25, 2020 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save r4lv/904beb65641d0662d598acad9cc7464e to your computer and use it in GitHub Desktop.
Save r4lv/904beb65641d0662d598acad9cc7464e to your computer and use it in GitHub Desktop.
Sheet 3 - Class Demo (empty)
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": 3,
"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(\n",
" np.sqrt(s),\n",
" [Ap_Mass, photon_Mass]\n",
").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": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'p_0': <tf.Tensor: shape=(1000000, 4), dtype=float64, numpy=\n",
" array([[-0.20166105, 0.44953769, -0.41993954, 2.10216568],\n",
" [-0.28557604, -0.04906947, -0.57891195, 2.10216568],\n",
" [-0.36529661, -0.50665934, 0.17016235, 2.10216568],\n",
" ...,\n",
" [-0.20418927, -0.35987075, 0.49789588, 2.10216568],\n",
" [-0.61410058, -0.17815279, 0.10120567, 2.10216568],\n",
" [-0.23312916, -0.59497121, 0.10373321, 2.10216568]])>,\n",
" 'p_1': <tf.Tensor: shape=(1000000, 4), dtype=float64, numpy=\n",
" array([[ 0.20166105, -0.44953769, 0.41993954, 0.64737974],\n",
" [ 0.28557604, 0.04906947, 0.57891195, 0.64737974],\n",
" [ 0.36529661, 0.50665934, -0.17016235, 0.64737974],\n",
" ...,\n",
" [ 0.20418927, 0.35987075, -0.49789588, 0.64737974],\n",
" [ 0.61410058, 0.17815279, -0.10120567, 0.64737974],\n",
" [ 0.23312916, 0.59497121, -0.10373321, 0.64737974]])>}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"particles"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1000000, 4)"
]
},
"execution_count": 6,
"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": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.20166105, 0.44953769, -0.41993954, 2.10216568],\n",
" [-0.28557604, -0.04906947, -0.57891195, 2.10216568],\n",
" [-0.36529661, -0.50665934, 0.17016235, 2.10216568],\n",
" ...,\n",
" [-0.20418927, -0.35987075, 0.49789588, 2.10216568],\n",
" [-0.61410058, -0.17815279, 0.10120567, 2.10216568],\n",
" [-0.23312916, -0.59497121, 0.10373321, 2.10216568]])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_Ap"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 0.20166105, -0.44953769, 0.41993954, 0.64737974],\n",
" [ 0.28557604, 0.04906947, 0.57891195, 0.64737974],\n",
" [ 0.36529661, 0.50665934, -0.17016235, 0.64737974],\n",
" ...,\n",
" [ 0.20418927, 0.35987075, -0.49789588, 0.64737974],\n",
" [ 0.61410058, 0.17815279, -0.10120567, 0.64737974],\n",
" [ 0.23312916, 0.59497121, -0.10373321, 0.64737974]])"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_gamma"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &rarr; 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": 27,
"metadata": {},
"outputs": [],
"source": [
"# 3 momentum\n",
"pvec_Ap = p_Ap[: , :3]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1000000, 3)"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pvec_Ap.shape"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-0.20166105, 0.44953769, -0.41993954],\n",
" [-0.28557604, -0.04906947, -0.57891195],\n",
" [-0.36529661, -0.50665934, 0.17016235],\n",
" ...,\n",
" [-0.20418927, -0.35987075, 0.49789588],\n",
" [-0.61410058, -0.17815279, 0.10120567],\n",
" [-0.23312916, -0.59497121, 0.10373321]])"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pvec_Ap"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"E_Ap = p_Ap[: , 2]"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2.10216568, 2.10216568, 2.10216568, ..., 2.10216568, 2.10216568,\n",
" 2.10216568])"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"E_Ap"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &rarr; How would you compute the momentum magnitude?\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": 34,
"metadata": {},
"outputs": [],
"source": [
"# Compute your momentum magnitude here\n",
"P_Ap = ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.64737974, 0.64737974, 0.64737974, ..., 0.64737974, 0.64737974,\n",
" 0.64737974])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"P_Ap"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &rarr; Compute the invariant mass using E_Ap and P_Ap"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"# Compute here the invariant mass using E_Ap and P_Ap\n",
"M_Ap = ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([2., 2., 2., ..., 2., 2., 2.])"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"M_Ap"
]
},
{
"cell_type": "code",
"execution_count": 38,
"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": "markdown",
"metadata": {},
"source": [
"### &rarr; Compute phi using np.arctan() of the relevant momenta\n",
"\n",
"### &rarr; Compute theta using np.arctan"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [],
"source": [
"# Compute phi using np.arctan() of the relevant momenta\n",
"phi_Ap = ..."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"# Compute theta using np.arctan\n",
"theta_Ap = ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-0.84278099, 0.453094 , -0.34763959, ..., -0.13313967,\n",
" 0.44634645, 1.17749926])"
]
},
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"phi_Ap"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-1.41185037, -1.28066406, 1.46044395, ..., 1.00415133,\n",
" -0.5524766 , 1.55378453])"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"theta_Ap"
]
},
{
"cell_type": "code",
"execution_count": 45,
"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": 46,
"metadata": {},
"outputs": [],
"source": [
"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": 47,
"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": 48,
"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": 49,
"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()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"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": 51,
"metadata": {},
"outputs": [],
"source": [
"# Now boost into the lab frame\n",
"pz_Ap_lab = gamma * (pz_Ap - beta *E_Ap)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"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": 53,
"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": 54,
"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": 55,
"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(theta*180/np.pi, bins=50)\n",
"plt.xlabel(r'$\\theta_{\\rm lab}$');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### &rarr; What is the probability that the particle has a $\\theta_{\\rm}$ within the long baseline detectors acceptance ($0 < \\theta_{\\rm lab} < 15^{\\circ}$)?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"probab = ..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.419725"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"probab"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now repeat this for a different mass hypthesis of the $A'$. Try to repeat this calculation for $M_{A'} = 1.4$ and $M_{A'} = 1.2$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<br><br><br><br><br><br><br><br><br><br><br><br><br><br>"
]
},
{
"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": 63,
"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": 64,
"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": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.418797"
]
},
"execution_count": 65,
"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": 66,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5.0931424906417035\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": 67,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6572945842496484\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": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.275273\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": 69,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.6735124654665625\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": 70,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.282065\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": 71,
"metadata": {},
"outputs": [],
"source": [
"taus = np.linspace(0.1, 10, 100)"
]
},
{
"cell_type": "code",
"execution_count": 72,
"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": 73,
"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": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": true,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": true
},
"toc-autonumbering": false,
"toc-showcode": false,
"toc-showmarkdowntxt": false,
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment