Skip to content

Instantly share code, notes, and snippets.

@jmduarte
Created May 24, 2024 21:26
Show Gist options
  • Save jmduarte/000e54f2bee6c7578aa95f7a5a35c01e to your computer and use it in GitHub Desktop.
Save jmduarte/000e54f2bee6c7578aa95f7a5a35c01e to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import mplhep as hep\n",
"plt.style.use(hep.style.CMS)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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KSoqKmrMjwcAAAAAwirk4FZcXKxrrrlGjz76qA4ePFir/dixY3r88cfVp08f7dq1q1b7wYMHdfr06cZV+/9UVlZq0qRJmjlzZq0aKisrtWbNGg0aNEhbtmwJOobH49GQIUPkcrlqhcwTJ07oueee0+DBgyO28jkAAAAANFTIwe2BBx7Q1q1bJUmDBg3S+vXrVVBQIK/Xqy1btui6666TJBUWFmry5MkqLy+vsf9XX31lbj///PNat25dnV92u71WDXPnztWqVaskSYMHD9bmzZt18uRJffvtt8rOzlZMTIxKSko0ceJEFRYW1trfMAxlZWUpPz9fkpSVlaXdu3fr1KlT2rVrl2688UZJ0v79+3XDDTfIMIxQf0wAAAAAEDYh3eNWVFSkpUuXSpJ69+6tjz/+WG3atDHbf/CDH2j9+vW69tprtWXLFn355Zf64IMPNGrUKLOPf3C75ZZbFB8fH1LBR44c0ZNPPilJ6tWrl95//321b99ekhQfH69HHnlEnTt31r333iuv16snn3xSTzzxRI0x1q1bp/fff1+SNHnyZL322mvmfXkDBgzQihUrVFFRoZUrV2rLli1av369Ro8eHVKdAAAAABAuIc247d2717zM8f77768R2swBY2I0Y8YM8/udO3fWaK8ObqmpqSGHNklasWKFiouLJUmzZs0yQ5s/p9Op5ORkSdKyZcvk8/lqtC9evNjcnjNnTq2HqdhsNmVnZ5vfV4dVAAAAAIiGkIKb/2xZ//79g/a76KKLAu7j/316enoohza988475vb48eMD9omJiVFGRoakqks2P/30U7OtrKxMGzZskFQ1a+hwOAKO4XA41Lt3b0nShg0bal3yCQAAAADNJaTg1qdPH82fP1/z588PGngkye12m9vdunWr0XZmcCstLdXevXu1efNm7dq1q96AVP20yIEDB+r8888P2m/s2LHm9vbt22vUdurUKUnSmDFjgi5dYLPZzDFOnDihvLy8OusCAAAAgEgJ6R634cOHa/jw4XX2KS8v1x/+8Afz+4kTJ9Zo279/vyQpLi5Od999t1566SVVVFSYfdq3b68bb7xRjzzySK1gZhiGDh8+LElKS0ursw7/ff2XBjh06JC5HeoY/fr1q7M/AAAAAERCkxfgLigo0D//+U95vV59+eWXevPNN80Zt7lz52rgwIFm3wMHDqiyslKS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eWspn3EEN7Qo6enphiRj4MCBDer/2muvmW+On/zkJ0ZpaWmtPt99950xbNgws9+GDRvCXfY5IZS/kNx0001m3+eff75W+3PPPWe233LLLbXaS0tLjbS0NPMJT59//nmN9oqKCuPmm282x1iyZElTXtpZraHn7YYbbjD75ebmNupYd911V41jBfpg+/jjj43OnTsbkoz27ds36B9ozkUNPW/h+B3I+y18GhPc3G63uc+0adMafCzeb43jv8ByY58eyGdc82vqeWspn3H1z/0BFpGXl6cvv/xSknT11Vc3aJ8bb7xRb775platWqUNGzYoPT1dd911l9LT03X8+HHt3r1bS5cu1YkTJyRJU6ZM0XXXXRex14Aqjz/+uN599115vV7dc889+uijjzR69Gj5fD6tWbPGXKeoS5cumjdvXq394+LitHDhQmVmZqq0tFRXX321pk2bpiFDhsjr9erll1/Whx9+KKnqXshbb721WV/f2WjLli2Sqi4/+eabb/TNN980aL/rr7/e3H7sscf03nvvaf/+/crOztY//vEP3XjjjUpNTZXb7dYnn3yi1157zbyhf8mSJQ1axBbBheN3IO+36Fq3bp253dDPPon3W2NV/66TpPj4eK1fv75B+11++eVKTEyUxGdcNDT1vLWYz7hGRUogCv7yl7+Y/5Lx5ptvNni/EydOGKNGjaqxhseZXzabzXjggQeMioqKCL6Cs1uo/5L8wQcf1Fpbxf8rOTnZ+Ne//lXnGM8884x5eVegryFDhhgejydMr/Ds1JDzVllZabRq1arO91CwrzPt2bPH6NmzZ537JCQkGK+//nqEX3nLFsr7LVy/A3m/NV1jZtx+9rOfmfuE+vPl/Ra66rXyQv3avHlzjXH4jGteTTlvLekzjuCGFuP66683/6c/dOhQSPv6fD7jH//4h5GZmWn079/fSEhIMOLj442LL77YmDJlirF79+4IVX3uaMxfSA4fPmw89NBDhsPhMOLj442EhASjf//+xsMPP2wcOXKkQWPs2LHDuOOOO4y0tDSjTZs2RmJiojFixAhj0aJFDVpg81zXkPN25MiRRn2gBfpQM4yqRVEXL15s/OhHPzJ69+5txMXFGZ07dzaGDRtmzJkzp8Hn/lwW6vstXL8Deb81TajnrayszGjfvr0hybj44osbdUzeb6FxOBxhCW6GwWdcc2rKeWtJn3E2w6hjkQkAAAAAQNSxHAAAAAAAWBzBDQAAAAAsjuAGAAAAABZHcAMAAAAAiyO4AQAAAIDFEdwAAAAAwOIIbgAAAABgcQQ3AAAAALA4ghsAAAAAWBzBDQAAAAAsjuAGAAAAABZHcAMAAAAAiyO4AQAAAIDFEdwAAAAAwOIIbgAAAABgcf8/zJZVVQ9+4ncAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 1000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# make gaussian distribution and plot it\n",
"x = np.random.normal(size=10000) * 10 + 125\n",
"\n",
"# smear x by 20%\n",
"smear = 1.2\n",
"x_smear = x + np.random.normal(size=10000) * (smear - 1) * x\n",
"plt.figure()\n",
"plt.hist(x, bins=np.linspace(60, 220, 17), histtype='step', linewidth=2)\n",
"plt.hist(x_smear, bins=np.linspace(60, 220, 17), histtype='step', linewidth=2)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment