Skip to content

Instantly share code, notes, and snippets.

@paulromano
Created October 24, 2023 01:30
Show Gist options
  • Save paulromano/14e0d15b5cbba97d837715470100d377 to your computer and use it in GitHub Desktop.
Save paulromano/14e0d15b5cbba97d837715470100d377 to your computer and use it in GitHub Desktop.
Example of looking at scattering angle distribution
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "710dcf1b",
"metadata": {},
"outputs": [],
"source": [
"import openmc\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d4d3c115",
"metadata": {},
"outputs": [],
"source": [
"zr90 = openmc.data.IncidentNeutron.from_hdf5('/opt/data/hdf5/nndc_hdf5_v15/Zr90.h5')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "07b5ce94",
"metadata": {},
"outputs": [],
"source": [
"elastic = zr90[2]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ca99929f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<Product: neutron, emission=prompt, yield=polynomial>]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"elastic.products"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "da0d306c",
"metadata": {},
"outputs": [],
"source": [
"outgoing_neutron = elastic.products[0]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "adc73625",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<openmc.data.uncorrelated.UncorrelatedAngleEnergy at 0x151fadf5bd90>]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outgoing_neutron.distribution"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ce4b0eb6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<openmc.data.angle_distribution.AngleDistribution at 0x151fadf5be20>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outgoing_neutron.distribution[0].angle"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "8253a427",
"metadata": {},
"outputs": [],
"source": [
"angle_dist = outgoing_neutron.distribution[0].angle"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "26303d97",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(0,\n",
" (9.999999999999999e-06,\n",
" <openmc.stats.univariate.Tabular at 0x151fadf5bdf0>)),\n",
" (1, (1.0, <openmc.stats.univariate.Tabular at 0x151fadf5ba60>)),\n",
" (2, (3.0, <openmc.stats.univariate.Tabular at 0x151fadf5bc70>)),\n",
" (3, (10.0, <openmc.stats.univariate.Tabular at 0x151fadf5be80>)),\n",
" (4, (30.0, <openmc.stats.univariate.Tabular at 0x151fadf5b7f0>)),\n",
" (5, (100.0, <openmc.stats.univariate.Tabular at 0x151fadf5bfa0>)),\n",
" (6, (300.0, <openmc.stats.univariate.Tabular at 0x151fadf7c370>)),\n",
" (7, (1000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c070>)),\n",
" (8, (2000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c0d0>)),\n",
" (9, (3000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c130>)),\n",
" (10, (5000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c190>)),\n",
" (11, (8000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c1f0>)),\n",
" (12, (10000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c250>)),\n",
" (13, (15000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c2b0>)),\n",
" (14, (20000.0, <openmc.stats.univariate.Tabular at 0x151fadf7c310>)),\n",
" (15, (25000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d690>)),\n",
" (16, (30000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d6f0>)),\n",
" (17, (50000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d750>)),\n",
" (18, (80000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d7b0>)),\n",
" (19, (100000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d810>)),\n",
" (20, (150000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d870>)),\n",
" (21, (200000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d8d0>)),\n",
" (22, (250000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d930>)),\n",
" (23, (300000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d990>)),\n",
" (24, (500000.0, <openmc.stats.univariate.Tabular at 0x151fadf7d9f0>)),\n",
" (25, (700000.0, <openmc.stats.univariate.Tabular at 0x151fadf7da50>)),\n",
" (26, (800000.0, <openmc.stats.univariate.Tabular at 0x151fadf7dab0>)),\n",
" (27, (900000.0, <openmc.stats.univariate.Tabular at 0x151fadf7db10>)),\n",
" (28, (1000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7db70>)),\n",
" (29, (1250000.0, <openmc.stats.univariate.Tabular at 0x151fadf7dbd0>)),\n",
" (30, (1500000.0, <openmc.stats.univariate.Tabular at 0x151fadf7dc30>)),\n",
" (31, (1750000.0, <openmc.stats.univariate.Tabular at 0x151fadf7dc90>)),\n",
" (32, (1780450.0, <openmc.stats.univariate.Tabular at 0x151fadf7dcf0>)),\n",
" (33, (2000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7dd50>)),\n",
" (34, (2211030.0, <openmc.stats.univariate.Tabular at 0x151fadf7ddb0>)),\n",
" (35, (2345120.0, <openmc.stats.univariate.Tabular at 0x151fadf7de10>)),\n",
" (36, (2769530.0, <openmc.stats.univariate.Tabular at 0x151fadf7de70>)),\n",
" (37, (2778730.0, <openmc.stats.univariate.Tabular at 0x151fadf7ded0>)),\n",
" (38, (3000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7df30>)),\n",
" (39, (3111720.0, <openmc.stats.univariate.Tabular at 0x151fadf7df90>)),\n",
" (40, (3345820.0, <openmc.stats.univariate.Tabular at 0x151fadf7dff0>)),\n",
" (41, (3486990.0, <openmc.stats.univariate.Tabular at 0x151fadf7e050>)),\n",
" (42, (3629670.0, <openmc.stats.univariate.Tabular at 0x151fadf7e0b0>)),\n",
" (43, (3886120.0, <openmc.stats.univariate.Tabular at 0x151fadf7e110>)),\n",
" (44, (4000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e170>)),\n",
" (45,\n",
" (4020609.9999999995, <openmc.stats.univariate.Tabular at 0x151fadf7e1d0>)),\n",
" (46,\n",
" (4171280.0000000005, <openmc.stats.univariate.Tabular at 0x151fadf7e230>)),\n",
" (47, (4279880.0, <openmc.stats.univariate.Tabular at 0x151fadf7e290>)),\n",
" (48, (4285550.0, <openmc.stats.univariate.Tabular at 0x151fadf7e2f0>)),\n",
" (49, (4328020.0, <openmc.stats.univariate.Tabular at 0x151fadf7e350>)),\n",
" (50, (5000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e3b0>)),\n",
" (51, (6000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e410>)),\n",
" (52, (7000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e470>)),\n",
" (53, (8000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e500>)),\n",
" (54, (9000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e560>)),\n",
" (55, (10000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e5c0>)),\n",
" (56, (11000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e620>)),\n",
" (57, (12000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e680>)),\n",
" (58, (13000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e6e0>)),\n",
" (59, (14000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e740>)),\n",
" (60, (15000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e7a0>)),\n",
" (61, (16000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e800>)),\n",
" (62, (17000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e860>)),\n",
" (63, (18000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e8c0>)),\n",
" (64, (19000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e920>)),\n",
" (65, (20000000.0, <openmc.stats.univariate.Tabular at 0x151fadf7e980>))]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(enumerate(zip(angle_dist.energy, angle_dist.mu)))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "2342ecb3",
"metadata": {},
"outputs": [],
"source": [
"# Distribution at 1 eV\n",
"mu = angle_dist.mu[1]"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "d436417a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x151fa594ecb0>]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAlzElEQVR4nO3df1DU54HH8c+CskjighYFEcQYDcZqxGIgMElIL4yaelGnd1NNM0I8g+ldftQjSSO9E6ppB1M969TaaD2RdtKrNh1TnWtCO+HM3dkQbURaosaCFcQoq0bdRUz8wT73R45NtvyQRX48bt6vme+MfPf5fvd5+Lrue5ZddBhjjAAAACwWNtATAAAAuB6CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1Bg30BHqDz+fTyZMnNXToUDkcjoGeDgAA6AZjjJqbm5WQkKCwsK5fQwmJYDl58qSSkpIGehoAAKAHGhsblZiY2OWYkAiWoUOHSvpkwS6Xa4BnAwAAusPr9SopKcn/PN6VkAiWth8DuVwuggUAgJtMd97OwZtuAQCA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFivR8GyYcMGjR07VpGRkcrIyNC+ffs6HVtWViaHwxGwRUZG+m+/evWqXnjhBU2ZMkW33HKLEhISlJubq5MnT/ZkagAAIAQFHSzbt29XQUGBiouLVVVVpalTp2rmzJk6ffp0p8e4XC6dOnXKvzU0NPhvu3TpkqqqqrR8+XJVVVVpx44dOnLkiObMmdOzFQEAgJDjMMaYYA7IyMjQ3XffrR/96EeSJJ/Pp6SkJD399NNatmxZu/FlZWVaunSpLly40O37+MMf/qD09HQ1NDRozJgx1x3v9XoVHR0tj8cjl8vV7fsBAAADJ5jn76BeYbly5Yr279+vnJycT08QFqacnBxVVlZ2etzFixeVnJyspKQkzZ07VwcPHuzyfjwejxwOh2JiYjq8/fLly/J6vQEbAAAIXUEFy9mzZ9Xa2qq4uLiA/XFxcWpqaurwmJSUFJWWlmrnzp165ZVX5PP5lJWVpRMnTnQ4/uOPP9YLL7ygRx55pNPaKikpUXR0tH9LSkoKZhkAAOAm0+efEsrMzFRubq5SU1OVnZ2tHTt2aMSIEdq0aVO7sVevXtXXvvY1GWP08ssvd3rOwsJCeTwe/9bY2NiXSwAAAANsUDCDY2NjFR4eLrfbHbDf7XYrPj6+W+cYPHiwpk2bprq6uoD9bbHS0NCg//qv/+ryZ1lOp1NOpzOYqQMAgJtYUK+wREREKC0tTRUVFf59Pp9PFRUVyszM7NY5WltbVVNTo1GjRvn3tcVKbW2t3nzzTX3hC18IZloAACDEBfUKiyQVFBQoLy9P06dPV3p6utatW6eWlhYtWrRIkpSbm6vRo0erpKREkrRy5Urdc889Gj9+vC5cuKDVq1eroaFBjz/+uKRPYuXv//7vVVVVpf/8z/9Ua2ur//0ww4cPV0RERG+tFQAA3KSCDpb58+frzJkzKioqUlNTk1JTU1VeXu5/I+7x48cVFvbpCzfnz59Xfn6+mpqaNGzYMKWlpentt9/WpEmTJEkffPCBdu3aJUlKTU0NuK/du3frgQce6OHSAABAqAj697DYiN/DAgDAzafPfg8LAADAQCBYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFivR8GyYcMGjR07VpGRkcrIyNC+ffs6HVtWViaHwxGwRUZGBozZsWOHZsyYoS984QtyOByqrq7uybQAAECICjpYtm/froKCAhUXF6uqqkpTp07VzJkzdfr06U6PcblcOnXqlH9raGgIuL2lpUX33nuvXnrppeBXAAAAQt6gYA9Yu3at8vPztWjRIknSxo0b9Zvf/EalpaVatmxZh8c4HA7Fx8d3es6FCxdKkurr64OdDgAA+BwI6hWWK1euaP/+/crJyfn0BGFhysnJUWVlZafHXbx4UcnJyUpKStLcuXN18ODBns9Y0uXLl+X1egM2AAAQuoIKlrNnz6q1tVVxcXEB++Pi4tTU1NThMSkpKSotLdXOnTv1yiuvyOfzKSsrSydOnOjxpEtKShQdHe3fkpKSenwuAABgvz7/lFBmZqZyc3OVmpqq7Oxs7dixQyNGjNCmTZt6fM7CwkJ5PB7/1tjY2IszBgAAtgnqPSyxsbEKDw+X2+0O2O92u7t8j8pnDR48WNOmTVNdXV0wdx3A6XTK6XT2+HgAAHBzCeoVloiICKWlpamiosK/z+fzqaKiQpmZmd06R2trq2pqajRq1KjgZgoAAD63gv6UUEFBgfLy8jR9+nSlp6dr3bp1amlp8X9qKDc3V6NHj1ZJSYkkaeXKlbrnnns0fvx4XbhwQatXr1ZDQ4Mef/xx/znPnTun48eP6+TJk5KkI0eOSJLi4+O7/coNAAAIXUEHy/z583XmzBkVFRWpqalJqampKi8v978R9/jx4woL+/SFm/Pnzys/P19NTU0aNmyY0tLS9Pbbb2vSpEn+Mbt27fIHjyQtWLBAklRcXKzvfOc7PV0bAAAIEQ5jjBnoSdwor9er6OhoeTweuVyugZ4OAADohmCev/m/hAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADWI1gAAID1CBYAAGA9ggUAAFiPYAEAANYjWAAAgPUIFgAAYD2CBQAAWI9gAQAA1iNYAACA9QgWAABgPYIFAABYj2ABAADW61GwbNiwQWPHjlVkZKQyMjK0b9++TseWlZXJ4XAEbJGRkQFjjDEqKirSqFGjNGTIEOXk5Ki2trYnUwMAACEo6GDZvn27CgoKVFxcrKqqKk2dOlUzZ87U6dOnOz3G5XLp1KlT/q2hoSHg9u9///v64Q9/qI0bN2rv3r265ZZbNHPmTH388cfBr6iXnThxQrt379aJEycGeirA5xKPQWDg2fA4dBhjTDAHZGRk6O6779aPfvQjSZLP51NSUpKefvppLVu2rN34srIyLV26VBcuXOjwfMYYJSQk6Nlnn9Vzzz0nSfJ4PIqLi1NZWZkWLFhw3Tl5vV5FR0fL4/HI5XIFs5wu/fu//7ueeOIJ+Xw+hYWFaf369crLy+u18wPo2k9/+lM9/fTTPAaBAfTXj8Of/OQnWrx4ca+cO6jnbxOEy5cvm/DwcPPaa68F7M/NzTVz5szp8JitW7ea8PBwM2bMGJOYmGjmzJlj3nvvPf/tR48eNZLMgQMHAo67//77zTPPPNPhOT/++GPj8Xj8W2Njo5FkPB5PMMvpUmNjowkLCzOS2NjY2NjY2P5/Cw8PN42Njb3yXOvxeIzUvefvoH4kdPbsWbW2tiouLi5gf1xcnJqamjo8JiUlRaWlpdq5c6deeeUV+Xw+ZWVl+V9WajsumHOWlJQoOjravyUlJQWzjG6pra2Vz+fr9fMCAHAza21tVV1dXb/f76C+voPMzExlZmb6v87KytKdd96pTZs26cUXX+zROQsLC1VQUOD/2uv19nq0TJgwQWFhYQHREh4erkOHDmn06NG9el8A2vvggw9055138hgEBlBnj8Px48f3+1yCCpbY2FiFh4fL7XYH7He73YqPj+/WOQYPHqxp06b566ztOLfbrVGjRgWcMzU1tcNzOJ1OOZ3OYKYetMTERP3kJz/RE088odbWVoWHh2vTpk264447+vR+AXzijjvu4DEIDLDOHoeJiYn9PpegfiQUERGhtLQ0VVRU+Pf5fD5VVFQEvIrSldbWVtXU1Pjj5LbbblN8fHzAOb1er/bu3dvtc/aVxYsXq76+Xrt371Z9fX2vvckIQPfwGAQGni2Pw6B/JFRQUKC8vDxNnz5d6enpWrdunVpaWrRo0SJJUm5urkaPHq2SkhJJ0sqVK3XPPfdo/PjxunDhglavXq2GhgY9/vjjkiSHw6GlS5fqu9/9riZMmKDbbrtNy5cvV0JCgubNm9d7K+2hxMTEASlJAJ/gMQgMPBseh0EHy/z583XmzBkVFRWpqalJqampKi8v979p9vjx4woL+/SFm/Pnzys/P19NTU0aNmyY0tLS9Pbbb2vSpEn+Md/61rfU0tKiJUuW6MKFC7r33ntVXl7e7hfMAQCAz6egfw+Ljfrq97AAAIC+E8zzN/+XEAAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6PQqWDRs2aOzYsYqMjFRGRob27dvXreO2bdsmh8OhefPmBex3u9167LHHlJCQoKioKM2aNUu1tbU9mRoAAAhBQQfL9u3bVVBQoOLiYlVVVWnq1KmaOXOmTp8+3eVx9fX1eu6553TfffcF7DfGaN68efrLX/6inTt36sCBA0pOTlZOTo5aWlqCnR4AAAhBQQfL2rVrlZ+fr0WLFmnSpEnauHGjoqKiVFpa2ukxra2tevTRR7VixQqNGzcu4Lba2lq98847evnll3X33XcrJSVFL7/8sj766CP94he/CH5FAAAg5AQVLFeuXNH+/fuVk5Pz6QnCwpSTk6PKyspOj1u5cqVGjhypxYsXt7vt8uXLkqTIyMiAczqdTu3ZsyeY6QEAgBAVVLCcPXtWra2tiouLC9gfFxenpqamDo/Zs2ePtmzZos2bN3d4+8SJEzVmzBgVFhbq/PnzunLlil566SWdOHFCp06d6vCYy5cvy+v1BmwAACB09emnhJqbm7Vw4UJt3rxZsbGxHY4ZPHiwduzYoT//+c8aPny4oqKitHv3bj300EMKC+t4eiUlJYqOjvZvSUlJfbkMAAAwwAYFMzg2Nlbh4eFyu90B+91ut+Lj49uNP3r0qOrr6/Xwww/79/l8vk/ueNAgHTlyRLfffrvS0tJUXV0tj8ejK1euaMSIEcrIyND06dM7nEdhYaEKCgr8X3u9XqIFAIAQFtQrLBEREUpLS1NFRYV/n8/nU0VFhTIzM9uNnzhxompqalRdXe3f5syZoy9/+cuqrq5uFxnR0dEaMWKEamtr9e6772ru3LkdzsPpdMrlcgVsAAAgdAX1CoskFRQUKC8vT9OnT1d6errWrVunlpYWLVq0SJKUm5ur0aNHq6SkRJGRkZo8eXLA8TExMZIUsP/VV1/ViBEjNGbMGNXU1Oib3/ym5s2bpxkzZtzA0gAAQKgIOljmz5+vM2fOqKioSE1NTUpNTVV5ebn/jbjHjx/v9L0nnTl16pQKCgrkdrs1atQo5ebmavny5cFODQAAhCiHMcYM9CRulNfrVXR0tDweDz8eAgDgJhHM8zf/lxAAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwXo+CZcOGDRo7dqwiIyOVkZGhffv2deu4bdu2yeFwaN68eQH7L168qKeeekqJiYkaMmSIJk2apI0bN/ZkagAAIAQFHSzbt29XQUGBiouLVVVVpalTp2rmzJk6ffp0l8fV19frueee03333dfutoKCApWXl+uVV17R4cOHtXTpUj311FPatWtXsNMDAAAhKOhgWbt2rfLz87Vo0SL/KyFRUVEqLS3t9JjW1lY9+uijWrFihcaNG9fu9rffflt5eXl64IEHNHbsWC1ZskRTp07t9is3AAAgtAUVLFeuXNH+/fuVk5Pz6QnCwpSTk6PKyspOj1u5cqVGjhypxYsXd3h7VlaWdu3apQ8++EDGGO3evVt//vOfNWPGjA7HX758WV6vN2ADAACha1Awg8+ePavW1lbFxcUF7I+Li9P777/f4TF79uzRli1bVF1d3el5169fryVLligxMVGDBg1SWFiYNm/erPvvv7/D8SUlJVqxYkUwUwcAADexPv2UUHNzsxYuXKjNmzcrNja203Hr16/XO++8o127dmn//v36t3/7Nz355JN68803OxxfWFgoj8fj3xobG/tqCQAAwAJBvcISGxur8PBwud3ugP1ut1vx8fHtxh89elT19fV6+OGH/ft8Pt8ndzxokI4cOaKEhAR9+9vf1muvvabZs2dLku666y5VV1drzZo1AT9+auN0OuV0OoOZOgAAuIkF9QpLRESE0tLSVFFR4d/n8/lUUVGhzMzMduMnTpyompoaVVdX+7c5c+boy1/+sqqrq5WUlKSrV6/q6tWrCgsLnEp4eLg/bgAAwOdbUK+wSJ98BDkvL0/Tp09Xenq61q1bp5aWFi1atEiSlJubq9GjR6ukpESRkZGaPHlywPExMTGS5N8fERGh7OxsPf/88xoyZIiSk5P13//93/rZz36mtWvX3uDyAABAKAg6WObPn68zZ86oqKhITU1NSk1NVXl5uf+NuMePH2/3asn1bNu2TYWFhXr00Ud17tw5JScn63vf+56+8Y1vBDs9AAAQghzGGDPQk7hRXq9X0dHR8ng8crlcAz0dAADQDcE8f/N/CQEAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADrESwAAMB6BAsAALAewQIAAKxHsAAA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W1trHA6HeeONN9qdc9euXWbz5s2mpqbG1NbWmh//+McmKirKFBUV9fl6/lqw66urqzMrV6407777rjl27JjZuXOnGTdunLn//vv9x7R9rHnGjBmmurralJeXmxEjRgzYx5qDWZ/H4zEZGRlmypQppq6uLuBjlNeuXTPGDOz127Ztm3E6naasrMwcOnTILFmyxMTExPg/kbVw4UKzbNky//jf//73ZtCgQWbNmjXm8OHDpri4uMOPNV/vMdlfgl3fqlWrTEREhPnVr34VcK3a/g1qbm42zz33nKmsrDTHjh0zb775pvnSl75kJkyY0K/xfCNrXLFihfntb39rjh49avbv328WLFhgIiMjzcGDB/1jbuZr2Obee+818+fPb7fftmvY3Nzsf66TZNauXWsOHDhgGhoajDHGLFu2zCxcuNA/vu1jzc8//7w5fPiw2bBhQ4cfa+7qe9YbPvfBkpeXZyS123bv3u0fo///fRVtfD6fWb58uYmLizNOp9M8+OCD5siRIwHn/fDDD80jjzxibr31VuNyucyiRYsCIqg/XW8ux44da7dmY4wpLCw0SUlJprW1td0533jjDZOammpuvfVWc8stt5ipU6eajRs3dji2rwW7vuPHj5v777/fDB8+3DidTjN+/Hjz/PPPB/weFmOMqa+vNw899JAZMmSIiY2NNc8++2zAx4L7S7Dr2717d4d/pyWZY8eOGWMG/vqtX7/ejBkzxkRERJj09HTzzjvv+G/Lzs42eXl5AeN/+ctfmjvuuMNERESYL37xi+Y3v/lNwO3deUz2p2DWl5yc3OG1Ki4uNsYYc+nSJTNjxgwzYsQIM3jwYJOcnGzy8/N79YmgJ4JZ49KlS/1j4+LizFe+8hVTVVUVcL6b+RoaY8z7779vJJnf/e537c5l2zXs7N+ItjXl5eWZ7OzsdsekpqaaiIgIM27cuIDnxDZdfc96g8OYfv4cKgAAQJD4PSwAAMB6BAsAALAewQIAAKxHsAAAAOsRLAAAwHoECwAAsB7BAgAArEewAAAA6xEsAADAegQLAACwHsECAACsR7AAAADr/R87JTfT1PP0+wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(mu.x, mu.p, 'k-', marker='.')"
]
},
{
"cell_type": "markdown",
"id": "87e68eaf",
"metadata": {},
"source": [
"Since this is plotting $\\mu = \\cos \\theta$, we see that it is isotropic (uniform $\\mu$ in $[0,1]$)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "decbcc94",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x151fa59a1ae0>]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA25UlEQVR4nO3de3xT9f3H8XeS0kChDSiXUluq0AoiYEGE4Q2QqiDef/PCvKBj6LTTeWFjbPOCTsHL3H7bz2nVCj7mHD90Q304r1WKN2DIQAWZtkihFahAbdqCFJp8f3/4S0Zo2ibpya19PR+PPCAnJ8nn25P0vPv9fs85NmOMEQAAgAXs8S4AAAB0HgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlUmL9hl6vV9u3b1d6erpsNlus3x4AAETAGKOGhgZlZWXJbm+9XyLmwWL79u3KycmJ9dsCAAALVFVVKTs7u9XHYx4s0tPTJX1XWEZGRqzfHgAARKC+vl45OTn+/XhrYh4sfMMfGRkZBAsAAJJMe9MYmLwJAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGAZggUAALAMwQIAAFiGYAEAACxDsAAAAJYhWAAA0ElUV1dr+fLlqq6ujlsNYQWLo48+WjabrcWtqKgoWvUBAIAQlJSUKDc3V2eccYZyc3NVUlISlzpsxhgT6sq7du2Sx+Px39+wYYPOPPNMLV++XJMmTQrpNerr6+VyueR2u7kIGQAAFqiurlZubq68Xq9/mcPhUGVlZZuXOA9HqPvvsHos+vXrp8zMTP/tlVde0ZAhQzRx4sQOFwwAACJTXl4eECokyePxqKKiIua1RDzH4sCBA3r22Wf1wx/+sN1LqAIAgOjJz8+X3R64S3c4HMrLy4t5LREHixdffFF1dXW65ppr2lyvqalJ9fX1ATcAAGCd7Oxs3Xffff77DodDxcXFlg2DhCPiYFFSUqJp06YpKyurzfUWLFggl8vlv+Xk5ET6lgAAoBVnnnmmJKlv376qrKzUrFmz4lJHRMFi69atKi0t1Y9+9KN21503b57cbrf/VlVVFclbAgCANnzzzTeSpMzMzLj0VPikRPKkRYsWqX///po+fXq76zqdTjmdzkjeBgAAhKi2tlaS1KdPn7jWEXaPhdfr1aJFizRz5kylpESUSwAAgMV8PRZJFyxKS0u1bds2/fCHP4xGPQAAIAK+YHHEEUfEtY6wuxzOOusshXFOLQAAEAPbtm2TpLiPJnCtEAAAklxJSYkef/xx///jdTpvKcxTeluBU3oDAGCdWJzOW4rSKb0BAEBiSaTTeUsECwAAkloinc5bIlgAAJDUsrOz9cQTT/jv2+32uJ3OW2KOBQAASc8Yo27dusnj8Wj16tUaN26c5e/BHAsAALqIhoYGeTweSdKIESPiWgvBAgCAJLd7925JUlpamtLS0uJaC8ECAIAk5wsWffv2jXMlBAsAAJKeL1gceeSRca6EYAEAQNLbs2ePJHosAACABRgKAQAAliFYAAAAyzDHAgAAWIY5FgAAwDIMhQAAAMswFAIAACxDjwUAALCEMYY5FgAAwBr19fVqbm6WxFAIAADooEMvQNajR484V0OwAAAgqSXS/AqJYAEAQFJLpPkVEsECAICkRo8FAACwTCKdw0IiWAAAkNTosQAAAJZhjgUAALAMPRYAAMAyzLEAAACWoccCAABYhjkWAADAEsYYeiwAAIA13G63PB6PJOZYAACADvL1VvTs2VPdu3ePczXfIVgAAJCkEm1+hUSwAAAgaSXa/AqJYAEAQNJKtHNYSBEEi6+++kpXXnmljjzySPXo0UMjR47URx99FI3aAABAGxKxxyIlnJW/+eYbnXLKKZo8ebJee+019evXT+Xl5erTp0+06gMAAK1IxDkWYQWLBx54QDk5OVq0aJF/2THHHGN5UQAAoH2J2GMR1lDIyy+/rLFjx+qSSy5R//79NXr0aD355JPRqg0AALQh6edYfPnll3rssceUn5+vN954QzfccINuvvlmPfPMM60+p6mpSfX19QE3AADQcYnYYxHWUIjX69XYsWN1//33S5JGjx6tDRs26PHHH9fMmTODPmfBggWaP39+xysFAAABEnGORVg9FgMHDtTw4cMDlh133HHatm1bq8+ZN2+e3G63/1ZVVRVZpQAAIEAiDoWE1WNxyimn6PPPPw9Y9sUXXyg3N7fV5zidTjmdzsiqAwAAQXm93uTvsbj11lu1atUq3X///aqoqNBzzz2nJ554QkVFRdGqDwAABJGIFyCTwgwWJ510kpYtW6a//vWvGjFihO699179/ve/1xVXXBGt+gAAQBC+3opevXolzAXIpDCHQiTp3HPP1bnnnhuN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JqTX4CJkAICu5ODBg+rVq5cOHDigzZs3a/DgwfEuKSKh7r/DHgoBAACh+/e//60DBw4oIyNDRx99dLzLiTquFQIAQBT55leccMIJLS5E1hl1/hYCABBHXWl+hUSwAAAgqg7tsegKCBYAAESJMaZLHWoqESwAAIiar776Snv27JHD4dDxxx8f73JigmABAECU+OZXHHfccerevXucq4kNggUAAFHS1eZXSAQLAACipqvNr5AIFgAARA3BAgAAWKKhoUEVFRWSpH79+sW5mtghWAAAEAX333+///9jxoxRSUlJHKuJnbAuQmYFLkIGAOjsqqurNWjQoIBrbDkcDlVWVio7OzuOlUUu1P03PRYAAFisvLy8xYU7PR6Pf2ikMyNYAABgsby8vBbLHA5H0OWdDcECAACLeTyegPsOh0PFxcVJOwwSjpR4FwAAQGfz/vvvS/ruMNPf/e53ysvL6xKhQiJYAABgOV+wmDJliiZNmhTfYmKMoRAAACzmCxannnpqnCuJPYIFAAAWqq2t1caNGyVJp5xySpyriT2CBQAAFvrwww8lSUOHDu1SZ9z0IVgAAGChDz74QFLXHAaRCBYAAFjKN7+iKw6DSAQLAAAss3//fv3zn/+URI8FAADooLVr1+rAgQPq379/lzjLZjAECwAALHLoYaY2my3O1cQHwQIAAIt05fNX+BAsAACwgNfr7fJHhEgECwAALLFp0yZ98803SktLU0FBQbzLiRuCBQAAFvANg3zve99Tt27d4lxN/BAsAACwAMMg3yFYAABggbKyMknSscceG99C4oxgAQBABz388MOqqqqSJF199dUqKSmJc0XxYzPGmFi+YX19vVwul9xutzIyMmL51gAAWK66ulqDBg3SobtTh8OhyspKZWdnx7Eya4W6/6bHAgCADigvL9fhf6N7PB5VVFTEqaL4IlgAANABgwcPbrHM4XBwSm8AABC+7du3B9x3OBwqLi7uVMMg4UiJdwEAACSzV155RZJ03nnn6bbbblNeXl6XDRVSBD0W7777rs477zxlZWXJZrPpxRdfjEJZAAAkh3/84x+SpEsuuUSTJk3q0qFCiiBY7N27VyeccIIeffTRaNQDAEDSqKqq0scffyybzaZp06bFu5yEEPZQyLRp0/jhAQAg6dVXX5X03Wm8+/btG+dqEkPU51g0NTWpqanJf7++vj7a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BRJCpDusAwcOqLq6utXgsW3btg7N9bjmmmuUm5urzz//XEuWLPEffjxv3jz94Ac/UK9evbRs2TLddtttQQNJsMNxJQUsu+yyy/S///u//vs//elPNWHCBNXV1enNN9/0HwYsSYMGDdLBgwdVU1PTbrvsdnvQdf7xj3/onHPO8dfHoZ9IFME+jz169NAVV1zR7nN987Cs2lVxZs3IRTVYPProo3rooYe0c+dOnXDCCfrjH/+ocePGWVoY0JbKykoNGTKkxUTc888/X263Wzt27NDOnTvldrstfd8ePXrI4XCosbHR0tdtz+23365zzjlHgwcPlqQWbQ/WI0EvBBJJR04JYBVCdsdEbfLmkiVLTGpqqnn66afNxo0bzezZs03v3r1NTU2NpWM0QHtCmRvwxRdfBJ3rUVRUZM4999yg467p6emmW7duIc0DCfc2atQoM2HChKCPPf7442bNmjUhTaZkXgQ6g0M/x9G82e12M2fOHOZTdFDUJm+OGzfOFBUV+e97PB6TlZVlFixYYGlhQChCmWDa2k64rSN6Wnvsgw8+MO+++27QsNLWzPNQXjuUycThth1IdL7P8UMPPWR5yCBQWCsqwaKpqck4HA6zbNmygOVXX321Of/884M+Z//+/cbtdvtvVVVVBAvEXGs74UiPCAr22OHLZs6cGfHRRoQGdEXBQkYooZ1AERtROSpk+/btOuqoo/Thhx9qwoQJ/uU///nPtWLFiqDX5rj77rs1f/78FsuZY4FEEekRQcEeCzaO3JGjjYCu6vCTG1ZUVKhnz57au3dvu//ynYqOqEzejCRYNDU1qampKaCwnJwcggUAAEkk1GCREs6L9u3bVw6Ho8UprGtqapSZmRn0OU6nU06nM5y3AQAAScoezsqpqak68cQT9fbbb/uXeb1evf322wE9GAAAoGsKq8dCkm677TbNnDlTY8eO1bhx4/T73/9ee/fu1bXXXhuN+gAAQBIJO1hcdtll2rVrl+68807t3LlTBQUFev311zVgwIBo1AcAAJIIp/QGAADtCnX/HdYcCwAAgLYQLAAAgGUIFgAAwDIECwAAYBmCBQAAsAzBAgAAWCbs81h0lO/o1vr6+li/NQAAiJBvv93eWSpiHiwaGhokSTk5ObF+awAA0EENDQ1yuVytPh7zE2R5vV5t375d6enpstlslr2u76qpVVVVnfbE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O3TZ6NGjtXfvXj300EOW7JSi3b5Dd7AjR47UwIEDNWXKFG3evFlDhgyJ+HXDEattWF9fr+nTp2v48OG6++67Ax6L5jZEZBYuXKglS5aorKwsYILj5Zdf7v//yJEjNWrUKA0ZMkRlZWWaMmVKPEoN2YQJEzRhwgT//ZNPPlnHHXeciouLde+998axMuuVlJRo5MiRGjduXMDyZN5+iSKuweL222/XNddc0+Y6gwcPjui1MzMzJUk1NTUaOHCgf3lNTY0KCgr863z99dcBz2tublZtba3/+R0Vahs7WssLL7ygffv26eqrr2533fHjx+vee+9VU1NTh88nH6v2+YwfP16SVFFRoSFDhigzM7PFjOaamhpJSqpt2NDQoKlTpyo9PV3Lli1Tt27d2lzfym0YTN++feVwOPw/S5+amppW25KZmdnm+qF8J2Mpkjb6PPzww1q4cKFKS0s1atSoNtcdPHiw+vbtq4qKipjumDrSPp9u3bpp9OjRqqiokJRY27Aj7du7d6+WLFmie+65p933idf2i0Rr38GMjAz16NFDDoejw5+JkFg2WyNGwp28+fDDD/uXud3uoJM3P/roI/86b7zxRlwnb0Zay8SJE1scSdCa3/zmN6ZPnz4R1xoJq37W77//vpFkPv74Y2PMfyZvHjqjubi42GRkZJj9+/db14AQRNpGt9ttvve975mJEyeavXv3hvResdiG48aNMz/5yU/89z0ejznqqKPanLx57rnnBiybMGFCi8mbbX0nYy3cNhpjzAMPPGAyMjLMypUrQ3qPqqoqY7PZzEsvvdThesMVSfsO1dzcbIYOHWpuvfVWY0zibcNI27do0SLjdDrN7t27232PeG6/QynEyZsjRowIWDZjxowWkzc78pkIqVbLXinKtm7datatW+c/nHLdunVm3bp1AYdVDh061Pz973/331+4cKHp3bu3eemll8wnn3xiLrjggqCHm44ePdqsXr3avP/++yY/Pz+uh5u2VUt1dbUZOnSoWb16dcDzysvLjc1mM6+99lqL13z55ZfNk08+aT799FNTXl5u/vSnP5m0tDRz5513Rr09hwu3fRUVFeaee+4xH330kdmyZYt56aWXzODBg83pp5/uf47vcNOzzjrLrF+/3rz++uumX79+cT3cNJw2ut1uM378eDNy5EhTUVERcIhbc3OzMSZ+23DJkiXG6XSaxYsXm88++8xcd911pnfv3v4jcK666irzi1/8wr/+Bx98YFJSUszDDz9sNm3aZO66666gh5u2952MpXDbuHDhQpOammpeeOGFgG3l+z3U0NBg5syZY1auXGm2bNliSktLzZgxY0x+fn7Mg24k7Zs/f7554403zObNm83atWvN5Zdfbrp37242btzoXyeRtmG47fM59dRTzWWXXdZieaJtv4aGBv++TpJ55JFHzLp168zWrVuNMcb84he/MFdddZV/fd/hpj/72c/Mpk2bzKOPPhr0cNO2fmZWSJpgMXPmTCOpxW358uX+dfT/x/r7eL1ec8cdd5gBAwYYp9NppkyZYj7//POA192zZ4+ZMWOG6dWrl8nIyDDXXnttQFiJpfZq2bJlS4s2G2PMvHnzTE5OjvF4PC1e87XXXjMFBQWmV69epmfPnuaEE04wjz/+eNB1oy3c9m3bts2cfvrp5ogjjjBOp9Pk5eWZn/3sZwHnsTDGmMrKSjNt2jTTo0cP07dvX3P77bcHHKoZS+G2cfny5UE/15LMli1bjDHx3YZ//OMfzaBBg0xqaqoZN26cWbVqlf+xiRMnmpkzZwasv3TpUnPsscea1NRUc/zxx5t//OMfAY+H8p2MtXDamJubG3Rb3XXXXcYYY/bt22fOOuss069fP9OtWzeTm5trZs+ebekv7XCF075bbrnFv+6AAQPMOeecY/71r38FvF6ibcNwP6P//ve/jSTz5ptvtnitRNt+rf1+8LVp5syZZuLEiS2eU1BQYFJTU83gwYMD9ok+bf3MrMBl0wEAgGU67XksAABA7BEsAACAZQgWAADAMgQLAABgGYIFAACwDMECAABYhmABAAAsQ7AAAACWIVgAAADLECwAAIBlCBYAAMAyBAsAAGCZ/wMGqL/o73fdNgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Distribution at 5 MeV\n",
"mu = angle_dist.mu[50]\n",
"plt.plot(mu.x, mu.p, 'k-', marker='.')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d343c139",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"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.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment