1
0
Fork 0
mirror of https://gitlab.rlp.net/pgp/pgp1-python-einfuehrung synced 2024-10-12 13:24:22 +00:00
pgp1-python-einfuehrung/IminuitExample.ipynb

4893 lines
1 MiB
Text
Raw Normal View History

{
"cells": [
{
"cell_type": "markdown",
"id": "8c7b32df-d0c4-4777-89b5-8684b8cb3bc4",
"metadata": {},
"source": [
"# Keywords Script:\n",
"\n",
"* Wiederholen sie die aus dem PGP1 bekannten Konzepte:\n",
" * Messunsicherheiten (Messfehler), statistische und systematische Unsicherheit\n",
" * Korrelation und Antikorrelation\n",
" * Gaussverteilung (Normalverteilung)\n",
" * Arthmetirsches Mittel und Standardabweichung\n",
" * Zentraler Grenzwertsatz\n",
" * Wahrscheinlichkeitsverteilung\n",
"* Binominal-Verteilung (Not sure if needed)\n",
"* Poisson-Verteilung\n",
"\n",
"\n",
"# Aufgaben zur Vorbereitung:\n",
"\n",
"\n",
"* Verknüpfen des Zentralengrenzwertsatzs, der Normalverteilung und des arithmetrishen Mittels (in Python):\n",
" 1. Nimm random nicht Gaußverteilung, e.g., exponential decay\n",
" 2. Plotte Zerfallsverteilung.\n",
" 3. Ziehe 2, 5, 10, 100 verschieden \"Messungen\"\n",
" 4. Berechne Mittelwert von \"gemessenen\" Werte und plote"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 5,
"id": "8f008534-a7a3-482e-9495-611866787c05",
"metadata": {},
"outputs": [],
"source": [
"# import matplotlib.pyplot as plt\n",
"# import numpy as np\n",
"\n",
"# import iminuit\n",
"\n",
"# print(iminuit.__version__)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 6,
"id": "36435872-d6c4-4e16-8814-82f90342d84d",
"metadata": {},
"outputs": [],
"source": [
"# # Truth\n",
"# R = 10*10**3 # Ohm\n",
"# C = 10*10**-6 # F\n",
"# I0 = 10/R\n",
"\n",
"# def discharge_current(t, I0, R, C):\n",
"# return I0 * np.exp(-t/(R*C))\n",
"\n",
"\n",
"# time_truth = np.arange(0, 1, 0.1)\n",
"\n",
"\n",
"# # Make psuedo measured values:\n",
"# sigma_time = 0.02\n",
"# dtime = np.random.normal(0, sigma_time, len(time_truth))\n",
"# time_mess = time_truth + dtime\n",
"\n",
"# sigma_current = 0.05\n",
"# current_truth = discharge_current(time_truth, I0, R, C)/10**-3\n",
"# current_mes = current_truth + np.random.normal(0, sigma_current, len(current_truth))\n"
]
},
{
"cell_type": "markdown",
"id": "94c87544-8084-4994-8025-44e789b6d9f2",
"metadata": {},
"source": [
"TODO but relastic values not floats with infinit digits add header..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 7,
"id": "e77a7824-f8fa-43b2-ad98-009e17c05c72",
"metadata": {},
"outputs": [],
"source": [
"# import pandas as pd\n",
"# df = pd.DataFrame()\n",
"# df['time'] = time_mess\n",
"# df['current'] = current_mes\n",
"# df['delta_current'] = sigma_current\n",
"# df['delta_time'] = np.abs(dtime)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 8,
"id": "54c27237-effd-4396-91d8-b6b4d43d589c",
"metadata": {},
"outputs": [],
"source": [
"# df.to_csv('data/discharge_data.csv')"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 9,
"id": "f03f0f86-7452-4528-b0a1-7e4411dbc410",
"metadata": {},
"outputs": [],
"source": [
"# plt.plot(time_truth, discharge_current(time_truth, I0, R, C)/10**-3, marker='.')\n",
"# plt.errorbar(time_mess, current_mes, xerr=sigma_time, yerr=np.abs(sigma_current), ls='', marker='.')\n",
"# plt.ylabel('Current [mA]')\n",
"# plt.xlabel('Time [s]')\n",
"# plt.show()"
]
},
{
"cell_type": "markdown",
"id": "c9a4045f-f389-40f5-9f19-32f8bbebc75d",
"metadata": {},
"source": [
"# Methode der kleinsten Quadrate\n",
"\n",
"Im folgenden wolllen wir die **Methode der kleinsten Quadrate (Least Squares)** näher beleuchten. Diese Methode wird oft benutzt, um eine Funktion $\\lambda(x; \\ $**$\\phi$**$)$ mit den Funktionsparametern $\\mathbf{\\phi}$ an die gemessenen Punkte **$(x,y)$** anzupassen. Um jedoch die **Methode der kleinsten Quadrate** zu verstehen, wollen wir sie erst einmal anschaulich und halb-mathematisch herleiten. Dabei stüzen wir uns im Folgenden auf eine Herleitung aus dem Buch **\"Statistical Data Analysis\"** von **Glen Cowan**."
]
},
{
"cell_type": "markdown",
"id": "5a8f4ef9-222c-440f-8621-e612a8988fd0",
"metadata": {},
"source": [
"Bevor wir dies jedoch tun, schauen wir uns das Problem des Fittens doch erst einmal anschaulich an. \n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/SketchLeastSquares.png\" alt=\"{{ Beispiel PDF }}\" width=70%>\n",
"</figure>\n",
"\n",
"Beim fitten, zum Beispiel einer Geraden (lila) an eine Reihe von Messpunkten (schwarz), wollen wir den Abstand zwischen den einzelnen Messpunkten und der Geraden (orange) möglichst klein halten. Sprich die Summe über alle $\\Delta Y_i$ \n",
"\n",
"$$\\sum_i \\Delta Y_i $$\n",
"\n",
"sollte möglichst klein sein, wobei $\\Delta Y_i$ durch \n",
"\n",
"$$ \\Delta Y_i = y_i f(x_i, \\vec{\\theta})$$\n",
"\n",
"gegeben ist und $f(x, \\vec{\\theta})$ unsere Fitfunktion repräsentiert. Hierbei Symbolisiert $\\vec{\\theta}$ die Parameter unserer Funktion. Sprich im Fall einer Geraden die Steigung $m$ und den Offset $y_0$ ($\\vec{\\theta}=(m, y_0)$). \n",
"\n",
"Darüber hinaus sollte die Richtung des Abstandes, sprich ob ein Messpunkt unterhalb oder oberhalb der Fitfunktion liegt keine Rolle spielen. Daher quadrieren wir das Ganze und erhalten somit\n",
"\n",
"$$ LS = \\sum_i = (y_i f(x_i, \\theta))^2$$\n",
"\n",
"Dies ist die allgemeinste Form der Methode der kleinsten Quadrate. Sie besagt, dass die Funktion welche die Messpunkte am besten beschreibt, sprich die optimalen Werte für $\\vec{\\theta}$ aufweist, den Ausdruck LS minimiert. \n",
"\n",
"Nun weisen unsere Messpunkte nicht nur Werte für X und Y aus, sondern sind noch zusätzlich durch einen Messunsicherheit (Messfehler) charakterisiert. Diese sollte wir natürlich bei der Überlegung unserer Parameter $\\vec{\\theta}$ berücksichtigen. Sprich Messwerte mit einer großen Unsicherheit sollten weniger stark berücksichtigt werden wie Messwerte mit einer kleinen Unsicherheit. Dies können wir gewährleisten sofern wir die Distanzen $\\Delta Y_i$ mit den jeweiligen Unsicherheiten $\\Delta y_i$ gewichten, sprich \n",
"\n",
"$$ \\chi^2 = \\sum_i =\\frac{(y_i f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n",
"\n",
"berechnen. Das Quadrieren der Unsicherheiten sorgt dafür, dass der Ausdruck dimensionslos wird. Diese besondere Form der kleinsten Quadrate nennt man auch oft $\\chi^2$-Fit. Wir werden später noch einmal genauer beleuchten warum. "
]
},
{
"cell_type": "markdown",
"id": "1153a474-8afe-44ae-8511-b403a4ad861d",
"metadata": {},
"source": [
"Nun wollen wir uns erst einmal ein Beispiel angucken, wie dies in der Praxis aussieht. In der nachfolgenden Animation wird ein Ohmschwer Widerstand an eine Reihe von Spannungs- und Strommessungen gefittet. Dies entspricht unserem obigen Geradenbeispiel. \n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/Fitting_gif.gif\" alt=\"{{ Least Square Beispiel }}\" width=100%>\n",
"</figure>\n",
"<span style=\"color:red\">TODO: Update animation use only LS without uncertainties?</span>\n",
"Wie die Animation zeigt, werden so lange verschiedene Widerstände ausprobiert, bis ein Wert gefunden wurde bei dem das $\\chi^2$ klein wird. Dieses variieren der Widerstandswerte passiert nicht zufällig, sondern basiert auf einem Algorithmus für ein Optimierungsverfahren. \n",
"\n",
"Es gibt verschiedene Arten von Algorithmen um Minimierungsprobleme zu lösen. Wie diese genau aufgebaut sind, lernen Sie in anderen Progrmmierveranstaltungen wie zum Beispiel *Programmieren für Physiker* oder *Computer in der Wissenschaft*. Zum Glück haben uns bereits in Python andere Menschen diese Arbeit abgenommen. Im folgenden wollen wir uns das package `imnuit` etwas genauer angucken, welches bereits ein sehr umfangreiches und mächtiges Fittingtool darstellt. \n",
"\n",
"[iminuit](https://iminuit.readthedocs.io/en/stable/tutorials.html) verfügt auch über eine exzellente Dokumentation, mit Hilfe dessen Sie auch komplexere Probleme lösen können."
]
},
{
"cell_type": "markdown",
"id": "702b9a12-539d-43b5-8314-7f8dcdf93cda",
"metadata": {},
"source": [
"Um mit Hilfe von `imnuit` etwas zu fitten brauchen wir zunächst einmal ein paar Messdaten und ein Fitmodel. Im Folgenden wollen wir die Entladekurve eines Kondensators mit der Kapazität $C$ über einen Widerstand $R$ bestimmen. Die Entladekurve ist durch eine einfache Exponentialfunktion der Form \n",
"\n",
"$$ I = I_0 \\exp\\{-t/RC\\}$$\n",
"\n",
"gegeben. Die Messdaten befinden sich in einer CSV-Datei im Ordner `data`. Die CSV-Datei kann mit Hilfe des `pandas` package eingelesen werden. [pandas](https://pandas.pydata.org/) ist ähnlich wie `numpy` ein package welches eine Fülle an Funktionen zum Verarbeiten und Verwalten von Daten bereitstellt. Es gehört ähnlich wie auch `numpy`, `scipy` und `matplotlib` zu den Standardbibliotheken, welche sehr häufig in der Wissenschaft verwendet werden. Aufgrund der zeitlichen Limitierung des Versuchstages können wir leider nicht auf alle Funktionen von `pandas` eingehen und wollen uns im Folgenden lediglich auf die Basics beschränken. Für ihre zukünftigen Praktika lohnt es sich jedoch noch mehr über `pandas` in Ihrer Eigenstudienzeit zu lernen."
]
},
{
"cell_type": "markdown",
"id": "5215840a-1276-49c1-9181-274cd8a2b4bf",
"metadata": {},
"source": [
"CSV-Datein können Sie wie folgt eingelesen werden\n",
"<span style=\"color:red\">TODO: Add dummy file with dummy header to show things...</span>"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 10,
"id": "f8ef1be0-a42d-4a11-b674-c2ed099fefcb",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"data_frame = pd.read_csv('data/discharge_data.csv')"
]
},
{
"cell_type": "markdown",
"id": "15800aa8-8a7f-4d59-ab06-3edc6bb1e443",
"metadata": {},
"source": [
"Dabei gibt pandas die Daten als so genannten DataFrames zurück. Dies sind Objekte welche ähnlich wie strukturierte `numpy.arrays` zu behandeln sind. DataFrames werden allgemein als Tabellen dargestellt."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 11,
"id": "f14ca80f-e0d7-4447-9335-b3744f7a028f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>time</th>\n",
" <th>current</th>\n",
" <th>delta_current</th>\n",
" <th>delta_time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0.000637</td>\n",
" <td>1.066538</td>\n",
" <td>0.05</td>\n",
" <td>0.000637</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0.088553</td>\n",
" <td>0.406316</td>\n",
" <td>0.05</td>\n",
" <td>0.011447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>0.194773</td>\n",
" <td>0.143093</td>\n",
" <td>0.05</td>\n",
" <td>0.005227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>0.306413</td>\n",
" <td>0.078141</td>\n",
" <td>0.05</td>\n",
" <td>0.006413</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>0.405285</td>\n",
" <td>0.065042</td>\n",
" <td>0.05</td>\n",
" <td>0.005285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5</td>\n",
" <td>0.507390</td>\n",
" <td>0.011885</td>\n",
" <td>0.05</td>\n",
" <td>0.007390</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>6</td>\n",
" <td>0.613279</td>\n",
" <td>-0.018824</td>\n",
" <td>0.05</td>\n",
" <td>0.013279</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>7</td>\n",
" <td>0.707501</td>\n",
" <td>0.044513</td>\n",
" <td>0.05</td>\n",
" <td>0.007501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8</td>\n",
" <td>0.790479</td>\n",
" <td>0.006881</td>\n",
" <td>0.05</td>\n",
" <td>0.009521</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>9</td>\n",
" <td>0.883672</td>\n",
" <td>-0.019052</td>\n",
" <td>0.05</td>\n",
" <td>0.016328</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 time current delta_current delta_time\n",
"0 0 0.000637 1.066538 0.05 0.000637\n",
"1 1 0.088553 0.406316 0.05 0.011447\n",
"2 2 0.194773 0.143093 0.05 0.005227\n",
"3 3 0.306413 0.078141 0.05 0.006413\n",
"4 4 0.405285 0.065042 0.05 0.005285\n",
"5 5 0.507390 0.011885 0.05 0.007390\n",
"6 6 0.613279 -0.018824 0.05 0.013279\n",
"7 7 0.707501 0.044513 0.05 0.007501\n",
"8 8 0.790479 0.006881 0.05 0.009521\n",
"9 9 0.883672 -0.019052 0.05 0.016328"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame"
]
},
{
"cell_type": "markdown",
"id": "fc24d5fa-d3c0-4866-b18a-9dd07768a222",
"metadata": {},
"source": [
"Um die Daten aus einer Bestimmente Spalte zu bekommen können diese einfach mit dem Spaltennamen aufgerufen werden:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 12,
"id": "93b7cbb1-1095-4a53-83d9-7b32f068daea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 0.000637\n",
"1 0.088553\n",
"2 0.194773\n",
"3 0.306413\n",
"4 0.405285\n",
"5 0.507390\n",
"6 0.613279\n",
"7 0.707501\n",
"8 0.790479\n",
"9 0.883672\n",
"Name: time, dtype: float64"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['time']"
]
},
{
"cell_type": "markdown",
"id": "4476302c-eb65-409a-b1aa-2342ecbd9c88",
"metadata": {},
"source": [
"oder"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 13,
"id": "969d8afa-5d52-4e01-8b64-ddab090891b8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1.066538\n",
"1 0.406316\n",
"2 0.143093\n",
"3 0.078141\n",
"4 0.065042\n",
"5 0.011885\n",
"6 -0.018824\n",
"7 0.044513\n",
"8 0.006881\n",
"9 -0.019052\n",
"Name: current, dtype: float64"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['current']"
]
},
{
"cell_type": "markdown",
"id": "32249263-ec9f-44de-81b7-7a6c69e23332",
"metadata": {},
"source": [
"Einzelne Messwerte lassen sich mit Hilfe von `.loc` bestimemn."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 14,
"id": "e4b44637-8e25-46c1-863d-3cd7604f52dd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0118852615051639"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame.loc[5, 'current']"
]
},
{
"cell_type": "markdown",
"id": "a2c0c04b-be37-482d-aabc-802bfa2965d2",
"metadata": {},
"source": [
"Sollten Sie eine Spalte an Messdaten in ein `numpy.array` umwandeln wollen so können Sie dies über"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 15,
"id": "f246f55e-5fc8-427c-990d-3e97799b5aeb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1.06653795, 0.40631626, 0.1430927 , 0.07814083, 0.06504185,\n",
" 0.01188526, -0.01882397, 0.04451315, 0.00688072, -0.01905164])"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['current'].values"
]
},
{
"cell_type": "markdown",
"id": "3d2bd9ed-852d-4448-a051-a6f677ea891d",
"metadata": {},
"source": [
"Die Messdaten können Sie auch wie gewohnt mit Hilfe von `matplotlib` darstellen."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 16,
"id": "e3898686-3926-48a0-be4c-4d460a1792f3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAooUlEQVR4nO3dfXTU1Z3H8c/MkEyUkICNTEISifIgqDw/ZINSH5oSxaXl7NmVI12gWcQnyilku4UokiItoVQpXYgFKRzYc+qC7Vq3p7BBjXBaNXtQMCJVguGhPEgGqJKBQQnM/PYPl6kjAWaGmfkld96vc+aczJ37m/kOd8J8cuf+7jgsy7IEAABgCKfdBQAAAMQT4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCid7C4g2YLBoD7++GN16dJFDofD7nIAAEAELMvSqVOn1KNHDzmdl5+bSblw8/HHH6uwsNDuMgAAQAwOHTqkgoKCy/ZJuXDTpUsXSV/842RlZdlcDQAAiITP51NhYWHoffxyUi7cXPgoKisri3ADAEAHE8mSEhYUAwAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcBMnfr9fDodDDodDfr/f7nIAAEhZhBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhJgGOHDlidwkAAKQswk2crFu3LvRz//79tXr1ahurAQAgdTksy7LsLiKZfD6fsrOz1dLSoqysrLjc5+HDh9WzZ08Fg8FQm8vl0oEDB1RQUBCXxwAAIJVF8/7NzE0cfPTRR2HBRpICgYCamppsqggAgNRFuImDPn36yOkM/6d0uVzq3bu3TRUBAJC6CDdxUFBQoGXLloWuu1wurVy5ko+kAACwAWtu4sTv9yszM1OS1NjYqL59+8btvgEASHWsubFZfn6+3SUAAJCyCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCid7C7AFJ07d1aKfZMFAADtkq0zN3/84x81btw49ejRQw6HQy+//PIVj9m6dauGDh0qt9ut3r17a+3atQmvEwAAdBy2hhu/369BgwappqYmov779+/X/fffr7vvvlsNDQ2aOXOmHnroIW3evDnBlQIAgI7C1o+l7rvvPt13330R91+xYoVuvPFGPfvss5Kk/v3764033tDPf/5zlZWVJapMAADQgXSoBcX19fUqLS0NaysrK1N9ff0ljzl79qx8Pl/YBQAAmKtDhZvm5mZ5PJ6wNo/HI5/Pp88++6zNY6qrq5WdnR26FBYWJqNUAABgkw4VbmJRWVmplpaW0OXQoUN2lwQAABKoQ50KnpubK6/XG9bm9XqVlZWla665ps1j3G633G53MsoDAADtQIeauSkpKVFdXV1Y26uvvqqSkhKbKgIAAO2NreHm9OnTamhoUENDg6QvTvVuaGjQwYMHJX3xkdLkyZND/R999FHt27dPP/zhD7V7924999xzevHFFzVr1iw7ygcAAO2QreHmnXfe0ZAhQzRkyBBJUkVFhYYMGaJ58+ZJko4ePRoKOpJ04403auPGjXr11Vc1aNAgPfvss/rVr37FaeAAACDEYaXYdwb4fD5lZ2erpaVFWVlZdpcDAAAiEM37d4dacwMAAHAlhBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGsT3c1NTUqKioSBkZGSouLta2bdsu23/p0qW6+eabdc0116iwsFCzZs3S559/nqRqAQBAe2druNmwYYMqKipUVVWlHTt2aNCgQSorK9OxY8fa7P/CCy9ozpw5qqqq0ocffqjVq1drw4YNeuKJJ5JcOQAAaK9sDTdLlizRtGnTVF5erltuuUUrVqzQtddeqzVr1rTZ/6233tLtt9+uiRMnqqioSGPGjNGDDz54xdkeAACQOmwLN62trdq+fbtKS0v/VozTqdLSUtXX17d5zKhRo7R9+/ZQmNm3b582bdqksWPHXvJxzp49K5/PF3YBAADm6mTXA584cUKBQEAejyes3ePxaPfu3W0eM3HiRJ04cUJ33HGHLMvS+fPn9eijj172Y6nq6mrNnz8/rrUDAID2y/YFxdHYunWrFi5cqOeee047duzQSy+9pI0bN2rBggWXPKayslItLS2hy6FDh5JYMQAASDbbZm5ycnLkcrnk9XrD2r1er3Jzc9s85qmnntKkSZP00EMPSZIGDBggv9+vhx9+WE8++aSczouzmtvtltvtjv8TAAAA7ZJtMzfp6ekaNmyY6urqQm3BYFB1dXUqKSlp85gzZ85cFGBcLpckybKsxBULAAA6DNtmbiSpoqJCU6ZM0fDhwzVy5EgtXbpUfr9f5eXlkqTJkycrPz9f1dXVkqRx48ZpyZIlGjJkiIqLi9XU1KSnnnpK48aNC4UcAACQ2mwNNxMmTNDx48c1b948NTc3a/DgwaqtrQ0tMj548GDYTM3cuXPlcDg0d+5cHTlyRNdff73GjRunn/zkJ3Y9BQAA0M44rBT7PMfn8yk7O1stLS3KysqyuxwAABCBaN6/O9TZUgAAAFdCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYpVMknf793/896jsuLy9Xly5doj4OAADgajgsy7Ku1MnpdKqgoEAulyuiOz106JD27Nmjm2666aoLjDefz6fs7Gy1tLQoKyvL7nIAAEAEonn/jmjmRpLeeecdde/ePaK+zNgAAAC7RLTmpqqqSpmZmRHf6RNPPKHrrrsu5qIAAABiFdHHUibhYykAADqeaN6/OVsKAAAYJaJwM3ToUH366acR3+kdd9yhI0eORNS3pqZGRUVFysjIUHFxsbZt23bZ/idPntT06dOVl5cnt9utvn37atOmTRHXBgAAzBbRguKGhga99957Ea+jaWho0NmzZ6/Yb8OGDaqoqNCKFStUXFyspUuXqqysTI2NjW0uXm5tbdU3v/lNde/eXb/97W+Vn5+vv/zlL+ratWtEdQEAAPNFfCq4w+FQpMtzHA6HPvrooyueCl5cXKwRI0Zo+fLlkqRgMKjCwkLNmDFDc+bMuaj/ihUr9LOf/Uy7d+9WWlpaRLWcPXs2LGj5fD4VFhay5gYAgA4k7qeC79+/P+oiCgoKLnt7a2urtm/frsrKylCb0+lUaWmp6uvr2zzm97//vUpKSjR9+nT993//t66//npNnDhRs2fPvuQePNXV1Zo/f37U9QMAgI4ponDTs2fPuD/wiRMnFAgE5PF4wto9Ho92797d5jH79u3T66+/ru985zvatGmTmpqa9Pjjj+vcuXOqqqpq85jKykpVVFSErl+YuQEAAGaKeBO/9iAYDKp79+56/vnn5XK5NGzYMB0
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"plt.errorbar(\n",
" data_frame['time'], \n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" ls='', \n",
" marker='.', \n",
" color='k'\n",
")\n",
"plt.xlabel('Time []')\n",
"plt.ylabel('Current []')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "100a4fe4-a5c4-4be3-a7f7-13337b97a194",
"metadata": {},
"source": [
"Nun wollen wir die Messdaten mit Hilfe von `iminuit` fitten. Hierzu müssen wir zunächste zwei Module des packages importieren und eine Funktion für die Entladekurve des Kondensators definieren:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 17,
"id": "2ffe340b-cd0f-45ec-b5b8-42e7a0349d4c",
"metadata": {},
"outputs": [],
"source": [
"from iminuit import Minuit, cost\n",
"import numpy as np\n",
"\n",
"def discharge_current(t, I0, R, C):\n",
" return I0 * np.exp(-t/(R*C))"
]
},
{
"cell_type": "markdown",
"id": "ef87da8f-7af9-4e3f-af63-c28a2e1d9830",
"metadata": {},
"source": [
"Nun können wir den fit selbst durchführen. Hierzu muss zuerst mittels dem `cost` Modul eine sogenannte Kostenfunktion erstellt werden. Die Kostenfunktion ist im Grunde unsere $\\chi^2$ \n",
"\n",
"$$ \\chi^2 = \\sum_i =\\frac{(y_i f(x_i, \\theta))^2}{\\Delta y_i^2}$$\n",
"\n",
"Funktion welche minimiert werden soll. Dies ist bereits bei `iminuit` für uns vordefiniert. Anschließend können wir die genutzt Kostenfunktion über `Minuit` minimieren lassen. Hierzu müssen wir zunächst geeignete Startwerte für den Minimierungsprozess vorgeben. Diese sollten im Idealfall nicht allzu weit von den wahren Werten entfernt liegen. Wir werden an einem späteren Beispiel noch einmal genauer zeigen, wie man hier vorgehen kann. Um den Minimierungsprozess zu starten muss noch am Ende `migrad()` aufgerufen werden."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 18,
"id": "bf36b7b9-fb20-47b7-8538-479026b48fb2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.18e-10 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> time = 0.5 sec </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#FFF79A;color:black\" title=\"Is covariance matrix accurate?\"> APPROXIMATE </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Is covariance matrix positive definite?\"> NOT pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> FORCED </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> R </td>\n",
" <td> 0.03e6 </td>\n",
" <td> 0.05e6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> C </td>\n",
" <td> 3e-6 </td>\n",
" <td> 5e-6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> R </th>\n",
" <th> C </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
" <td> 0.00253 </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> R </th>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td> 2.25e+09 </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> C </th>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" <td> 2.25e-11 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 87 │\n",
"│ EDM = 2.18e-10 (Goal: 0.0002) │ time = 0.5 sec │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │APPROXIMATE│NOT pos. def.│ FORCED │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n",
"│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌────┬───────────────────────────────────────────────────────┐\n",
"│ │ I0 R C │\n",
"├────┼───────────────────────────────────────────────────────┤\n",
"│ I0 │ 0.00253 -34.3309 -3.459e-9 │\n",
"│ R │ -34.3309 2.25e+09 -224.592785048e-3 │\n",
"│ C │ -3.459e-9 -224.592785048e-3 2.25e-11 │\n",
"└────┴───────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Kostenfunktion:\n",
"ls = cost.LeastSquares(\n",
" data_frame['time'],\n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" discharge_current,\n",
")\n",
"\n",
"# Minimierung\n",
"mi = Minuit(ls, # Kostenfunktion \n",
" I0=0.9, # Startwerte\n",
" R=10*10**3, \n",
" C=10**-6\n",
" )\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "b5df2d60-8284-4757-96c8-7f26afc17942",
"metadata": {},
"source": [
"Wie ihr seht gibt euch minuit euch vier (<span style=\"color:red\">Old iminuit version does not show plot... Check which version is used on jupyter hub.. </span>) verschiedene Objekte zurück. Für euch am wichtigsten ist die erste Tabelle, welche euch zeigt, ob euer Fit funktioniert hat. Im Allgemeinen gilt sind hier alle Felder grün hat euer Fit funktioniert, gelbe Felder können ein Problem andeuten müssen sie aber nicht und lila Felder bedeuten, dass etwas mit eurem Fit nicht in Ordnung ist. Die Bedeutungen der einzelnen Felder für unseren obigen Fit sind auch nochmal in der nachfolgenden Abbildung einzeln erklärt. Die Bedeutung der meisten Felder werden wir noch im laufe des Kurses kennen lernen. \n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/FitPerformance.png\" alt=\"{{Fit Performance }}\" width=100%>\n",
"</figure>\n",
"\n",
"Wie wir unserer Tabelle entnehmen können gibt es also ein Problem mit unserem Fit um besser verstehen zu können was das Problem sein könnte wollen wir uns auch noch die anderen Outputs angucken.\n",
"\n",
"Die zweite Tabelle zeigt uns die bestimmten Werte für die Parameter in der Spalte `Value` und die deren Unsicherheiten in der Spalte `Hess error`. Hierbei fällt auf das für unseren obigen Fit die Unsicherheiten der Parameter $R$ und $C$ größer sind als die bestimmten Werte selbst. \n",
"\n",
"Die dritte Tabelle ist die sogennnante **Kovarianzmatrix**. Die Kovarianzmatrix hat als Einträge auf ihrer **Hauptdiagonalen** die **Varianzen der entsprechenden Parameter** auf der **Nebendiagonalen** stehen die **Kovarianzen**. Die Werte in Klammern gibt die **Korrelation** zwischen den entspechenden Parameters an. Sind zwei Parameter stark **korreliert** wird das entsprechende Feld **blau** dargestellt, bei einer **antikorrelation** ist das Feld **rot**. \n",
"\n",
"Die letzte Ausgabe ist ein Plot unserer Messwerte zusammen mit der Fitfunktion basierend auf den Parametern des besten Fits."
]
},
{
"cell_type": "markdown",
"id": "72665daa-1d74-41da-8b9a-1e4c427eed07",
"metadata": {},
"source": [
"Obwohl unser Fit unsere Messdaten gut Widerspiegelt scheint es ein Problem mit der Bestimmung einiger Parameter zu geben. Die große Unsicherheit in $R$ und $C$ deutet an, dass hier das Problem liegt. Um dies zu bestätigen können wir uns einmal das reduzierte $\\chi^2(x, I_0, R, C)$ als Funktion des entsprechenden Parameters von `iminuit` plotten lassen, während wir die anderen Parameter, so wie die x-Werte konstant lassen. \n",
"\n",
"Für $I_0$ sieht das entsprechende Profil so aus:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 19,
"id": "d3230cb6-fbe3-4093-ba09-5271dc168a4d",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/XENONnT/anaconda/envs/XENONnT_development/lib/python3.9/site-packages/iminuit/minuit.py:2353: IMinuitWarning: Specified nsigma bound, but error matrix is not accurate\n",
" warnings.warn(\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.draw_profile('I0')\n",
"plt.ylabel('$\\chi^2(I_0, x, R, C)/ndof$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b837e542-d3c9-4f61-a8d1-4f22db7d5137",
"metadata": {},
"source": [
"Bei den anderen beiden Parametern ist dies nicht der Fall:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 20,
"id": "af339c6e-f0e7-40cd-a2cf-61aaaa4df1e4",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.draw_profile('R')\n",
"plt.ylabel('$\\chi^2(R, x, I_0, C)/ndof$')\n",
"plt.show()\n",
"\n",
"mi.draw_profile('C')\n",
"plt.ylabel('$\\chi^2(C, x, I_0 R)/ndof$')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "499ffb9a-00a7-4c06-ada4-1d3a41a7f1d4",
"metadata": {},
"source": [
"Das liegt daran, dass $R$ und $C$ vollständig korreliert sind. Reduziert `iminuit` $C$ um ein Faktor zwei so wird dies dadurch kompenziert, dass das optimale Minimum verlangt, dass $R$ um einen Faktor zwei größer sein muss. Sprich es ist ohne weitere Infromation nicht möglich $R$ und $C$ näher zu bestimmen lediglich das Produkt der beiden Größen.\n",
"\n",
"Sprich wir müssen in unser Fitfunktion $R$ und $C$ durch die Zerfallszeit $\\tau$ ersetzen und schreiben\n",
"\n",
"$$ I = I_0 \\exp\\{-t/\\tau\\}$$\n",
"\n",
"mit $\\tau = R \\cdot C$.\n",
"\n",
"Fürhen wir nun erneut den Fit durch erhalten wir ein richtiges Ergebniss..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 21,
"id": "847419a7-d77b-4207-8607-44af9d615ffc",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.3) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.11e-05 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> tau </td>\n",
" <td> 0.097 </td>\n",
" <td> 0.011 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> tau </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
" <td> 0.00254 </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.22e-3 <strong>(-0.396)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau </th>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.22e-3 <strong>(-0.396)</strong> </td>\n",
" <td> 0.000116 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 2.707 (χ²/ndof = 0.3) │ Nfcn = 87 │\n",
"│ EDM = 1.11e-05 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ tau │ 0.097 │ 0.011 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌─────┬───────────────────┐\n",
"│ │ I0 tau │\n",
"├─────┼───────────────────┤\n",
"│ I0 │ 0.00254 -0.22e-3 │\n",
"│ tau │ -0.22e-3 0.000116 │\n",
"└─────┴───────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from iminuit import Minuit, cost\n",
"\n",
"def discharge_current2(t, I0, tau):\n",
" return I0 * np.exp(-t/tau)\n",
"\n",
"ls = cost.LeastSquares(\n",
" data_frame['time'],\n",
" data_frame['current'], \n",
" data_frame['delta_current'], \n",
" discharge_current2\n",
")\n",
"mi = Minuit(ls, I0=0.9, tau=0.3)\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "a46c76ec-5b00-48f4-9a46-2ea083ca5dba",
"metadata": {},
"source": [
"... und die Werte und Fehler lassen sich über ..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 22,
"id": "69f540a5-e89b-4c24-aa7e-b03eaedb28d1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0670397937137222"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.values['I0']"
]
},
{
"cell_type": "markdown",
"id": "66733c05-692d-46e3-ae82-6f84d66ef28c",
"metadata": {},
"source": [
"... bzw. ..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 23,
"id": "66e6da5b-ff32-4982-a3aa-5b9b93262073",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.050402330240634355"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.errors['I0']"
]
},
{
"cell_type": "markdown",
"id": "c670cd3f-fcfb-4cfc-a8d4-eded75e9a669",
"metadata": {},
"source": [
"... für jeden Parameter auslesen. Dies lässt sich nun auch nutzen, um unsere Messwerte samt Fit in einem etwas schöneren Plot mit Achsenbeschriftungen darzustellen. Hierbei können wir ausnutzen, dass `iminuit` die Parameter in der Reihenfolge der Argumente unser definierten Fitfunktion speichert."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 24,
"id": "45fcf856-c58e-424d-8fd7-15037cb6698e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(data_frame['time'], \n",
" data_frame['current'], \n",
" xerr=data_frame['delta_time'], \n",
" yerr=data_frame['delta_current'], \n",
" ls='', \n",
" marker='.',\n",
" label='Data'\n",
" )\n",
"x = np.arange(0, 1, 0.01)\n",
"plt.plot(x, \n",
" discharge_current2(x, *mi.values), # Sternchen operator zum entpacken der Werte\n",
" color='k',\n",
" label='Best fit'\n",
" )\n",
"plt.legend()\n",
"plt.ylabel('Current [mA]')\n",
"plt.xlabel('Time [s]')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "b47df6fb-7fd6-473c-b3d7-af937b5518f0",
"metadata": {},
"source": [
"# <span style=\"color:red\">ADD TASK HERE </span>"
]
},
{
"cell_type": "markdown",
"id": "1cd73609-8593-4725-a7c4-317d6a48a72f",
"metadata": {},
"source": [
"# Mathematisch motivierete Herleitung des $\\chi^2$-Fits:\n",
"\n",
"Nach diesen anfänglichen Beispielen wollen wir uns eine semi-mathematische Herleitung des $\\chi^2$-Fits angucken um etwas besser zu verstehen, warum diese Methode für uns in der Physik so wichtig ist. In unserem Grundpraktikum haben wir bereits gelernt, dass Messwerte durch Zufallszahlen $x_i$ representiert werden und einer gewissen **Wahrscheinlichkeitsdichtefunktion (probability density function)** $f(x)$ unterliegen.\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/PorbDensFun.png\" alt=\"{{ Beispiel PDF }}\" width=70%>\n",
"</figure>\n",
"\n",
"\n",
"Eine **pdf** gibt an, mit welcher **Wahrscheinlichkeit ein Wert $x_i$** innerhalb eines **infinitesimalen Intervals $\\text{d}x_i$** zu finden ist. Des Weitren gilt, dass die Gesamtwahrscheinlichkeit gegeben ist durch $\\int_S f(x) dx = 1$. \n",
"\n",
"Nun betrachten wir folgendes Beispiel: In unserem Labor messen wir genau drei mal die Raumtemperartur T. Auch hier gilt, dass unsere Messung der einzelnen $T_i$ einer gewissen **Wahrscheinlichkeitsdichtefunktion** folgen. Betrachten Sie nun das folgende Bild; Welche **Wahrscheinlichkeitsdichtefunktion** passt besser zu den gezeigten Daten und **Warum?**\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/ProbMaxTemp.png\" alt=\"{{ Beispiel PDF }}\" width=100%>\n",
"</figure>\n",
"\n",
"Die rechte Verteilung spiegelt unsere Messdaten besser wieder. Dies können wir auch mathematisch ausdrücken. Für $N$ voreinander unabhängige Zufallszahlen bzw. Messpunkte (in unserem Beispiel $N = 3$) ist die Gesamtwahrscheinlichkeit gegeben durch das Produkt der einzelnen Wahrscheinlichkeitsdichten $f(x_i, \\theta)$ multipliziert mit dem jeweiligen infinitesimalen element $dx_i$\n",
"\n",
"$$\\prod_{i = 1}^{N} f(x_i,\\theta) \\ dx_i \\text{ für alle } x_i \\text{ in } [x_i, x_i + dx_i]$$\n",
"\n",
"wobei $x_i$ in unserem Beispiel den Messpunkten $T_i$ und $f(x_i,\\theta)$ unserer Gausverteilung mit $\\theta = (\\mu, \\sigma)$ entspricht. Sprich sofern unsere Werte gut von der jeweiligen **Wahrscheinlichkeitsdichtefunktion** repräsentiert werden, d.h. wir die richtigen Parameter $\\theta$ gewählt haben (wie im rechten oberen Plot), gilt \n",
"\n",
"$$ \\prod_{i = 1}^{N} f(x_i,\\theta) dx_i \\ \\ \\text{ist} \\ \\textbf{maximal.}$$\n",
"\n",
"Da die einzelnen $dx_i$ von unseren Parametern $\\theta$ unabhängig sind, gilt die gleiche Argumentation auch für \n",
"\n",
"$$ \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N) = \\prod_{i = 1}^{N} f(x_i,\\theta)$$ \n",
"\n",
"wobei $\\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)$ die sogenannte **\"likelihood\"** function darstellt.\n",
"\n",
"Wie kommen wir nun von der **likelihood function** auf unsere **Methode der kleinsten Quadrate** und das Fitten einer Funktion $\\lambda(x; \\ $**$\\phi$**$)$ an die gemessenen Punkte **$(x,y)$**? Dazu brauche wir noch einen Zwischenschritt. Oftmals ist es einfacher, statt die **likelihood function** zu maximieren, die so genannte **log likelihood function**\n",
"\n",
"$$ \\log( \\mathcal{L}(x_1 ... x_N; \\theta_1 ... \\theta_N)) = \\sum_{i = 1}^{N} \\log(f(x_i,\\theta))$$\n",
"\n",
"zu maximieren. Dies ist im Grunde das Gleiche, da der Logarithmus eine monoton-steigende Funktion ist. Auch in unserem Fall der **Methode der kleinsten Quadrate** benötigen wir die **log likelihood function**. \n",
"\n",
"Stellen Sie sich nun vor, wir haben eine Messung mit $N$ voneinander unabhängigen Messpunkten (x,y). Des Weiteren nehmen wir an, dass alle $x_i$ ohne Fehler sind und dass unsere $y_i$ gaußförmig um einen unbekannten Wahrenwert $\\lambda_i$ (sprich $\\lambda_i$ entspricht dem Erwartungswert $\\mu_i$ unserer Gaußverteilung) mit einer bekannten Varianz $\\Delta y_i^2$ verteilt sind (Diese Annahme lässt sich mit dem zentralen Grenzwertsatz begründen, so lange der Fehler sich aus der Summe kleiner Fehler zusammensetzt). Die dazugehörige **likelihood function** ist dann gegeben durch:\n",
"\n",
"$$ \\mathcal{L}(y_1 ... y_N; \\lambda_1 ... \\lambda_N, \\Delta y_1 ... \\Delta y_N)) = \\prod_{i = 1}^{N}\\frac{1}{\\sqrt{2 \\pi \\Delta y_i^2}} \\cdot \\exp \\bigg( \\frac{ -(y_i - \\lambda_i)^2}{2 \\cdot \\Delta y_i^2}\\bigg)$$\n",
"\n",
"Beziehungsweise die **log likelihood function** mit $\\lambda_i = \\lambda(x_i; \\phi)$ ergibt sich zu\n",
"\n",
"$$ \\log(\\mathcal{L}(y, \\theta)) \\approx -\\frac{1}{2} \\sum_{i = 1}^{N}\\bigg( \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}\\bigg)$$\n",
"\n",
"wobei die konstanten Terme, welche nicht von unserer Funktion $\\lambda(x_i; \\phi)$ abhängen, vernachlässigt worden sind. Durch den Faktor $-\\frac{1}{2}$ ist das Maximieren dieser **log likelihood function** gleich dem Minimieren von\n",
"\n",
"$$ \\chi(\\phi_1 ... \\phi_N)^2 = \\sum_{i = 1}^{N} \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}$$\n",
"\n",
"Diese Funktion ist unsere gesuchte **Methode der kleinsten Quadrate**. Mit ihrer Hilfe kann eine beliebige Funktion $\\lambda(x; \\phi)$, welche liniear in ihren Parametern $\\phi$ ist, an unsere Messdaten $(x,y\\pm\\Delta y)$ gefittet werden. Dabei stellt der Fitprozess selbst lediglich ein Minimierungsproblem dar. Im Folgenden sind unsere Annahmen noch einmal grafisch in einem Beispiel dargestellt.\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/LeastSquare.png\" alt=\"{{ Least Square Beispiel }}\" width=100%>\n",
"</figure>\n",
"\n",
"\n",
"Need to update figure above... sigma is touching best fit too often..."
]
},
{
"cell_type": "markdown",
"id": "be4a8d21-29db-4866-9117-8746b80d5945",
"metadata": {},
"source": [
"How does optimization work.... ? \n",
"\n",
"Use verbose mode to check steps.... \n",
"\n",
"=> Alternating specific value check if cost function minimizes.... If yes continue if not start changing other parameter:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 41,
"id": "43bfd15e-7b68-4b70-bc06-0b23f89f7bff",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"(0.9, 10000.0, 1e-06) -> 99.20912665811522\n",
"(0.9000900000000001, 10000.0, 1e-06) -> 99.19412063461034\n",
"(0.89991, 10000.0, 1e-06) -> 99.22413838602546\n",
"(0.9002604809700815, 10000.0, 1e-06) -> 99.16571136645308\n",
"(0.8997395190299186, 10000.0, 1e-06) -> 99.25258973321158\n",
"(0.9, 10001.0, 1e-06) -> 99.2081333982375\n",
"(0.9, 9999.0, 1e-06) -> 99.21012010104333\n",
"(0.9, 10010.0, 1e-06) -> 99.19920228362008\n",
"(0.9, 9990.0, 1e-06) -> 99.21906933767059\n",
"(0.9, 10000.0, 1.0001e-06) -> 99.2081333982375\n",
"(0.9, 10000.0, 9.999e-07) -> 99.21012010104333\n",
"(0.9, 10000.0, 1.001e-06) -> 99.19920228362008\n",
"(0.9, 10000.0, 9.989999999999999e-07) -> 99.21906933767059\n",
"(1.1367992341436675, 15426.65629293471, 1.5426656292934658e-06) -> 71.48428998018905\n",
"(1.1639942960414291, 16049.877285679564, 1.6049877285679507e-06) -> 69.75101904460233\n",
"(1.308096945474447, 19352.234036123315, 1.9352234036123227e-06) -> 64.0373348681763\n",
"(1.377047580024234, 20932.354834379075, 2.093235483437897e-06) -> 65.47264288596953\n",
"(1.3083067929414927, 19352.234036123315, 1.9352234036123227e-06) -> 64.06897571595725\n",
"(1.3078870980074015, 19352.234036123315, 1.9352234036123227e-06) -> 64.00572838249478\n",
"(1.308096945474447, 19363.537683275055, 1.9352234036123227e-06) -> 63.99858990110189\n",
"(1.308096945474447, 19340.930388971574, 1.9352234036123227e-06) -> 64.0760877366588\n",
"(1.308096945474447, 19352.234036123315, 1.9365250134806992e-06) -> 63.99272090590841\n",
"(1.308096945474447, 19352.234036123315, 1.933921793743946e-06) -> 64.08195930724722\n",
"(1.308096945474447, 19352.234036123315, 1.9374628097120974e-06) -> 63.96058355345421\n",
"(1.308096945474447, 19352.234036123315, 1.932983997512548e-06) -> 64.11411719500667\n",
"(1.4518988196469205, 28189.753065444456, 2.8189750163700463e-06) -> 61.272614820982845\n",
"(1.385496103118641, 24108.893380587735, 2.4108891818768406e-06) -> 49.65617486041412\n",
"(1.385672043336562, 24108.893380587735, 2.4108891818768406e-06) -> 49.694760759553645\n",
"(1.3853201629007201, 24108.893380587735, 2.4108891818768406e-06) -> 49.61761439538809\n",
"(1.385496103118641, 24122.984567537602, 2.4108891818768406e-06) -> 49.6271750967005\n",
"(1.385496103118641, 24094.80219363787, 2.4108891818768406e-06) -> 49.6852350578246\n",
"(1.385496103118641, 24117.03763372327, 2.4108891818768406e-06) -> 49.63940655944544\n",
"(1.385496103118641, 24100.7491274522, 2.4108891818768406e-06) -> 49.67296334907033\n",
"(1.385496103118641, 24108.893380587735, 2.4128655527857186e-06) -> 49.61551806057589\n",
"(1.385496103118641, 24108.893380587735, 2.4089128109679626e-06) -> 49.69695054357015\n",
"(1.385496103118641, 24108.893380587735, 2.411780041418529e-06) -> 49.63783388084468\n",
"(1.385496103118641, 24108.893380587735, 2.409998322335152e-06) -> 49.67453999473487\n",
"(1.3346958218375284, 26342.987535930857, 2.6342989994964907e-06) -> 32.40412806990936\n",
"(1.218308580069807, 31461.464245752708, 3.146147591686242e-06) -> 14.072342058026457\n",
"(1.2041974408796614, 32082.043754269307, 3.2082056542278777e-06) -> 13.53676656364805\n",
"(1.1905385220654157, 32682.73552056781, 3.2682749389683696e-06) -> 13.309190968111414\n",
"(1.1906296495547257, 32682.73552056781, 3.2682749389683696e-06) -> 13.321746128711856\n",
"(1.1904473945761056, 32682.73552056781, 3.2682749389683696e-06) -> 13.296643836281426\n",
"(1.1905385220654157, 32687.064556715202, 3.2682749389683696e-06) -> 13.31564880356511\n",
"(1.1905385220654157, 32678.40648442042, 3.2682749389683696e-06) -> 13.302737182521517\n",
"(1.1905385220654157, 32682.73552056781, 3.2687484177659625e-06) -> 13.316254288012424\n",
"(1.1905385220654157, 32682.73552056781, 3.2678014601707767e-06) -> 13.30213249281902\n",
"(0.9801502312575129, 30448.619847559406, 3.0448628816425382e-06) -> 6.96972301330329\n",
"(1.0625849715773497, 31323.995300450377, 3.1324006189341594e-06) -> 2.723232319724203\n",
"(1.0626278234687758, 31323.995300450377, 3.1324006189341594e-06) -> 2.723145418857497\n",
"(1.0625421196859235, 31323.995300450377, 3.1324006189341594e-06) -> 2.723320943276277\n",
"(1.0625849715773497, 31326.53248355612, 3.1324006189341594e-06) -> 2.7233762521216955\n",
"(1.0625849715773497, 31321.458117344635, 3.1324006189341594e-06) -> 2.7230896436266336\n",
"(1.0625849715773497, 31323.995300450377, 3.132687245408039e-06) -> 2.7233950126392372\n",
"(1.0625849715773497, 31323.995300450377, 3.13211399246028e-06) -> 2.72307123013582\n",
"(1.0663872573694309, 31176.616934344333, 3.117662764856898e-06) -> 2.707996462603649\n",
"(1.0676346425311973, 31128.267705196715, 3.112827836211991e-06) -> 2.7070251240566323\n",
"(1.0676780500361664, 31128.267705196715, 3.112827836211991e-06) -> 2.70705000293859\n",
"(1.0675912350262282, 31128.267705196715, 3.112827836211991e-06) -> 2.707002005340193\n",
"(1.0676346425311973, 31130.901765918446, 3.112827836211991e-06) -> 2.707043830842127\n",
"(1.0676346425311973, 31125.633644474983, 3.112827836211991e-06) -> 2.7070077881609484\n",
"(1.0676346425311973, 31128.267705196715, 3.113128792280756e-06) -> 2.7070466092241365\n",
"(1.0676346425311973, 31128.267705196715, 3.112526880143226e-06) -> 2.7070054284929457\n",
"(1.067212269933915, 31118.34694378787, 3.1118357598238063e-06) -> 2.706823247817995\n",
"(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n",
"(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n",
"(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n",
"(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n",
"(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n",
"(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n",
"(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n",
"(1.067168761630552, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821465977302\n",
"(1.0672122600973335, 31117.325013151873, 3.1117335667347323e-06) -> 2.7068223416968538\n",
"(1.0671252631637707, 31117.325013151873, 3.1117335667347323e-06) -> 2.706822357390249\n",
"(1.067168761630552, 31119.94657401041, 3.1117335667347323e-06) -> 2.706822163448656\n",
"(1.067168761630552, 31114.703452293335, 3.1117335667347323e-06) -> 2.7068221260943885\n",
"(1.067168761630552, 31117.325013151873, 3.112032662687679e-06) -> 2.7068223708425214\n",
"(1.067168761630552, 31117.325013151873, 3.1114344707817854e-06) -> 2.7068223282441966\n",
"(1.0671774613239084, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821499750613\n",
"(1.0671600619371957, 31117.325013151873, 3.1117335667347323e-06) -> 2.706821502889292\n",
"(1.067168761630552, 31117.84932532358, 3.1117335667347323e-06) -> 2.7068214968699196\n",
"(1.067168761630552, 31116.800700980166, 3.1117335667347323e-06) -> 2.7068214893882208\n",
"(1.067168761630552, 31117.325013151873, 3.1117933859253217e-06) -> 2.7068215055878295\n",
"(1.067168761630552, 31117.325013151873, 3.111673747544143e-06) -> 2.7068214970520583\n",
"(1.0672122600973335, 31119.94657401041, 3.1117335667347323e-06) -> 2.70682365283658\n",
"(1.0672122600973335, 31117.325013151873, 3.112032662687679e-06) -> 2.7068239467067996\n",
"(1.067168761630552, 31119.94657401041, 3.112032662687679e-06) -> 2.7068246172709194\n"
]
},
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 2.707 (χ²/ndof = 0.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 87 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.18e-10 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#FFF79A;color:black\" title=\"Is covariance matrix accurate?\"> APPROXIMATE </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Is covariance matrix positive definite?\"> NOT pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#c15ef7;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> FORCED </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> I0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.07 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> R </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.03e6 </td>\n",
" <td> 0.05e6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> C </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 3e-6 </td>\n",
" <td> 5e-6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> I0 </th>\n",
" <th> R </th>\n",
" <th> C </th>\n",
" </tr>\n",
" <tr>\n",
" <th> I0 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.00253 </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> R </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(248,248,250);color:black\"> -34.3309 <strong>(-0.014)</strong> </td>\n",
" <td> 2.25e+09 </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> C </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(248,248,250);color:black\"> -3.459e-9 <strong>(-0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(120,120,250);color:black\"> -224.592785048e-3 <strong>(-0.997)</strong> </td>\n",
" <td> 2.25e-11 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 2.707 (χ²/ndof = 0.4) │ Nfcn = 87 │\n",
"│ EDM = 2.18e-10 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │APPROXIMATE│NOT pos. def.│ FORCED │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ I0 │ 1.07 │ 0.05 │ │ │ │ │ │\n",
"│ 1 │ R │ 0.03e6 │ 0.05e6 │ │ │ │ │ │\n",
"│ 2 │ C │ 3e-6 │ 5e-6 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌────┬───────────────────────────────────────────────────────┐\n",
"│ │ I0 R C │\n",
"├────┼───────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ I0 │ 0.00253 -34.3309 -3.459e-9 │\n",
"│ R │ -34.3309 2.25e+09 -224.592785048e-3 │\n",
"│ C │ -3.459e-9 -224.592785048e-3 2.25e-11 │\n",
"└────┴───────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6eUlEQVR4nO3de3xU9Z3/8feZSTIJIQmBkJCQQASUqwKCpAHx1hRaLNVlaam6YtmqW4tdNL9tFRVptRVrlUIrlhaltbtabDG1bmFRpCIosSgYb9yEcAkhCQmXXCbkNnN+fyQZCCSQCZk5c3k9H84jmTPfM/MZz8C8+Z7v93sM0zRNAQAAWMRmdQEAACC8EUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFiKMAIAACxFGAEAAJaKsLqAznC73Tpy5Iji4uJkGIbV5QAAgE4wTVPV1dVKS0uTzdZx/0dQhJEjR44oIyPD6jIAAEAXFBUVKT09vcPHgyKMxMXFSWp+M/Hx8RZXAwAAOqOqqkoZGRme7/GOBEUYaT01Ex8fTxgBACDIXGiIBQNYAQCApQgjAADAUoQRAABgKcIIAACwFGEEAABYijACAAAsRRgBAACWIowAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFgqbMOI0+mUYRgyDENOp9PqcgAACFthG0YAAEBgIIwAAABLEUYAAIClCCMAAMBShBEAAGApwggAALAUYQQAAFiKMAIAACxFGAEAAJYK2zDicrk8v2/atKnNfQAA4D9hGUby8vI0YsQIz/1p06YpMzNTeXl5FlYFAEB4CrswkpeXp5kzZ6q4uLjN9uLiYs2cOZNAAgCAn4VVGHG5XJo3b55M0zznsdZt9913H6dsAADwo7AKI5s3b9bhw4c7fNw0TRUVFWnz5s1+rAoAgPAWVmGkpKSkW9sBAICLF1ZhJDU1tVvbAQCAixdWYWTy5MlKT0+XYRjtPm4YhjIyMjR58mQ/VwYAQPgKqzBit9u1dOlSSTonkLTeX7Jkiex2u99rAwAgXIVVGJGkGTNmaPXq1UpLS2uzPT09XatXr9aMGTMsqgwAgPBkmO3Ncw0wVVVVSkhIUGVlpeLj47vtORNT0tX7K99TRM9E7V35/xQbHdUtzw0AADr//R12PSOt7Ha73HXVir7kSjkGXKGDx+usLgkAgLAUtmGkVWPFIUnSnrJqiysBACA8EUYqDkqSdhNGAACwRNiHkYby5jDyBWEEAABLhH0YaT1NQ88IAADWIIy0nKYpOn5KtQ1NFlcDAED4Cfsw4j5VpT6xkZKkL8pqLK4GAIDwE/ZhRJKG9I2VxKkaAACs4HUY2bRpk6ZPn660tDQZhqHXXnvtgvts3LhRV155pRwOh4YMGaI//OEPXSi1e8XGxso0TZmmqeFpvSQxiBUAACt4HUacTqdGjx6tZcuWdar9/v37deONN+r6669XQUGB7rvvPt1555164403vC7WV4b2i5Mk7eY0DQAAfhfh7Q5f+9rX9LWvfa3T7ZcvX65LLrlEzzzzjCRp+PDhevfdd/XLX/5SU6dO9fblfeKylJ6SpD2l9IwAAOBvPh8zkp+fr5ycnDbbpk6dqvz8fF+/dKddmtLcM1JaVafKU40WVwMAQHjxeRgpLS1VSkpKm20pKSmqqqrSqVOn2t2nvr5eVVVVbW6+FB8dqbSEaEmMGwEAwN8CcjbNokWLlJCQ4LllZGT4/DVbe0eYUQMAgH/5PIz069dPZWVlbbaVlZUpPj5eMTEx7e4zf/58VVZWem5FRUW+LtMziJW1RgAA8C+vB7B6Kzs7W2vXrm2zbf369crOzu5wH4fDIYfD4evS2ristWeEQawAAPiV1z0jNTU1KigoUEFBgaTmqbsFBQU6dKj5Gi/z58/X7NmzPe2/973vqbCwUD/60Y+0a9cuPffcc/rzn/+s+++/v3veQTcZ2hJGdpVWyTRNi6sBACB8eB1GPvzwQ40dO1Zjx46VJOXm5mrs2LF69NFHJUklJSWeYCJJl1xyidasWaP169dr9OjReuaZZ/T8888HzLTeVpem9JTNkE7UNupodb3V5QAAEDYMMwi6AaqqqpSQkKDKykrFx8f77HVyFr+jvUdr9Ps5V+n6ock+ex0AAMJBZ7+/A3I2jVWGpzb/j9pZ4tupxAAA4DTCyBmGpzaPG9lZwiBWAAD8hTByBnpGAADwP8LIGUa0hJHC8hrVNbosrgYAgPBAGDlDcpxDvWOj5DalPazECgCAXxBGzmAYhoa1rMS6i3EjAAD4BWHkLK3jRnYwbgQAAL8gjJyFQawAAPgXYeQsp6f3siw8AAD+QBg5y5DknoqwGaqqa9KRyjqrywEAIOQRRs7iiLBrSHJPSdLOI5yqAQDA1wgj7WidUcO4EQAAfI8w0o7WQay7SpneCwCArxFG2sGMGgAA/Icw0o7WMLL/mFO1DU0WVwMAQGgjjLSjb5xDST0dMk1pN6dqAADwKcJIB1rXG2ElVgAAfIsw0oFR/RMkSZ8VE0YAAPAlwkgHRqU1h5HPj1RaXAkAAKGNMNKBy1t6RnaVVKuhyW1xNQAAhC7CSAcyescoPjpCDS63vjjKIFYAAHyFMNIBwzA840Y+Z9wIAAA+Qxg5j9Yw8mkx40YAAPAVwsh5jExrXvzsMwaxAgDgM4SR82gdxLqzpEpNLgaxAgDgC4SR88jsE6vYKLvqGt3aV+60uhwAAEISYeQ8bDZDI9NaFz/jVA0AAL5AGLkAz0qsjBsBAMAnCCMXMKp/yyBWekYAAPAJwsgFeNYaOVIlt9u0uBoAAEIPYeQCBvftqehIm2obXNp/jEGsAAB0N8LIBdhthkakcqoGAABfIYx0Qut6I4QRAAC6H2GkE0Z6wgjXqAEAoLsRRjrhzJ4RBrECANC9CCOdcGlyT8VE2lVd36TCCgaxAgDQnQgjnRBht3l6Rz4uOmltMQAAhBjCSCeNzmgJI4dPWlsIAAAhhjDSSaMzekmiZwQAgO5GGOmk0em9JEk7SqpU3+SythgAAEIIYaST0hNj1Cc2So0uUztLqq0uBwCAkEEY6STDMDhVAwCADxBGvNB6qoYwAgBA9yGMeKF1Rk0BM2oAAOg2hBEvtPaMFJY7VVnbaG0xAACECMKIFxJjozSwTw9J0ifFJ60tBgCAENGlMLJs2TJlZmYqOjpaWVlZ2rp163nbL1myREOHDlVMTIwyMjJ0//33q66urksFW41xIwAAdC+vw8grr7yi3NxcLVy4UNu3b9fo0aM1depUHT16tN32L7/8sh588EEtXLhQO3fu1AsvvKBXXnlFDz300EUXb4XWGTUFRZXWFgIAQIjwOowsXrxYd911l+bMmaMRI0Zo+fLl6tGjh1auXNlu+y1btmjSpEm69dZblZmZqSlTpuiWW265YG9KoBrTOoi16KRMkyv4AgBwsbwKIw0NDdq2bZtycnJOP4HNppycHOXn57e7z8SJE7Vt2zZP+CgsLNTatWs1bdq0Dl+nvr5eVVVVbW6BYmRaguw2QxU19SqpDM5TTQAABBKvwkhFRYVcLpdSUlLabE9JSVFpaWm7+9x666167LHHdPXVVysyMlKDBw/Wddddd97TNIsWLVJCQoLnlpGR4U2ZPhUdadewfnGSmntHAADAxfH5bJqNGzfqiSee0HPPPaft27crLy9Pa9as0eOPP97hPvPnz1dlZaXnVlRU5OsyvTKmZdzIR4dOWFsIAAAhIMKbxklJSbLb7SorK2uzvaysTP369Wt3nwULFuj222/XnXfeKUm6/PLL5XQ6dffdd+vhhx+WzXZuHnI4HHI4HN6U5lfjBibqpX8e0raDhBEAAC6WVz0jUVFRGjdunDZs2ODZ5na7tWHDBmVnZ7e7T21t7TmBw263S1LQDgAdNzBRkvRZcZXqGrmCLwAAF8OrnhFJys3N1R133KHx48drwoQJWrJkiZxOp+bMmSNJmj17tvr3769FixZJkqZPn67Fixdr7NixysrK0t69e7VgwQJNnz7dE0qCzYDePZTUM0oVNQ36/Eilxg3sbXVJAAAELa/DyKxZs1ReXq5
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
2023-08-14 15:01:33 +00:00
"ls = cost.LeastSquares(data_frame['time'], data_frame['current'], data_frame['delta_current'], discharge_current, verbose=1)\n",
"\n",
"\n",
"mi = Minuit(ls, I0=0.9, R=10*10**3, C=10**-6)\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "c664e4f0-0226-4be0-91f4-7c28aee16a4a",
"metadata": {},
"source": [
"General problem LeastSquares only accounts for uncertainty in y but not x! Needs always to be kept in mind... "
]
},
{
"cell_type": "markdown",
"id": "8c68c1c7-5568-4fc8-a2c6-7ca6791ad2f6",
"metadata": {},
"source": [
"Box yellow -> Pay attention to result think about it \n",
"\n",
"Box purple -> Fit did not converege cannot be used... \n",
"\n",
"\n",
"Limits can also be specified only as onsided as e.g. `(lower_boundary, None)` ..."
]
},
{
"cell_type": "markdown",
"id": "75f63b27-cd52-49b5-8c97-12615b808a2e",
"metadata": {},
"source": [
"Now more complex example to show other minuit features:\n",
"\n",
"-> Counting experiment\n",
"\n",
"-> Poisson statistics -> uncertainty sqrt n..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 69,
"id": "143a2a23-0a62-439f-9d28-9f555ae85589",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Number of counts per bin')"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rnd_bkd = np.random.exponential(39.7, 5000)\n",
"rnd_bkd += 40\n",
"\n",
"peak1 = np.random.normal(53.3, 2.1, 5000)\n",
"peak2 = np.random.normal(60.5, 2.78, 12000)\n",
"data = np.concatenate([rnd_bkd, peak1, peak2])\n",
"\n",
"entries, edges = np.histogram(data, bins=60, range=(40, 80))\n",
"center = edges[:-1] + np.diff(edges)/2\n",
"\n",
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')"
]
},
{
"cell_type": "markdown",
"id": "9a9f1ac1-fe1c-44b6-99a2-30f7bd0f6c98",
"metadata": {},
"source": [
"Concept entries PER BIN ! Differential plot...\n",
"\n",
"-> Binnded fit problem, how to choose binning?"
]
},
{
"cell_type": "markdown",
"id": "b582615c-9251-409d-bcfc-d19fd579e161",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Zunächst wollen wir das Fitmodel in der Form\n",
"\n",
"$$f(x) = A_1 \\cdot \\exp \\bigg\\{\\frac{-(x - \\mu_1)^2}{2 \\cdot \\sigma_1^2}\\bigg\\} + A_2 \\cdot \\exp \\bigg\\{\\frac{-(x - \\mu_2)^2}{2 \\cdot \\sigma_2^2}\\bigg\\} + A_3 \\exp\\{-x/\\tau\\}$$\n",
"\n",
2023-08-14 15:01:33 +00:00
"definieren. Hier lohnt es sich erst Funktionen für die einzelnen Komponenten zu definieren und dann das Gesamtmodel. Hierdurch lassen sich später die einzelnen Komponenten besser darstellen."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 70,
"id": "f84d7527-c0d2-475d-966d-5363a8e09369",
"metadata": {},
"outputs": [],
"source": [
"def peak(x, A, mu, sigma):\n",
" return A*np.exp(-(x-mu)**2/(2*sigma**2))\n",
"\n",
"def bkg(x, A, tau):\n",
" return A*np.exp(-x/tau)\n",
"\n",
"def fit_model(x, A_p1, A_p2, mu_p1, mu_p2, sigma_p1, sigma_p2, A_bkg, tau_bkg):\n",
" return peak(x, A_p1, mu_p1, sigma_p1) + peak(x, A_p2, mu_p2, sigma_p2) + bkg(x, A_bkg, tau_bkg)"
]
},
{
"cell_type": "markdown",
"id": "32014861-316c-4692-9d52-48f2fb71321c",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Nun wollen wir wieder die Kostenfunktion und den Minimierungsfunktion definieren. Startwerte können wir anhand unseres Plots ablesen, lediglich $\\tau$ lässt sich auf diese weise nicht gut bestimmen."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 71,
"id": "a31901cf-a0ce-4db8-a072-a661fbbb7296",
"metadata": {},
"outputs": [],
"source": [
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 800, \n",
" A_p2 = 1400,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" A_bkg = 100,\n",
" tau_bkg = 10, \n",
" )\n",
2023-08-14 15:01:33 +00:00
"mi.limits['tau_bkg'] = (0, None)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 72,
"id": "1e69a046-770f-4c38-9b91-0176bb0686a1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"<matplotlib.legend.Legend at 0x7fbb17914df0>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "89f755f4-b780-43a6-a923-49662c4c701a",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Unser Startparameter sind bereits nicht schlecht, aber weichen noch stark von den Daten ab. Bei komplexeren Daten und Fitmodellen lohnt es sich den fit schrittweise durchzuführen. Bevor wir uns den beiden Peaks widmen, welche uns eigentlich interessieren, sollten wir Versuchen den Untergrund etwas besser zu beschreiben. Um den Untergrund besser fitten zu können sollten wir erst den Fitbereich auf einen Energiebereich limitieren, in welchem der Untergrund dominiert. Dem Plot können wir entnehmen, dass dies für alle Werte unterhalb von 45 keV und oberhalb von 70 keV der Fall ist. Im allgemeinen können wir Wertebereiche in python mit Hilfe von „Masken“ selektieren. Eine Maske lässt sich wie folg erstellen:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 73,
"id": "d53e8386-ea7f-43fa-b4fe-65229308a2ec",
"metadata": {},
"outputs": [],
"source": [
"mask_outside_of_peaks = (center < 45) | (center >= 70)"
]
},
{
"cell_type": "markdown",
"id": "84cef7a6-13a0-4ba8-ac40-eb86a54411dc",
"metadata": {},
"source": [
"Die Maske hat hierbei die Selbe länge wie unseren Daten…"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "d1d06116-d726-4163-b414-6ccde6a19027",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(60, 60)"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(mask_outside_of_peaks), len(mask_outside_of_peaks)"
]
},
{
"cell_type": "markdown",
"id": "80db0ae0-5cbd-4db9-b184-610d77bf1c58",
"metadata": {},
"source": [
"… und beinhaltet Wahrheitswerte True und False, bzw. 1 und 0 mit welchen wir unsere Daten wie folgt selektieren können:"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "f24d19d8-3483-45b5-aee9-1d3f8755da22",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ True, True, True, True, True, True, True, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" False, False, False, False, False, False, False, False, False,\n",
" True, True, True, True, True, True, True, True, True,\n",
" True, True, True, True, True, True]),\n",
" array([40.33333333, 41. , 41.66666667, 42.33333333, 43. ,\n",
" 43.66666667, 44.33333333, 70.33333333, 71. , 71.66666667,\n",
" 72.33333333, 73. , 73.66666667, 74.33333333, 75. ,\n",
" 75.66666667, 76.33333333, 77. , 77.66666667, 78.33333333,\n",
" 79. , 79.66666667]))"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mask_outside_of_peaks, center[mask_outside_of_peaks]"
]
},
{
"cell_type": "markdown",
"id": "5b5c07e7-1865-48f2-bd9e-0540661fd71e",
"metadata": {},
"source": [
"Wir können auch verschieden Masken mit Hilfe von Wahrheitsoperatoren kombinieren\n",
"\n",
"TODO add operators and examples +/*\n",
"\n",
" \n",
"Unsere Selektion können wir an unsere Kostenfunktion direkt übergeben. Außerdem müssen wir noch alle Fitparameter festhalten, welche nicht zum Untergrund beitragen. "
]
},
{
"cell_type": "code",
"execution_count": 76,
"id": "3034bb22-0b96-498d-9736-ed9bb2189460",
"metadata": {},
"outputs": [],
"source": [
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[:] = True"
]
},
{
"cell_type": "markdown",
"id": "77a664fd-513e-4c89-ba52-945b6f68512f",
"metadata": {},
"source": [
"Nun können wir nochmal unsere Funktion und Messwerte für den ausgewählten Bereich plotten…"
]
},
{
"cell_type": "code",
"execution_count": 77,
"id": "81232354-a7b8-4e2a-9ac0-159ce0a03da4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"<matplotlib.legend.Legend at 0x7fbb177cbd90>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 77,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center[ls.mask], entries[ls.mask], np.sqrt(entries[ls.mask]), ls='', marker='.', label='Not masked')\n",
"plt.errorbar(center[~ls.mask], entries[~ls.mask], np.sqrt(entries[~ls.mask]), ls='', marker='.', label='Masked')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()"
]
},
2023-08-14 15:01:33 +00:00
{
"cell_type": "markdown",
"id": "c5a8d247-5b71-42ae-9706-d16192374686",
"metadata": {},
"source": [
"… bevor wir die Minmierung starten, und das Resultat darstellen."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 79,
"id": "4a93a1c2-17df-46c2-b38e-9a509fe16fc7",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 800 </td>\n",
" <td> 8 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 1.400e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 54.0 </td>\n",
" <td> 0.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
" <td> 100 </td>\n",
" <td> 1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
" <td> 10.0 </td>\n",
" <td> 0.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 800 │ 8 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 1.400e3 │ 0.014e3 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 54.0 │ 0.5 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 6 │ A_bkg │ 100 │ 1 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 10.0 │ 0.1 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.fixed[['tau_bkg', 'A_bkg']] = False\n",
"mi"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 80,
"id": "3e90c2ed-c282-47c2-b0fe-3063f9545639",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 12.84 (χ²/ndof = 0.6) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 136 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 5.13e-05 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
" <td> 800 </td>\n",
" <td> 8 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 1.400e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
" <td> 54.0 </td>\n",
" <td> 0.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 221 </td>\n",
" <td> 25 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 41.0 </td>\n",
" <td> 3.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 612 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -74 <strong>(-0.963)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(125,125,250);color:black\"> -74 <strong>(-0.963)</strong> </td>\n",
" <td> 9.69 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 12.84 (χ²/ndof = 0.6) │ Nfcn = 136 │\n",
"│ EDM = 5.13e-05 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ A_p1 │ 800 │ 8 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 1.400e3 │ 0.014e3 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 54.0 │ 0.5 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
2023-08-14 15:01:33 +00:00
"│ 6 │ A_bkg │ 221 │ 25 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 41.0 │ 3.1 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ A_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ mu_p2 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p1 │ 0 0 0 0 0 0 0 0 │\n",
"│ sigma_p2 │ 0 0 0 0 0 0 0 0 │\n",
2023-08-14 15:01:33 +00:00
"│ A_bkg │ 0 0 0 0 0 0 612 -74 │\n",
"│ tau_bkg │ 0 0 0 0 0 0 -74 9.69 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 80,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "4837389e-098b-43a0-ad42-2fd354fa7c6e",
"metadata": {},
"source": [
"Now next step first peak..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 81,
"id": "0b435af3-73ea-42de-9ab7-6a16ae9dbceb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"<matplotlib.legend.Legend at 0x7fbb176692b0>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Initial guess')\n",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"id": "6def3e2b-5edf-48bb-99b8-2b7fdaae51c5",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Das Resultat sieht bereits sehr gut aus. Nun können wir uns den eigentlichen Peaks widmen und starten im folgenden mit dem kleineren der Beiden. Zunächst sollten wir den maskierten Bereich entweder neu definieren oder komplett entfernen. "
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 82,
"id": "ebd77c40-6fcd-4881-bc1d-e3ca8ae0bf3b",
"metadata": {},
"outputs": [],
"source": [
"ls.mask = None"
]
},
{
"cell_type": "markdown",
"id": "7850ae53-ae2d-49aa-ac7b-dcef60a2dab7",
"metadata": {},
"source": [
"Außerdem können wir dem Plot entnehmen, dass durch den höheren Unterrund unsere Anfangsstartwerte nicht mehr ganz so gut passen diese können wir wie folgt aktualisieren:"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "823e05a0-516c-4d30-8dc7-5381e0e2e617",
"metadata": {},
2023-08-14 15:01:33 +00:00
"outputs": [],
"source": [
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3"
]
},
{
"cell_type": "markdown",
"id": "8648bf00-901e-40dc-ada2-9a6b684e8f31",
"metadata": {},
"source": [
"Nun sollten wir alle Parameter wieder festhalten und nur die Parameter des ersten Peaks freigeben."
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "3c83690c-103e-47ff-b18f-13ac763ee87d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 1208 (χ²/ndof = 21.2) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 204 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.25e-05 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 710 </td>\n",
" <td> 13 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
" <td> 1.400e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.49 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.0 </td>\n",
" <td> 0.6 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.034 </td>\n",
" <td> 0.033 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.00 </td>\n",
" <td> 0.02 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 221 </td>\n",
" <td> 25 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 41.0 </td>\n",
" <td> 3.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 176 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> -0.0009 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(177,177,250);color:black\"> -0.2454 <strong>(-0.558)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> -0.0009 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.00155 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,217,217);color:black\"> 0.0003 <strong>(0.223)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(177,177,250);color:black\"> -0.2454 <strong>(-0.558)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,217,217);color:black\"> 0.0003 <strong>(0.223)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.0011 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 1208 (χ²/ndof = 21.2) │ Nfcn = 204 │\n",
"│ EDM = 2.25e-05 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 710 │ 13 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.400e3 │ 0.014e3 │ │ │ │ │ yes │\n",
2023-08-14 15:01:33 +00:00
"│ 2 │ mu_p1 │ 53.49 │ 0.04 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
2023-08-14 15:01:33 +00:00
"│ 4 │ sigma_p1 │ 2.034 │ 0.033 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
2023-08-14 15:01:33 +00:00
"│ 6 │ A_bkg │ 221 │ 25 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 41.0 │ 3.1 │ │ │ 0 │ │ yes │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 176 0 -0.0009 0 -0.2454 0 0 0 │\n",
"│ A_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
2023-08-14 15:01:33 +00:00
"│ mu_p1 │ -0.0009 0.0000 0.00155 0.0000 0.0003 0.0000 0.0000 0.0000 │\n",
"│ mu_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
2023-08-14 15:01:33 +00:00
"│ sigma_p1 │ -0.2454 0.0000 0.0003 0.0000 0.0011 0.0000 0.0000 0.0000 │\n",
"│ sigma_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ A_bkg │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ tau_bkg │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "34df75bf-3750-4186-ae12-4f6bb9e49931",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Jetzt wiederholen wir das ganze für den zweiten Peak…"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 85,
"id": "264a9891-423c-479a-8906-c048aac2fd2e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 75.44 (χ²/ndof = 1.3) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 268 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.88e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 710 </td>\n",
" <td> 13 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.162e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.49 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.615 </td>\n",
" <td> 0.031 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.034 </td>\n",
" <td> 0.033 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.671 </td>\n",
" <td> 0.027 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 221 </td>\n",
" <td> 25 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 41.0 </td>\n",
" <td> 3.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> yes </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 206 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,248,248);color:black\"> 5.0e-3 <strong>(0.011)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(174,174,250);color:black\"> -223.8e-3 <strong>(-0.587)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 5.0e-3 <strong>(0.011)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td> 0.000981 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.1e-3 <strong>(-0.181)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(174,174,250);color:black\"> -223.8e-3 <strong>(-0.587)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.1e-3 <strong>(-0.181)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 0.000704 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0e-3 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 75.44 (χ²/ndof = 1.3) │ Nfcn = 268 │\n",
"│ EDM = 1.88e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 710 │ 13 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 1.162e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.49 │ 0.04 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.615 │ 0.031 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.034 │ 0.033 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.671 │ 0.027 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 221 │ 25 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 41.0 │ 3.1 │ │ │ 0 │ │ yes │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 0 0 0 0e-3 0 0 0 0 │\n",
"│ A_p2 │ 0 206 0 5.0e-3 0 -223.8e-3 0 0 │\n",
"│ mu_p1 │ 0 0 0 0e-3 0 0 0 0 │\n",
"│ mu_p2 │ 0e-3 5.0e-3 0e-3 0.000981 0e-3 -0.1e-3 0e-3 0e-3 │\n",
"│ sigma_p1 │ 0 0 0 0e-3 0 0 0 0 │\n",
"│ sigma_p2 │ 0 -223.8e-3 0 -0.1e-3 0 0.000704 0 0 │\n",
"│ A_bkg │ 0 0 0 0e-3 0 0 0 0 │\n",
"│ tau_bkg │ 0 0 0 0e-3 0 0 0 0 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 85,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "32d67543-870f-4bd9-bba4-2d01086c671a",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Bevor wir ein letztes mal wieder alle Parameter freigeben und einen letzten fit durchführen. "
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 86,
"id": "72d43004-cd80-418a-996a-f1e7a7133ce9",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 46.04 (χ²/ndof = 0.9) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 563 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.48e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 649 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.154e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.25 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.46 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.95 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.79 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 247 </td>\n",
" <td> 24 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 38.4 </td>\n",
" <td> 2.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 209 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.03e3 <strong>(0.146)</strong> </td>\n",
" <td style=\"background-color:rgb(250,221,221);color:black\"> 0.181 <strong>(0.195)</strong> </td>\n",
" <td style=\"background-color:rgb(250,213,213);color:black\"> 0.1766 <strong>(0.248)</strong> </td>\n",
" <td style=\"background-color:rgb(219,219,250);color:black\"> -0.1726 <strong>(-0.241)</strong> </td>\n",
" <td style=\"background-color:rgb(210,210,250);color:black\"> -0.1778 <strong>(-0.310)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,245,245);color:black\"> 1 <strong>(0.030)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.03e3 <strong>(0.146)</strong> </td>\n",
" <td> 201 </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 0.049 <strong>(0.054)</strong> </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.0705 <strong>(0.101)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0.0074 <strong>(-0.010)</strong> </td>\n",
" <td style=\"background-color:rgb(189,189,250);color:black\"> -0.2640 <strong>(-0.469)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,221,221);color:black\"> 0.181 <strong>(0.195)</strong> </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 0.049 <strong>(0.054)</strong> </td>\n",
" <td> 0.00413 </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0021 <strong>(0.679)</strong> </td>\n",
" <td style=\"background-color:rgb(250,159,159);color:black\"> 0.0019 <strong>(0.605)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0016 <strong>(-0.628)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.061 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.010 <strong>(0.060)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,213,213);color:black\"> 0.1766 <strong>(0.248)</strong> </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.0705 <strong>(0.101)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0021 <strong>(0.679)</strong> </td>\n",
" <td> 0.00242 </td>\n",
" <td style=\"background-color:rgb(250,163,163);color:black\"> 0.0014 <strong>(0.581)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0012 <strong>(-0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.0656 <strong>(-0.055)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 0.0058 <strong>(0.046)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(219,219,250);color:black\"> -0.1726 <strong>(-0.241)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0.0074 <strong>(-0.010)</strong> </td>\n",
" <td style=\"background-color:rgb(250,159,159);color:black\"> 0.0019 <strong>(0.605)</strong> </td>\n",
" <td style=\"background-color:rgb(250,163,163);color:black\"> 0.0014 <strong>(0.581)</strong> </td>\n",
" <td> 0.00245 </td>\n",
" <td style=\"background-color:rgb(188,188,250);color:black\"> -0.0009 <strong>(-0.473)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.2148 <strong>(-0.178)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0178 <strong>(0.142)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(210,210,250);color:black\"> -0.1778 <strong>(-0.310)</strong> </td>\n",
" <td style=\"background-color:rgb(189,189,250);color:black\"> -0.2640 <strong>(-0.469)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0016 <strong>(-0.628)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0012 <strong>(-0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(188,188,250);color:black\"> -0.0009 <strong>(-0.473)</strong> </td>\n",
" <td> 0.00157 </td>\n",
" <td style=\"background-color:rgb(250,231,231);color:black\"> 0.1254 <strong>(0.130)</strong> </td>\n",
" <td style=\"background-color:rgb(228,228,250);color:black\"> -0.0171 <strong>(-0.170)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.061 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.0656 <strong>(-0.055)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.2148 <strong>(-0.178)</strong> </td>\n",
" <td style=\"background-color:rgb(250,231,231);color:black\"> 0.1254 <strong>(0.130)</strong> </td>\n",
" <td> 593 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -59 <strong>(-0.965)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,245,245);color:black\"> 1 <strong>(0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.010 <strong>(0.060)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 0.0058 <strong>(0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0178 <strong>(0.142)</strong> </td>\n",
" <td style=\"background-color:rgb(228,228,250);color:black\"> -0.0171 <strong>(-0.170)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -59 <strong>(-0.965)</strong> </td>\n",
" <td> 6.37 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 46.04 (χ²/ndof = 0.9) │ Nfcn = 563 │\n",
"│ EDM = 2.48e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 649 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.154e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.25 │ 0.06 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.46 │ 0.05 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 1.95 │ 0.05 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.79 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 247 │ 24 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 38.4 │ 2.5 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 209 0.03e3 0.181 0.1766 -0.1726 -0.1778 -0.01e3 1 │\n",
"│ A_p2 │ 0.03e3 201 0.049 0.0705 -0.0074 -0.2640 -0.01e3 1 │\n",
"│ mu_p1 │ 0.181 0.049 0.00413 0.0021 0.0019 -0.0016 -0.061 0.010 │\n",
"│ mu_p2 │ 0.1766 0.0705 0.0021 0.00242 0.0014 -0.0012 -0.0656 0.0058 │\n",
"│ sigma_p1 │ -0.1726 -0.0074 0.0019 0.0014 0.00245 -0.0009 -0.2148 0.0178 │\n",
"│ sigma_p2 │ -0.1778 -0.2640 -0.0016 -0.0012 -0.0009 0.00157 0.1254 -0.0171 │\n",
"│ A_bkg │ -0.01e3 -0.01e3 -0.061 -0.0656 -0.2148 0.1254 593 -59 │\n",
"│ tau_bkg │ 1 1 0.010 0.0058 0.0178 -0.0171 -59 6.37 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
2023-08-14 15:01:33 +00:00
{
"cell_type": "markdown",
"id": "1510691d-6fbc-466f-a802-647bbc5e9fd2",
"metadata": {},
"source": [
"TODO: Add indivdiual components to the plot..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 95,
"id": "067fbf6f-14c4-4a46-afb3-71753d06af23",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"<matplotlib.legend.Legend at 0x7fbb155e9520>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 95,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.errorbar(center, entries, np.sqrt(entries), ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Number of counts per bin')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"plt.plot(x, fit_model(x, *mi.values), color='k', label='Best fit')\n",
2023-08-14 15:01:33 +00:00
"plt.plot(x, peak(x, *mi.values['A_p1', 'mu_p1', 'sigma_p1']), color='gray', ls='--')\n",
"plt.plot(x, peak(x, *mi.values['A_p2', 'mu_p2', 'sigma_p2']), color='gray', ls='-.')\n",
"plt.plot(x, bkg(x, *mi.values['A_bkg', 'tau_bkg']), color='gray')\n",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"id": "7ef19633-0947-4568-b537-a1c69e42b7c2",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Das Ergebnis sieht sehr gut aus. Alle Kacheln sind grün und die Daten scheinen durch die Funktion gut beschrieben zu werden. Natürlich können wir auch das Gesamte Fitverfahren etwas kompakter in einer Zelle darstellen:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 88,
"id": "2311f135-8410-4f35-8d58-b9bcef0fed53",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 46.04 (χ²/ndof = 0.9) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 563 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.48e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 649 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.154e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.25 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.46 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.95 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.79 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 247 </td>\n",
" <td> 24 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 38.4 </td>\n",
" <td> 2.5 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 209 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.03e3 <strong>(0.146)</strong> </td>\n",
" <td style=\"background-color:rgb(250,221,221);color:black\"> 0.181 <strong>(0.195)</strong> </td>\n",
" <td style=\"background-color:rgb(250,213,213);color:black\"> 0.1766 <strong>(0.248)</strong> </td>\n",
" <td style=\"background-color:rgb(219,219,250);color:black\"> -0.1726 <strong>(-0.241)</strong> </td>\n",
" <td style=\"background-color:rgb(210,210,250);color:black\"> -0.1778 <strong>(-0.310)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,245,245);color:black\"> 1 <strong>(0.030)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.03e3 <strong>(0.146)</strong> </td>\n",
" <td> 201 </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 0.049 <strong>(0.054)</strong> </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.0705 <strong>(0.101)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0.0074 <strong>(-0.010)</strong> </td>\n",
" <td style=\"background-color:rgb(189,189,250);color:black\"> -0.2640 <strong>(-0.469)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,221,221);color:black\"> 0.181 <strong>(0.195)</strong> </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 0.049 <strong>(0.054)</strong> </td>\n",
" <td> 0.00413 </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0021 <strong>(0.679)</strong> </td>\n",
" <td style=\"background-color:rgb(250,159,159);color:black\"> 0.0019 <strong>(0.605)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0016 <strong>(-0.628)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.061 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.010 <strong>(0.060)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,213,213);color:black\"> 0.1766 <strong>(0.248)</strong> </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.0705 <strong>(0.101)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0021 <strong>(0.679)</strong> </td>\n",
" <td> 0.00242 </td>\n",
" <td style=\"background-color:rgb(250,163,163);color:black\"> 0.0014 <strong>(0.581)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0012 <strong>(-0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.0656 <strong>(-0.055)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 0.0058 <strong>(0.046)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(219,219,250);color:black\"> -0.1726 <strong>(-0.241)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0.0074 <strong>(-0.010)</strong> </td>\n",
" <td style=\"background-color:rgb(250,159,159);color:black\"> 0.0019 <strong>(0.605)</strong> </td>\n",
" <td style=\"background-color:rgb(250,163,163);color:black\"> 0.0014 <strong>(0.581)</strong> </td>\n",
" <td> 0.00245 </td>\n",
" <td style=\"background-color:rgb(188,188,250);color:black\"> -0.0009 <strong>(-0.473)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.2148 <strong>(-0.178)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0178 <strong>(0.142)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(210,210,250);color:black\"> -0.1778 <strong>(-0.310)</strong> </td>\n",
" <td style=\"background-color:rgb(189,189,250);color:black\"> -0.2640 <strong>(-0.469)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0016 <strong>(-0.628)</strong> </td>\n",
" <td style=\"background-color:rgb(168,168,250);color:black\"> -0.0012 <strong>(-0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(188,188,250);color:black\"> -0.0009 <strong>(-0.473)</strong> </td>\n",
" <td> 0.00157 </td>\n",
" <td style=\"background-color:rgb(250,231,231);color:black\"> 0.1254 <strong>(0.130)</strong> </td>\n",
" <td style=\"background-color:rgb(228,228,250);color:black\"> -0.0171 <strong>(-0.170)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.01e3 <strong>(-0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.061 <strong>(-0.039)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.0656 <strong>(-0.055)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.2148 <strong>(-0.178)</strong> </td>\n",
" <td style=\"background-color:rgb(250,231,231);color:black\"> 0.1254 <strong>(0.130)</strong> </td>\n",
" <td> 593 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -59 <strong>(-0.965)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,245,245);color:black\"> 1 <strong>(0.030)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,241,241);color:black\"> 0.010 <strong>(0.060)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 0.0058 <strong>(0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.0178 <strong>(0.142)</strong> </td>\n",
" <td style=\"background-color:rgb(228,228,250);color:black\"> -0.0171 <strong>(-0.170)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -59 <strong>(-0.965)</strong> </td>\n",
" <td> 6.37 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 46.04 (χ²/ndof = 0.9) │ Nfcn = 563 │\n",
"│ EDM = 2.48e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 649 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.154e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.25 │ 0.06 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.46 │ 0.05 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 1.95 │ 0.05 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.79 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 247 │ 24 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 38.4 │ 2.5 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 209 0.03e3 0.181 0.1766 -0.1726 -0.1778 -0.01e3 1 │\n",
"│ A_p2 │ 0.03e3 201 0.049 0.0705 -0.0074 -0.2640 -0.01e3 1 │\n",
"│ mu_p1 │ 0.181 0.049 0.00413 0.0021 0.0019 -0.0016 -0.061 0.010 │\n",
"│ mu_p2 │ 0.1766 0.0705 0.0021 0.00242 0.0014 -0.0012 -0.0656 0.0058 │\n",
"│ sigma_p1 │ -0.1726 -0.0074 0.0019 0.0014 0.00245 -0.0009 -0.2148 0.0178 │\n",
"│ sigma_p2 │ -0.1778 -0.2640 -0.0016 -0.0012 -0.0009 0.00157 0.1254 -0.0171 │\n",
"│ A_bkg │ -0.01e3 -0.01e3 -0.061 -0.0656 -0.2148 0.1254 593 -59 │\n",
"│ tau_bkg │ 1 1 0.010 0.0058 0.0178 -0.0171 -59 6.37 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 800, \n",
" A_p2 = 1400,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" A_bkg = 100,\n",
" tau_bkg = 10, \n",
" )\n",
"mi.limits['tau_bkg'] = (0, None)\n",
"mi.fixed[:] = True\n",
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[['tau_bkg', 'A_bkg']] = False\n",
"mi.migrad()\n",
"ls.mask = None\n",
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "3f25d0b2-aeca-45d6-ac95-00a45b4886c0",
"metadata": {},
"source": [
"### Add task here"
]
},
{
"cell_type": "markdown",
"id": "b2d4c8e9-da2c-489e-9b2f-de24f042c341",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
" # Wann fittet ein Fit?\n",
"Nach dem wir nun unser Model an unsere Daten angepasst haben stellt sich die Frage: „Spiegelt unser Model unsere Daten gut wider?“. Um diese Frage beantworten zu könne gibt es verschiedene Möglichkeiten, welche wir uns im Folgenden etwas näher angucken wollen. \n",
"## Fit Residuan: \n",
"Schauen wir uns zunächst noch einmal an, wie das Chi-Quadrat definiert ist:\n",
"$$$$\n",
"Wir minimieren den Abstand zwischen einem Messwert und unserer Model und Gewichten diesen mit den Unsicherheiten unserer Messwerte. Fitresiduan spiegeln genau dies wider. Sie sind definiert als \n",
"$$$$\n",
"Für unseren Fit sehen sie wie folgt aus. \n"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 89,
"id": "30cafddc-ea17-4158-82cc-f132dee2c8de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Residuals [$\\\\sigma$]')"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"residuals = (entries - fit_model(center, *mi.values))/np.sqrt(entries)\n",
"\n",
"plt.plot(center, residuals, ls='', marker='.')\n",
"plt.xlabel('Energy [keV]')\n",
"plt.ylabel('Residuals [$\\sigma$]')"
]
},
{
"cell_type": "markdown",
"id": "d0ef61ca-afc5-472d-8e8e-b4726ef2a3dd",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Als einzelner Plot sind sie noch nicht sehr informative. Hilfreicher ist es bereits sofern wir die Residuanen zusammen mit unseren Daten und Fitmodel darstellen. "
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 96,
"id": "d9fbe83b-3146-4d72-89a4-084c29752e24",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"/tmp/jobs/29593351/ipykernel_11778/53208542.py:7: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig_fit = plt.figure(constrained_layout=True)\n",
"gs = fig_fit.add_gridspec(5, 5, hspace=0)\n",
"\n",
"\n",
"main_axis = fig_fit.add_subplot(gs[:4, :])\n",
"res_axis = fig_fit.add_subplot(gs[4:, :], sharex=main_axis)\n",
"fig_fit.tight_layout()\n",
"\n",
"\n",
"main_axis.errorbar(center, entries, np.sqrt(entries), ls='', marker='.', color='k')\n",
"\n",
2023-08-14 15:01:33 +00:00
"main_axis.plot(x, peak(x, *mi.values['A_p1', 'mu_p1', 'sigma_p1']), color='gray', ls='--')\n",
"main_axis.plot(x, peak(x, *mi.values['A_p2', 'mu_p2', 'sigma_p2']), color='gray', ls='-.')\n",
"main_axis.plot(x, bkg(x, *mi.values['A_bkg', 'tau_bkg']), color='gray')\n",
"\n",
"x = np.arange(40, 80, 0.1)\n",
"main_axis.plot(x, fit_model(x, *mi.values), color='purple', label='Best fit')\n",
"main_axis.legend()\n",
"main_axis.set_ylabel('Number of entries per bin')\n",
"main_axis.xaxis.set_tick_params(direction='inout')\n",
"main_axis.tick_params(axis='x', labelcolor=(0, 0, 0, 0))\n",
"main_axis.set_xlim(40, 80)\n",
"\n",
"res_axis.set_xlabel('Energy [keV]')\n",
"res_axis.set_ylabel('Res [$\\sigma$]')\n",
"res_axis.set_ylim(-3, 3)\n",
"res_axis.set_yticks([-2, 0, 2])\n",
"res_axis.fill_between((40, 80), -1, 1, alpha=0.3, color='purple')\n",
"res_axis.fill_between((40, 80), -2, 2, alpha=0.3, color='purple')\n",
"res_axis.axhline(0, color='purple')\n",
"res_axis.set_xlim(40, 80)\n",
"res_axis.plot(center, \n",
" residuals,\n",
" color='k', marker='.', ls=''\n",
" )\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "dbe65a21-572e-4618-bcd8-78f13e945e8a",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Sofern wir einen unser Fitmodel unsere Daten gut widerspiegelt erwarten wir, dass die Residuen sich Gaußförmig zufällig um den Wert 0 herum verteilen. Dies folgt direkt aus der Annahme, dass de Unsicherheiten unserer Messwerte sich durch eine Gaußverteilung darstellen lassen. Dies können wir direkt überprüfen, sofern wir unsere Residuanen in ein Histogramm eintragen. "
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "05e24224-66f7-45ed-99c6-f6d257e2c779",
"metadata": {},
"outputs": [],
"source": [
"#TODO: Add histogram of residuals"
]
},
{
"cell_type": "markdown",
"id": "08579cdf-3b28-4ea2-9c61-6ae62974af51",
"metadata": {},
"source": [
"Zeigen unsere Residuen eine Struktur oder ein systematisches Verhalten deutet dies auf einen ungenauen Fit oder ein falsches Fitmodel hin. Dies ist im folgenden gezeigt. "
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 54,
"id": "850870af-e546-4d95-b9de-8a4e7b61c241",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"/tmp/jobs/29593351/ipykernel_11778/4141622746.py:10: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pseudo_data = np.random.normal(0, 2, 5000)\n",
"\n",
"\n",
"fig_fit = plt.figure(constrained_layout=True)\n",
"gs = fig_fit.add_gridspec(5, 5, hspace=0)\n",
"\n",
"\n",
"main_axis = fig_fit.add_subplot(gs[:4, :])\n",
"res_axis = fig_fit.add_subplot(gs[4:, :], sharex=main_axis)\n",
"fig_fit.tight_layout()\n",
"\n",
"\n",
"entries1, edges1, _ = main_axis.hist(pseudo_data, bins=25, range=(-5,5), histtype='step', color='k')\n",
"center1 = edges1[:-1] + np.diff(edges1)/2\n",
"\n",
"residuals1 = (entries1 - peak(center1, 400, 0.2, 2))/np.sqrt(entries1)\n",
"\n",
"x = np.arange(-5, 5, 0.1)\n",
"\n",
"main_axis.plot(x, peak(x, 400, 0.2, 2), color='purple')\n",
"main_axis.set_ylabel('Number of entries per bin')\n",
"main_axis.xaxis.set_tick_params(direction='inout')\n",
"main_axis.tick_params(axis='x', labelcolor=(0, 0, 0, 0))\n",
"main_axis.set_xlim(-5, 5)\n",
"\n",
"res_axis.set_xlabel('Energy [keV]')\n",
"res_axis.set_ylabel('Res [$\\sigma$]')\n",
"res_axis.set_ylim(-3, 3)\n",
"res_axis.set_yticks([-2, 0, 2])\n",
"res_axis.fill_between((-5, 5), -1, 1, alpha=0.3, color='purple')\n",
"res_axis.fill_between((-5, 5), -2, 2, alpha=0.3, color='purple')\n",
"res_axis.axhline(0, color='purple')\n",
"res_axis.set_xlim(-5, 5)\n",
"res_axis.plot(center1, \n",
" residuals1,\n",
" color='k', marker='.', ls=''\n",
" )\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "48e95a88-0742-4221-a716-17dacfc02823",
"metadata": {},
"source": [
2023-08-14 15:01:33 +00:00
"Zusätzlich zu den Fit Residuan bietet das $\\chi^2$ selbst einen Weg um die „goodness-of-fit“ unseres Model bestimmen zu können...\n",
"\n",
"### Chi-Square:"
]
},
{
"cell_type": "markdown",
"id": "fe1789cf-7ed3-4db3-a0ae-9e563a9dc85e",
"metadata": {},
"source": [
"Need to update the following:...\n",
"\n",
"\n",
"Wie Sie sehen können, ist der Wert für den Widerstand zwar gleich geblieben, jedoch die Unsicherheit des Wertes hat sich erhöht.\n",
"\n",
"Wie gut fittet unsere obige Funktion unsere Messdaten? Sehr gut? Gut? Befriedigend? Oder doch eher schlecht? Wäre es nicht gut, ein Maß für die Güte des Fits zu haben? Wie könnte ein solches Maß aussehen?\n",
"\n",
"Sie haben das entscheidende Kriterium bereits kennengelernt, bei der Methode der kleinsten Quadrate geht es darum, das $\\chi^2$ zu minimieren. Gucken wir uns hierzu erst noch einmal an, wie sich das $\\chi^2$ berechnet:\n",
"\n",
"$$ \\chi(\\phi_1 ... \\phi_N)^2 = \\sum_{i = 1}^{N} \\frac{ (y_i - \\lambda(x_i; \\phi))^2}{\\Delta y_i^2}$$\n",
"\n",
"\n",
"Coming back to figure\n",
"\n",
"<figure class=\"image\">\n",
"<img src=\"images/MaterialPythonkurs092018/LeastSquare.png\" alt=\"{{ Least Square Beispiel }}\" width=80%>\n",
"</figure>\n",
"\n",
"Chi-Square can be understood easily, want to minimize distance, put bigger emphsis on values with smaller uncertainty as more confident...\n",
"\n",
"\n",
"\n",
"Wie Sie sehen können, ist das $\\chi^2$ für unsere zweite Funktion etwas größer als für das klassische ohm'sche Gesetzt. Somit würden wir unseren zweiten Ansatz verwerfen.\n",
"\n",
"Damit man für einen gegebenen Datensatz nicht hunderte von verschiedenen Funktionen durchprobieren muss, gibt es für das $\\chi^2$ eine allgemeine Faustregel, welche den berechneten $\\chi^2$-Wert mit der Anzahl unserer Freiheitsgrade vergleicht. Die Anzahl an Freiheitsgrade ist allgemeinhin gegeben als *Anzahl der Messwerte - Anzahl der Funktionsparameter* ($m - n$).\n",
"\n",
"1. Sofern $\\chi^2/\\text{ndof} >> 1$: sollte die Hypothese bzw. die Fitfunktion angezweifelt werden. Sie beschreibt in diesem Fall die Messdaten nur unzureichend. (Bzw. sollte $\\chi^2/\\text{ndof} > 1$ kann dies auch bedeuten, dass die Unsicherheiten unterschätzt sind)\n",
"2. Sofern $\\chi^2/\\text{ndof} \\approx 1$: beschreibt die Hypothese bzw. die Fitfunktion die Daten wie erwartet und wird nicht abgelehnt. \n",
"3. Falls $\\chi^2/\\text{ndof} << 1$ beschreibt die Hypothese bzw. die Fitfunktion die Daten wesentlich besser als erwartet. In diesem Fall heißt es nicht, dass unsere Hypothese falsch ist, aber man sollte überprüfen, ob die gemessenen Fehler nicht überschätzt worden sind (oder eine Korrelation zwischen den Messfehlern vorliegt). \n",
"\n",
"Sofern Sie eine Arbeit schreiben und Ihre **Goodness-of-the-Fit** ($\\chi^2/\\text{ndof}$) angeben wollen, so geben Sie immer beides an, das $\\chi^2$ und die Anzahl an Freiheitsgraden ndof. Beide Werte getrennt haben einen größeren Informationsgehalt als der resultierende Quotient (Genaueres lernen Sie z.B. in der Vorlesung *Statistik, Datenanalyse und Simulationen* im Master).\n",
"\n",
"Sehen wir uns hierzu nochmal unseren Doppelpeakfit etwas genauer an. Iminuit berechnet hier für uns bereits das reuzierete $\\chi^2$."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 55,
"id": "fa85a19a-f066-4567-abb0-6283ae1bc90b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 71.34 (χ²/ndof = 1.4) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 517 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.63e-06 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 627 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.142e3 </td>\n",
" <td> 0.014e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.38 </td>\n",
" <td> 0.09 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.50 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.18 </td>\n",
" <td> 0.06 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.76 </td>\n",
" <td> 0.04 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> A_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 222 </td>\n",
" <td> 23 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 7 </th>\n",
" <td> tau_bkg </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 40.1 </td>\n",
" <td> 2.9 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> A_bkg </th>\n",
" <th> tau_bkg </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 196 </td>\n",
" <td style=\"background-color:rgb(250,230,230);color:black\"> 0.03e3 <strong>(0.134)</strong> </td>\n",
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.333 <strong>(0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(250,198,198);color:black\"> 0.292 <strong>(0.344)</strong> </td>\n",
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.081 <strong>(-0.092)</strong> </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2462 <strong>(-0.397)</strong> </td>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.01e3 <strong>(-0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,243,243);color:black\"> 2 <strong>(0.046)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,230,230);color:black\"> 0.03e3 <strong>(0.134)</strong> </td>\n",
" <td> 202 </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.064 <strong>(-0.052)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.010 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.100 <strong>(-0.112)</strong> </td>\n",
" <td style=\"background-color:rgb(205,205,250);color:black\"> -0.2153 <strong>(-0.342)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0 <strong>(-0.009)</strong> </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0 <strong>(0.007)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.333 <strong>(0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(243,243,250);color:black\"> -0.064 <strong>(-0.052)</strong> </td>\n",
" <td> 0.00757 </td>\n",
" <td style=\"background-color:rgb(250,132,132);color:black\"> 0.004 <strong>(0.788)</strong> </td>\n",
" <td style=\"background-color:rgb(250,140,140);color:black\"> 0.004 <strong>(0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.717)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.161 <strong>(-0.081)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.023 <strong>(0.094)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,198,198);color:black\"> 0.292 <strong>(0.344)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.010 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(250,132,132);color:black\"> 0.004 <strong>(0.788)</strong> </td>\n",
" <td> 0.00367 </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.003 <strong>(0.689)</strong> </td>\n",
" <td style=\"background-color:rgb(154,154,250);color:black\"> -0.0020 <strong>(-0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(237,237,250);color:black\"> -0.135 <strong>(-0.097)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.015 <strong>(0.088)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.081 <strong>(-0.092)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.100 <strong>(-0.112)</strong> </td>\n",
" <td style=\"background-color:rgb(250,140,140);color:black\"> 0.004 <strong>(0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(250,147,147);color:black\"> 0.003 <strong>(0.689)</strong> </td>\n",
" <td> 0.00396 </td>\n",
" <td style=\"background-color:rgb(176,176,250);color:black\"> -0.0016 <strong>(-0.571)</strong> </td>\n",
" <td style=\"background-color:rgb(223,223,250);color:black\"> -0.302 <strong>(-0.208)</strong> </td>\n",
" <td style=\"background-color:rgb(250,224,224);color:black\"> 0.031 <strong>(0.173)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2462 <strong>(-0.397)</strong> </td>\n",
" <td style=\"background-color:rgb(205,205,250);color:black\"> -0.2153 <strong>(-0.342)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.717)</strong> </td>\n",
" <td style=\"background-color:rgb(154,154,250);color:black\"> -0.0020 <strong>(-0.736)</strong> </td>\n",
" <td style=\"background-color:rgb(176,176,250);color:black\"> -0.0016 <strong>(-0.571)</strong> </td>\n",
" <td> 0.00196 </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.1500 <strong>(0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0229 <strong>(-0.181)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.01e3 <strong>(-0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(249,249,250);color:black\"> -0 <strong>(-0.009)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.161 <strong>(-0.081)</strong> </td>\n",
" <td style=\"background-color:rgb(237,237,250);color:black\"> -0.135 <strong>(-0.097)</strong> </td>\n",
" <td style=\"background-color:rgb(223,223,250);color:black\"> -0.302 <strong>(-0.208)</strong> </td>\n",
" <td style=\"background-color:rgb(250,228,228);color:black\"> 0.1500 <strong>(0.147)</strong> </td>\n",
" <td> 530 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -64 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,243,243);color:black\"> 2 <strong>(0.046)</strong> </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0 <strong>(0.007)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.023 <strong>(0.094)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.015 <strong>(0.088)</strong> </td>\n",
" <td style=\"background-color:rgb(250,224,224);color:black\"> 0.031 <strong>(0.173)</strong> </td>\n",
" <td style=\"background-color:rgb(227,227,250);color:black\"> -0.0229 <strong>(-0.181)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -64 <strong>(-0.966)</strong> </td>\n",
" <td> 8.17 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 71.34 (χ²/ndof = 1.4) │ Nfcn = 517 │\n",
"│ EDM = 1.63e-06 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 627 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.142e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.38 │ 0.09 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.50 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.18 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.76 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 222 │ 23 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 40.1 │ 2.9 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 196 0.03e3 0.333 0.292 -0.081 -0.2462 -0.01e3 2 │\n",
"│ A_p2 │ 0.03e3 202 -0.064 0.010 -0.100 -0.2153 -0 0 │\n",
"│ mu_p1 │ 0.333 -0.064 0.00757 0.004 0.004 -0.0028 -0.161 0.023 │\n",
"│ mu_p2 │ 0.292 0.010 0.004 0.00367 0.003 -0.0020 -0.135 0.015 │\n",
"│ sigma_p1 │ -0.081 -0.100 0.004 0.003 0.00396 -0.0016 -0.302 0.031 │\n",
"│ sigma_p2 │ -0.2462 -0.2153 -0.0028 -0.0020 -0.0016 0.00196 0.1500 -0.0229 │\n",
"│ A_bkg │ -0.01e3 -0 -0.161 -0.135 -0.302 0.1500 530 -64 │\n",
"│ tau_bkg │ 2 0 0.023 0.015 0.031 -0.0229 -64 8.17 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mi"
]
},
{
"cell_type": "markdown",
"id": "9f464246-d333-4143-baf0-aa2a632c5be4",
"metadata": {},
"source": [
"Estimate ourselves:"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 56,
"id": "b0ad46ce-f541-40bb-898c-154ad5f94787",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"71.34036100527231 52 1.37193001933216\n"
]
}
],
"source": [
"def chi_squre_ndof(x_values, y_values, dy_values, fit_model, minuit):\n",
" ndof = len(x_values) - len(minuit.values)\n",
" chi = np.sum((y_values - fit_model(x_values, *minuit.values))**2/dy_values**2)\n",
" return chi, ndof\n",
"\n",
"\n",
"chi_squre, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), fit_model, mi)\n",
"print(chi_squre, ndof, chi_squre/ndof)"
]
},
{
"cell_type": "markdown",
"id": "295031f4-6d18-411c-b5dd-a62ed97da7f1",
"metadata": {},
"source": [
"### Chi-Squre hypothesis testing..."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 57,
"id": "8c11bc85-4e25-4d40-8397-257414d48a1f",
"metadata": {},
"outputs": [],
"source": [
"from scipy.stats import chi2\n",
"chi_distribution = lambda x, ndof: chi2.pdf(x, ndof)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 58,
"id": "76836863-109c-4e7c-989e-04b62ec4ca9d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, '$\\\\chi^2(x)$')"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlAAAAGwCAYAAABmTltaAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmYElEQVR4nO3deVzUdf4H8NfMwMxwzXAzgiCoKJ6gqIhp6kpiWknboWZp5nZtmkZbaVvqVpu1ZVlrv1yrrbbVNK3MWKMQzQvyAPEGTwSR4RBhOGeYme/vD2CKRAU5vnO8no/HPNTvfOY77++I8PLz+Xw/H4kgCAKIiIiIqNWkYhdAREREZGsYoIiIiIjaiAGKiIiIqI0YoIiIiIjaiAGKiIiIqI0YoIiIiIjaiAGKiIiIqI2cxC7AHpnNZly6dAkeHh6QSCRil0NEREStIAgCKisrERgYCKn0+n1MDFCd4NKlSwgODha7DCIiIroJ+fn56N69+3XbMEB1Ag8PDwANfwEqlUrkaoiIiKg1dDodgoODLT/Hr4cBqhM0DdupVCoGKCIiIhvTmuk3nERORERE1EYMUERERERtxABFRERE1EYMUERERERtxABFRERE1EYMUERERERtxABFRERE1EYMUERERERtxABFRERE1EZWH6A++OADhIaGQqlUIiYmBvv3779u+40bNyIiIgJKpRKDBg3C1q1br9n2iSeegEQiwcqVK5sdLysrw8yZM6FSqeDp6Ym5c+eiqqqqIy6HiIiI7IBVB6gNGzYgMTERS5cuRWZmJiIjIxEfH4/i4uIW26elpWHGjBmYO3cuDh06hISEBCQkJODYsWNXtf3222/xyy+/IDAw8KrnZs6ciePHjyMlJQVJSUnYtWsXHnvssQ6/PiIiIrJNEkEQBLGLuJaYmBgMHz4cq1atAgCYzWYEBwdj/vz5WLRo0VXtp02bhurqaiQlJVmOjRw5ElFRUVi9erXlWEFBAWJiYvDjjz9iypQpWLhwIRYuXAgAOHnyJPr3748DBw5g2LBhAIDk5GRMnjwZFy9ebDFw/Z5Op4NarUZFRQX3wiMiIrIRbfn5bbU9UAaDARkZGYiLi7Mck0qliIuLQ3p6eouvSU9Pb9YeAOLj45u1N5vNeOihh/Dcc89hwIABLZ7D09PTEp4AIC4uDlKpFPv27WvxffV6PXQ6XbMHERER2S+rDVClpaUwmUwICAhodjwgIABarbbF12i12hu2f/PNN+Hk5ISnn376mufw9/dvdszJyQne3t7XfN/ly5dDrVZbHsHBwTe8PiK6OfllNdhzuhQVtfVil0JEDsxJ7AK6UkZGBt577z1kZmZCIpF02HkXL16MxMREy591Oh1DFFEHqdIbkX72MnafLsGuUyXIvVwDAJBKgMhgT4zp7YtbevtiSIgX5E5W+39CIrIzVhugfH19IZPJUFRU1Ox4UVERNBpNi6/RaDTXbb97924UFxcjJCTE8rzJZMKzzz6LlStXIjc3FxqN5qpJ6kajEWVlZdd8X4VCAYVC0eZrJKKWmcwC/vvLBfzvaCEyL1yB0fzrVE0nqQQBKiUKymtxKK8ch/LK8f72M3CTyxDT0wcPxfbA+L7+1zk7EVH7WW2AksvliI6ORmpqKhISEgA0zF9KTU3FvHnzWnxNbGwsUlNTLRPCASAlJQWxsbEAgIceeqjFOVIPPfQQ5syZYzlHeXk5MjIyEB0dDQDYvn07zGYzYmJiOvgqiej3qvRGLFyfhW0nf/3PUA8fV9wa7ocx4b6I7eUDD6UzCsprsfd0KXafKcXeM6UoqzZge3YxtmcX48/jeuHZiX0hk3ZcTzMR0W9ZbYACgMTERMyePRvDhg3DiBEjsHLlSlRXV1vCzqxZsxAUFITly5cDABYsWICxY8dixYoVmDJlCtavX4+DBw9izZo1AAAfHx/4+Pg0ew9nZ2doNBr07dsXANCvXz9MmjQJjz76KFavXo36+nrMmzcP06dPb9UdeER08y5eqcGfPj+IbG0l5E5S/GViH8QP0KCHj9tVbYM8XXD/8GDcPzwYZrOAE4U6rD+Qh//+kof/+/ksjhZU4L3pQ+DtJhfhSojI3ll1gJo2bRpKSkqwZMkSaLVaREVFITk52TJRPC8vD1Lpr3MeRo0ahXXr1uGll17Ciy++iPDwcGzevBkDBw5s0/uuXbsW8+bNw4QJEyCVSnHPPffg/fff79BrI6LmMi6U4fEvMlBaZYCvuwIfzYrGkBCvVr1WKpVgYJAarwUNwvBQbyz6+ih2ny7Fnf/cg9UPRmNQd3UnV09Ejsaq14GyVVwHiqhtvs64iMXfHIXBZEb/bip8PHsYAj1dbvp82VodnvgiA7mXayB3kuK1qQNx/3De2EFE12cX60ARkf0zmwW8mZyNZzcehsFkRvyAAGx6MrZd4QkAIjQqfDdvNOL6+cNgNOP5r49g8TdHYTSZO6hyInJ0DFBEJJpX/3cCH/58FgDw1Phe+HBmNFzlHTOzQO3ijDUPDcOzt/WBRAJ8uT8PbyZnd8i5iYgYoIhIFNuzi/Dp3lwAwNv3ReK5+AhIO/iuOalUgvkTwvH+9CEAgI92n8eWw5c69D2IyDExQBFRlyvW1eEvG48AAB65JQz3Rnfv1Pe7MzIQT47rBQB4YdMRnCzkdktE1D4MUETUpcxmAc9uPIyyagP6dVPhhdv7dsn7/mViX4wJ90VtvQmPf5GB8hpDl7wvEdknBigi6lL/3nseu0+XQuksxfvTo6BwknXJ+8qkEvxzxhAEe7sgr6wGC9ZnwWTmTchEdHMYoIioyxwrqLBM5H75jv4ID/Do0vf3dJXjXw8Og9JZip2nSvBuyqkufX8ish8MUETUJWoMRjy9/hDqTQLiBwTggREhN35RJ+gfqMKb9wwGAKzacQbJx7Si1EFEto0Bioi6xCvfn8C5kmpoVEq88cfBkEjE26dualQQ5o4OAwA8+1UWzhRXilYLEdkmBigi6nRbjxZi/YF8SCTAO9Mi4WUF+9Mtvj0CI3t6o9pgwsINnA9FRG3DAEVEnaqiph6LvzkKAHhybC+M6uUrckUNnGRS/HPGUHgonXCsoGEjYiKi1mKAIqJO9a9dZ1FRW4++AR545rY+YpfTjJ+HAs821vTWjzm4Us2lDYiodRigiKjTlFTqLauN/yW+L5xl1vct58GRPRCh8UB5TT3e/ilH7HKIyEZY33czIrIb//fzGdTWmxAZ7Im4fv5il9MiJ5kUf7trAABg3f48HCuoELkiIrIFDFBE1Ckulddi7S8N84r+MrGPqHfd3UhMTx8kRAVCEICXvzsGMyeUE9ENMEARUaf45/bTMJjMiAnzxuje1jFx/HoWT+4HN7kMh/LK8XXmRbHLISIrxwBFRB0ut7QaXx1sCCHPxfe16t6nJgEqJRbEhQMA3kzORkVtvcgVEZE1Y4Aiog63ctspmMwCxvX1w7BQb7HLabWHR4Whl58bSqsMWLmN27wQ0bUxQBFRh8rRVuK7w5cAAH+Z2FfkatpG7iTF3+4aCAD4T/oFZGt1IldERNaKAYqIOtQ7KTkQBOD2gRoMDFKLXU6bjQ73xeRBGpjMApZ8dxyCwAnlRHQ1Bigi6jBHLpbjx+NFkEiARCtbNLMt/jqlP5TOUuw/X4YdOcVil0NEVogBiog6zNs/NcwbujsqCOEBHiJXc/OCPF0wOzYUAPB+6hn2QhHRVRigiKhD7D9fhl2nSuAklWBhnO32PjX505ieUDpLkZVfjj1nSsUuh4isDAMUEXWIj3efAwDcNywYIT6uIlfTfn4eCjwwogcA4P3U0+yFIqJmGKCIqN0ulddi28kiAMAjt4SKW0wHenxsT8idpDiQewW/nCsTuxwisiIMUETUbuv358EsACN7etv03KffC1ApMW1YMICGldWJiJowQBFRuxiMZnx5IB8A8NDIUHGL6QRPjOsFZ5kEaWcvI+MCe6GIqAEDFBG1y08ntCip1MPPQ4GJAwLELqfDBXm64J6h3QE03JFHRAQwQBFRO/33lwsAgBnDg+Ess89vKX8e1xsyqQQ7T5UgK79c7HKIyArY53c7IuoSp4sq8cu
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = np.arange(20, 90)\n",
"plt.plot(x, chi_distribution(x, 52))\n",
"\n",
"x = np.arange(chi_squre, 90, 0.1)\n",
"plt.fill_between(x, chi_distribution(x, 52), alpha=0.3)\n",
"plt.ylim(0, None)\n",
"plt.xlabel('x')\n",
"plt.ylabel('$\\chi^2(x)$')"
]
},
{
"cell_type": "markdown",
"id": "b30829b3-a9e8-4d93-8895-9fd9f67ab9dc",
"metadata": {},
"source": [
"Explain p-value...."
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 59,
"id": "cfa9d88a-eada-49dd-8cb3-73c7dd345c08",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2023-08-14 15:01:33 +00:00
"(0.038725580428877526, 3.286394945067883e-08)"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p_value = lambda x, ndof: 1 - chi2.cdf(x, ndof)\n",
"p_value(chi_squre, ndof), p_value(chi_squre*10, ndof*10)"
]
},
{
"cell_type": "markdown",
"id": "9cba146a-6309-42d1-92cb-8bdde2da42a2",
"metadata": {},
"source": [
"Try alternative fit model"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 60,
"id": "9b91ee55-ac17-4dd6-9827-48677f772096",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<table>\n",
" <tr>\n",
" <th colspan=\"5\" style=\"text-align:center\" title=\"Minimizer\"> Migrad </th>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 247.8 (χ²/ndof = 4.7) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 296 </td>\n",
" </tr>\n",
" <tr>\n",
2023-08-14 15:01:33 +00:00
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 5.03e-07 (Goal: 0.0002) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total run time of algorithms\"> </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Valid Minimum </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> No Parameters at limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below EDM threshold (goal x 10) </td>\n",
" <td colspan=\"3\" style=\"text-align:center;background-color:#92CCA6;color:black\"> Below call limit </td>\n",
" </tr>\n",
" <tr>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Covariance </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\"> Hesse ok </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix accurate?\"> Accurate </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Is covariance matrix positive definite?\"> Pos. def. </td>\n",
" <td style=\"text-align:center;background-color:#92CCA6;color:black\" title=\"Was positive definiteness enforced by Minuit?\"> Not forced </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th title=\"Variable name\"> Name </th>\n",
" <th title=\"Value of parameter\"> Value </th>\n",
" <th title=\"Hesse error\"> Hesse Error </th>\n",
" <th title=\"Minos lower error\"> Minos Error- </th>\n",
" <th title=\"Minos upper error\"> Minos Error+ </th>\n",
" <th title=\"Lower limit of the parameter\"> Limit- </th>\n",
" <th title=\"Upper limit of the parameter\"> Limit+ </th>\n",
" <th title=\"Is the parameter fixed in the fit\"> Fixed </th>\n",
" </tr>\n",
" <tr>\n",
" <th> 0 </th>\n",
" <td> A_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 635 </td>\n",
" <td> 14 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 1 </th>\n",
" <td> A_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 1.140e3 </td>\n",
" <td> 0.015e3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 2 </th>\n",
" <td> mu_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 53.5 </td>\n",
" <td> 0.1 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 3 </th>\n",
" <td> mu_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 60.61 </td>\n",
" <td> 0.07 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 4 </th>\n",
" <td> sigma_p1 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.42 </td>\n",
" <td> 0.08 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 5 </th>\n",
" <td> sigma_p2 </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 2.68 </td>\n",
" <td> 0.05 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> 6 </th>\n",
" <td> c </td>\n",
2023-08-14 15:01:33 +00:00
" <td> 43.8 </td>\n",
" <td> 1.3 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" <td> 0 </td>\n",
" <td> </td>\n",
" <td> </td>\n",
" </tr>\n",
"</table><table>\n",
" <tr>\n",
" <td></td>\n",
" <th> A_p1 </th>\n",
" <th> A_p2 </th>\n",
" <th> mu_p1 </th>\n",
" <th> mu_p2 </th>\n",
" <th> sigma_p1 </th>\n",
" <th> sigma_p2 </th>\n",
" <th> c </th>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td> 182 </td>\n",
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.02e3 <strong>(0.102)</strong> </td>\n",
" <td style=\"background-color:rgb(250,211,211);color:black\"> 0.357 <strong>(0.258)</strong> </td>\n",
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.290 <strong>(0.322)</strong> </td>\n",
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.095 <strong>(-0.093)</strong> </td>\n",
" <td style=\"background-color:rgb(200,200,250);color:black\"> -0.2364 <strong>(-0.388)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.014)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,235,235);color:black\"> 0.02e3 <strong>(0.102)</strong> </td>\n",
" <td> 217 </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.324 <strong>(-0.214)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.151 <strong>(-0.153)</strong> </td>\n",
" <td style=\"background-color:rgb(215,215,250);color:black\"> -0.304 <strong>(-0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(226,226,250);color:black\"> -0.1248 <strong>(-0.188)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.012)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,211,211);color:black\"> 0.357 <strong>(0.258)</strong> </td>\n",
" <td style=\"background-color:rgb(222,222,250);color:black\"> -0.324 <strong>(-0.214)</strong> </td>\n",
" <td> 0.0105 </td>\n",
" <td style=\"background-color:rgb(250,124,124);color:black\"> 0.006 <strong>(0.837)</strong> </td>\n",
" <td style=\"background-color:rgb(250,130,130);color:black\"> 0.006 <strong>(0.803)</strong> </td>\n",
" <td style=\"background-color:rgb(152,152,250);color:black\"> -0.0035 <strong>(-0.751)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0.002 <strong>(0.017)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.290 <strong>(0.322)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.151 <strong>(-0.153)</strong> </td>\n",
" <td style=\"background-color:rgb(250,124,124);color:black\"> 0.006 <strong>(0.837)</strong> </td>\n",
" <td> 0.00446 </td>\n",
" <td style=\"background-color:rgb(250,137,137);color:black\"> 0.004 <strong>(0.753)</strong> </td>\n",
" <td style=\"background-color:rgb(151,151,250);color:black\"> -0.0023 <strong>(-0.761)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.005 <strong>(-0.058)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(238,238,250);color:black\"> -0.095 <strong>(-0.093)</strong> </td>\n",
" <td style=\"background-color:rgb(215,215,250);color:black\"> -0.304 <strong>(-0.273)</strong> </td>\n",
" <td style=\"background-color:rgb(250,130,130);color:black\"> 0.006 <strong>(0.803)</strong> </td>\n",
" <td style=\"background-color:rgb(250,137,137);color:black\"> 0.004 <strong>(0.753)</strong> </td>\n",
" <td> 0.00569 </td>\n",
" <td style=\"background-color:rgb(171,171,250);color:black\"> -0.0021 <strong>(-0.608)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.013 <strong>(-0.131)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(200,200,250);color:black\"> -0.2364 <strong>(-0.388)</strong> </td>\n",
" <td style=\"background-color:rgb(226,226,250);color:black\"> -0.1248 <strong>(-0.188)</strong> </td>\n",
" <td style=\"background-color:rgb(152,152,250);color:black\"> -0.0035 <strong>(-0.751)</strong> </td>\n",
" <td style=\"background-color:rgb(151,151,250);color:black\"> -0.0023 <strong>(-0.761)</strong> </td>\n",
" <td style=\"background-color:rgb(171,171,250);color:black\"> -0.0021 <strong>(-0.608)</strong> </td>\n",
" <td> 0.00204 </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.0064 <strong>(-0.112)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> c </th>\n",
2023-08-14 15:01:33 +00:00
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.014)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.012)</strong> </td>\n",
" <td style=\"background-color:rgb(250,247,247);color:black\"> 0.002 <strong>(0.017)</strong> </td>\n",
" <td style=\"background-color:rgb(242,242,250);color:black\"> -0.005 <strong>(-0.058)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.013 <strong>(-0.131)</strong> </td>\n",
" <td style=\"background-color:rgb(235,235,250);color:black\"> -0.0064 <strong>(-0.112)</strong> </td>\n",
" <td> 1.62 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ FCN = 247.8 (χ²/ndof = 4.7) │ Nfcn = 296 │\n",
"│ EDM = 5.03e-07 (Goal: 0.0002) │ │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Valid Minimum │ No Parameters at limit │\n",
"├──────────────────────────────────┼──────────────────────────────────────┤\n",
"│ Below EDM threshold (goal x 10) │ Below call limit │\n",
"├───────────────┬──────────────────┼───────────┬─────────────┬────────────┤\n",
"│ Covariance │ Hesse ok │ Accurate │ Pos. def. │ Not forced │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
2023-08-14 15:01:33 +00:00
"│ 0 │ A_p1 │ 635 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.140e3 │ 0.015e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.5 │ 0.1 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.61 │ 0.07 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.42 │ 0.08 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.68 │ 0.05 │ │ │ │ │ │\n",
"│ 6 │ c │ 43.8 │ 1.3 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 c │\n",
"├──────────┼────────────────────────────────────────────────────────────────┤\n",
2023-08-14 15:01:33 +00:00
"│ A_p1 │ 182 0.02e3 0.357 0.290 -0.095 -0.2364 0.2 │\n",
"│ A_p2 │ 0.02e3 217 -0.324 -0.151 -0.304 -0.1248 0.2 │\n",
"│ mu_p1 │ 0.357 -0.324 0.0105 0.006 0.006 -0.0035 0.002 │\n",
"│ mu_p2 │ 0.290 -0.151 0.006 0.00446 0.004 -0.0023 -0.005 │\n",
"│ sigma_p1 │ -0.095 -0.304 0.006 0.004 0.00569 -0.0021 -0.013 │\n",
"│ sigma_p2 │ -0.2364 -0.1248 -0.0035 -0.0023 -0.0021 0.00204 -0.0064 │\n",
"│ c │ 0.2 0.2 0.002 -0.005 -0.013 -0.0064 1.62 │\n",
"└──────────┴────────────────────────────────────────────────────────────────┘"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def alternative_fit_model(x, A_p1, A_p2, mu_p1, mu_p2, sigma_p1, sigma_p2, c):\n",
" return peak(x, A_p1, mu_p1, sigma_p1) + peak(x, A_p2, mu_p2, sigma_p2) + c\n",
"\n",
"ls = cost.LeastSquares(center, entries, np.sqrt(entries), alternative_fit_model)\n",
"\n",
"mi = Minuit(ls, \n",
" A_p1 = 800, \n",
" A_p2 = 1400,\n",
" mu_p1 = 54,\n",
" mu_p2 = 60,\n",
" sigma_p1 = 2,\n",
" sigma_p2 = 2,\n",
" c = 100, \n",
" )\n",
"mi.limits['c'] = (0, None)\n",
"mi.fixed[:] = True\n",
"ls.mask = (center < 45) | (center >= 70)\n",
"mi.fixed[['c']] = False\n",
"mi.migrad()\n",
"ls.mask = None\n",
"mi.values['A_p1'] = 700\n",
"mi.values['sigma_p1'] = 3\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p1', 'mu_p1', 'sigma_p1']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = True\n",
"mi.fixed[['A_p2', 'mu_p2', 'sigma_p2']] = False\n",
"mi.migrad()\n",
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 61,
"id": "4aa0f3d9-1d0b-4b4c-b816-2a0cb9ae9793",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"247.75609338750667 53 4.67464327146239\n"
]
}
],
"source": [
"chi_squre, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), alternative_fit_model, mi)\n",
"print(chi_squre, ndof, chi_squre/ndof)"
]
},
{
"cell_type": "markdown",
"id": "bcb62098-1e8b-4c9f-8aa3-048037f0d21e",
"metadata": {},
"source": [
"Fit obviusly worse...\n",
"\n",
"But is p-value of 0.4 better than 0.2? No ! Hypothesis test -> need to decide on threshold before..."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2aa83565-40bf-4a06-a289-772af9201699",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "19e53c1c-a95b-416f-a461-55786b812a96",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "1d790f2a-d2ca-454b-b207-eced7c2c498a",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c020ed79-cf0d-4de4-855a-ef6b5307c6c7",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "9e474fae-192a-4067-91fc-d0b03b47d762",
"metadata": {},
"source": [
"When do assumptions break? \n",
"\n",
"E.g. low stats. \n",
"\n",
"Should we add ML and unbinned fits here? Maybe as outlook as otherwise too much?"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 62,
"id": "c3f1f1d4-4b84-45a1-9d23-4cbb8ba32c8c",
"metadata": {},
"outputs": [],
"source": [
"def lorentzian( x, x0, a, gam ):\n",
" return a * gam**2 / ( gam**2 + ( x - x0 )**2)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 63,
"id": "c3b58808-f155-4194-b02e-e5f649cb86aa",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2023-08-14 15:01:33 +00:00
"model_id": "f30ca0a8ec7f4a79a2bcb3743b624c3e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5000 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from tqdm.notebook import tqdm\n",
"\n",
"res_good_model = []\n",
"res_overfitting = []\n",
"res_wrong_model = []\n",
"\n",
"def peak(x, A, mu, sigma):\n",
" return A*np.exp(-(x-mu)**2/(2*sigma**2))\n",
"\n",
"def lorentzian( x, x0, a, gam ):\n",
" return a * gam**2 / ( gam**2 + ( x - x0 )**2)\n",
"\n",
"\n",
"for i in tqdm(range(5000)):\n",
" \n",
" test_data = np.random.normal(0, 2, 5000)\n",
" \n",
" entries, edges = np.histogram(test_data, bins=25, range=(-4,4))\n",
" center = edges[:-1] + np.diff(edges)/2\n",
" \n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries), peak)\n",
" mi = Minuit(ls, \n",
" mu=0.1,\n",
" sigma=1.5,\n",
" A = 300\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), peak, mi)\n",
" res_good_model.append(p_value(chi, ndof))\n",
"\n",
"\n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries)*1.1, peak)\n",
" mi = Minuit(ls, \n",
" mu=0.1,\n",
" sigma=1.5,\n",
" A = 300\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries)*1.1, peak, mi)\n",
" res_overfitting.append(p_value(chi, ndof))\n",
"\n",
"\n",
" ls = cost.LeastSquares(center, entries, np.sqrt(entries), lorentzian)\n",
" mi = Minuit(ls, \n",
" x0=0,\n",
" gam=3,\n",
" a = 300,\n",
" )\n",
" mi.migrad()\n",
" \n",
" chi, ndof = chi_squre_ndof(center, entries, np.sqrt(entries), lorentzian, mi)\n",
" res_wrong_model.append(p_value(chi, ndof))\n",
"\n",
"res_wrong_model = np.array(res_wrong_model)\n",
"res_good_model = np.array(res_good_model)"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 64,
"id": "f41e0b38-56b6-4f2a-bc75-075f622a2068",
"metadata": {},
"outputs": [
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
2023-08-14 15:01:33 +00:00
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
2023-08-14 15:01:33 +00:00
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"fig, axes = plt.subplots()\n",
"axes.hist(res_good_model, bins=25, range=(0, 1), histtype='step', color='purple', label='Good model')\n",
"axes.hist(res_wrong_model, bins=25, range=(0, 1), histtype='step', color='orange', label='Wrong model')\n",
"axes.hist(res_overfitting, bins=25, range=(0, 1), histtype='step', color='firebrick', label='Too large uncertainties (10 %)')\n",
"axes.set_xlabel('p-value')\n",
"axes.set_ylabel('Number of fits')\n",
"axes.legend()\n",
"axes.axvline(0.1, color='k')\n",
"axes2 = plt.twiny()\n",
"axes2.set_xlabel('Red. $\\chi^2$')\n",
"axes2.set_xticks([0.2, 0.5, 0.8], ['> 1', '1', '< 1'])\n",
"plt.show()\n",
"\n",
"axes.set_yscale('log')\n",
"fig"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 65,
"id": "fc58ee5c-308c-4479-9236-751d7f158fe5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"Fraction of wrong model fits rejected: 0.9996\n",
"Fraction of good model fits rejected: 0.1010\n"
]
}
],
"source": [
"print(f'Fraction of wrong model fits rejected: {np.sum(res_wrong_model<0.1)/len(res_wrong_model):.4f}')\n",
"print(f'Fraction of good model fits rejected: {np.sum(res_good_model<0.1)/len(res_good_model):.4f}')"
]
},
{
"cell_type": "code",
2023-08-14 15:01:33 +00:00
"execution_count": 66,
"id": "d5f5efbe-ef8f-48b0-b27b-166f21cb5a06",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2023-08-14 15:01:33 +00:00
"Fraction of wrong model fits rejected: 0.9980\n",
"Fraction of good model fits rejected: 0.0526\n"
]
}
],
"source": [
"print(f'Fraction of wrong model fits rejected: {np.sum(res_wrong_model<0.05)/len(res_wrong_model):.4f}')\n",
"print(f'Fraction of good model fits rejected: {np.sum(res_good_model<0.05)/len(res_good_model):.4f}')"
]
},
{
"cell_type": "markdown",
"id": "de9861f6-7870-4dd8-8366-15e0c7dd5125",
"metadata": {},
"source": [
"Failed to reject model, NOT confirms model!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e69f0a15-81a8-43e9-bda5-463705ad19c2",
"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.9.17"
}
},
"nbformat": 4,
"nbformat_minor": 5
}