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

4817 lines
1,021 KiB
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",
"execution_count": 1,
"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",
"execution_count": 2,
"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",
"execution_count": 3,
"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",
"execution_count": 4,
"id": "54c27237-effd-4396-91d8-b6b4d43d589c",
"metadata": {},
"outputs": [],
"source": [
"# df.to_csv('data/discharge_data.csv')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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",
"execution_count": 6,
"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",
"execution_count": 7,
"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"
]
},
"execution_count": 7,
"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",
"execution_count": 8,
"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"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data_frame['time']"
]
},
{
"cell_type": "markdown",
"id": "4476302c-eb65-409a-b1aa-2342ecbd9c88",
"metadata": {},
"source": [
"oder"
]
},
{
"cell_type": "code",
"execution_count": 9,
"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"
]
},
"execution_count": 9,
"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",
"execution_count": 10,
"id": "e4b44637-8e25-46c1-863d-3cd7604f52dd",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.0118852615051639"
]
},
"execution_count": 10,
"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",
"execution_count": 11,
"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])"
]
},
"execution_count": 11,
"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",
"execution_count": 12,
"id": "e3898686-3926-48a0-be4c-4d460a1792f3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"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",
"execution_count": 16,
"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",
"execution_count": 17,
"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",
"└────┴───────────────────────────────────────────────────────┘"
]
},
"execution_count": 17,
"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",
"execution_count": 18,
"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",
"execution_count": 19,
"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",
"execution_count": 20,
"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",
"└─────┴───────────────────┘"
]
},
"execution_count": 20,
"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",
"execution_count": 21,
"id": "69f540a5-e89b-4c24-aa7e-b03eaedb28d1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0670397937137222"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.values['I0']"
]
},
{
"cell_type": "markdown",
"id": "66733c05-692d-46e3-ae82-6f84d66ef28c",
"metadata": {},
"source": [
"... bzw. ..."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "66e6da5b-ff32-4982-a3aa-5b9b93262073",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.050402330240634355"
]
},
"execution_count": 22,
"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",
"execution_count": 25,
"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",
"execution_count": 7,
"id": "43bfd15e-7b68-4b70-bc06-0b23f89f7bff",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(0.9, 10000.0, 1e-06) -> 80299.69058891697\n",
"(0.9012452948646013, 10000.0, 1e-06) -> 80526.18965485664\n",
"(0.8987547051353988, 10000.0, 1e-06) -> 80073.51136202173\n",
"(0.9004308748479504, 10000.0, 1e-06) -> 80378.02359217647\n",
"(0.8995691251520497, 10000.0, 1e-06) -> 80221.39587601055\n",
"(0.9, 10013.834507037946, 1e-06) -> 79622.63978381334\n",
"(0.9, 9986.165492962054, 1e-06) -> 80984.35435795251\n",
"(0.9, 10001.383450703794, 1e-06) -> 80231.64462947704\n",
"(0.9, 9998.616549296206, 1e-06) -> 80367.81267664742\n",
"(0.9, 10000.0, 1.0013836609610407e-06) -> 79622.5374588146\n",
"(0.9, 10000.0, 9.986163390389592e-07) -> 80984.45899720961\n",
"(0.9, 10000.0, 1.000138366096104e-06) -> 80231.63429361269\n",
"(0.9, 10000.0, 9.99861633903896e-07) -> 80367.8230356535\n",
"(0.01874743961019698, 11237.265275850094, 1.1237265276308393e-06) -> 220.6722136427291\n",
"(0.284586001978377, 10864.031952074476, 1.0864031952394525e-06) -> 2881.0841599860123\n",
"(0.11358432817377395, 11104.115717637773, 1.110411571804675e-06) -> 424.5249883164687\n",
"(0.018790527094992016, 11237.265275850094, 1.1237265276308393e-06) -> 220.62940218460562\n",
"(0.018704352125401946, 11237.265275850094, 1.1237265276308393e-06) -> 220.71513473340076\n",
"(0.01874743961019698, 11237.403620920473, 1.1237265276308393e-06) -> 220.67272516952943\n",
"(0.01874743961019698, 11237.126930779714, 1.1237265276308393e-06) -> 220.6717021065287\n",
"(0.01874743961019698, 11238.648726553887, 1.1237265276308393e-06) -> 220.67732848757515\n",
"(0.01874743961019698, 11235.8818251463, 1.1237265276308393e-06) -> 220.66709785786958\n",
"(0.01874743961019698, 11237.265275850094, 1.1237403642404498e-06) -> 220.6727252472707\n",
"(0.01874743961019698, 11237.265275850094, 1.1237126910212289e-06) -> 220.67170202878458\n",
"(0.01874743961019698, 11237.265275850094, 1.1238648937269433e-06) -> 220.67732926485905\n",
"(0.01874743961019698, 11237.265275850094, 1.1235881615347354e-06) -> 220.66709708029992\n",
"(0.02354972366532792, 11237.181373608577, 1.123718137406686e-06) -> 216.57497287202676\n",
"(0.03559487891832495, 11236.970928846556, 1.123697092930479e-06) -> 212.29214614381652\n",
"(0.03563637946965444, 11236.970928846556, 1.123697092930479e-06) -> 212.2922088228832\n",
"(0.03555337836699545, 11236.970928846556, 1.123697092930479e-06) -> 212.29218519571265\n",
"(0.03559487891832495, 11250.557499010538, 1.123697092930479e-06) -> 212.28602162487988\n",
"(0.03559487891832495, 11223.384358682575, 1.123697092930479e-06) -> 212.29893152088437\n",
"(0.03559487891832495, 11242.256957337766, 1.123697092930479e-06) -> 212.28968534014302\n",
"(0.03559487891832495, 11231.684900355347, 1.123697092930479e-06) -> 212.29470697987432\n",
"(0.03559487891832495, 11236.970928846556, 1.1250807538915197e-06) -> 212.28591504175927\n",
"(0.03559487891832495, 11236.970928846556, 1.1223134319694383e-06) -> 212.2990626524163\n",
"(0.03559487891832495, 11236.970928846556, 1.1242300939534861e-06) -> 212.28966528326941\n",
"(0.03559487891832495, 11236.970928846556, 1.123164091907472e-06) -> 212.2947287082918\n",
"(0.03559487891832495, 11236.970928846556, 1.123697092930479e-06) -> 212.29214614381652\n",
"(0.03563637946965444, 11236.970928846556, 1.123697092930479e-06) -> 212.2922088228832\n",
"(0.03555337836699545, 11236.970928846556, 1.123697092930479e-06) -> 212.29218519571265\n",
"(0.03559487891832495, 11242.256957337766, 1.123697092930479e-06) -> 212.28968534014302\n",
"(0.03559487891832495, 11231.684900355347, 1.123697092930479e-06) -> 212.29470697987432\n",
"(0.03559487891832495, 11236.970928846556, 1.1242300939534861e-06) -> 212.28966528326941\n",
"(0.03559487891832495, 11236.970928846556, 1.123164091907472e-06) -> 212.2947287082918\n",
"(0.035603179028590844, 11236.970928846556, 1.123697092930479e-06) -> 212.29215054115292\n",
"(0.03558657880805905, 11236.970928846556, 1.123697092930479e-06) -> 212.29214581571875\n",
"(0.03559487891832495, 11238.028134544798, 1.123697092930479e-06) -> 212.29164599966447\n",
"(0.03559487891832495, 11235.913723148315, 1.123697092930479e-06) -> 212.29265028925306\n",
"(0.03559487891832495, 11236.970928846556, 1.1238036931350805e-06) -> 212.2916418550488\n",
"(0.03559487891832495, 11236.970928846556, 1.1235904927258775e-06) -> 212.29265450073018\n",
"(0.03563637946965444, 11242.256957337766, 1.123697092930479e-06) -> 212.28964759003514\n",
"(0.03563637946965444, 11236.970928846556, 1.1242300939534861e-06) -> 212.28962669934117\n",
"(0.03559487891832495, 11242.256957337766, 1.1242300939534861e-06) -> 212.28730364301265\n",
"(2.2387013730650716, 153512.47970788088, 1.5321715146660597e-05) -> 800863512.0926026\n",
"(0.1457502036256623, 18350.746367798274, 1.833597995616985e-06) -> 207.48252123940458\n",
"(0.1457912284905751, 18350.746367798274, 1.833597995616985e-06) -> 207.4798360033104\n",
"(0.14570917876074949, 18350.746367798274, 1.833597995616985e-06) -> 207.48521165210263\n",
"(0.1459299849447334, 18350.746367798274, 1.833597995616985e-06) -> 207.4707922201848\n",
"(0.1455704223065912, 18350.746367798274, 1.833597995616985e-06) -> 207.4943496708378\n",
"(0.1457502036256623, 18355.972636896357, 1.833597995616985e-06) -> 207.48310932666232\n",
"(0.1457502036256623, 18345.52009870019, 1.833597995616985e-06) -> 207.48193536080672\n",
"(0.1457502036256623, 18377.34683525181, 1.833597995616985e-06) -> 207.4855372327258\n",
"(0.1457502036256623, 18324.145900344738, 1.833597995616985e-06) -> 207.4795624641695\n",
"(0.1457502036256623, 18350.746367798274, 1.8341249573147995e-06) -> 207.48311469203867\n",
"(0.1457502036256623, 18350.746367798274, 1.8330710339191706e-06) -> 207.4819300358387\n",
"(0.1457502036256623, 18350.746367798274, 1.8371014591676097e-06) -> 207.48650848378404\n",
"(0.1457502036256623, 18350.746367798274, 1.8300945320663605e-06) -> 207.47863341106964\n",
"(0.7597049288459635, 57573.50328070053, 5.7468089597108976e-06) -> 1195304.6375728513\n",
"(0.17644793988667737, 20311.884213443387, 2.0292585438216807e-06) -> 205.3090326087997\n",
"(0.17662678161462758, 20311.884213443387, 2.0292585438216807e-06) -> 205.29923976445386\n",
"(0.17626909815872716, 20311.884213443387, 2.0292585438216807e-06) -> 205.31889673847678\n",
"(0.17644793988667737, 20338.347528461414, 2.0292585438216807e-06) -> 205.3000128159778\n",
"(0.17644793988667737, 20285.42089842536, 2.0292585438216807e-06) -> 205.31803195949215\n",
"(0.17644793988667737, 20311.884213443387, 2.032743630070525e-06) -> 205.29713827751468\n",
"(0.17644793988667737, 20311.884213443387, 2.0257734575728364e-06) -> 205.32089141942058\n",
"(0.17644793988667737, 20311.884213443387, 2.035058399123462e-06) -> 205.2892176101183\n",
"(0.17644793988667737, 20311.884213443387, 2.0234586885198993e-06) -> 205.32874924043455\n",
"(27.62661499141232, 16248.151295370044, 1706130.262293866) -> 251105710597.7842\n",
"(13.33333318096676, 18364.134039350407, 817749.488563337) -> 58488401349.6309\n",
"(6.619666259704454, 19358.027782062527, 400470.0496509) -> 14416071655.532528\n",
"(3.3643835536006943, 19839.941042029135, 198142.08833926904) -> 3723505862.3797007\n",
"(1.7616745866406807, 20077.206672322078, 98527.74846861274) -> 1020775163.9700875\n",
"(0.9666590199526081, 20194.901071874065, 49114.565853965316) -> 307268348.5349943\n",
"(0.5708295004403338, 20253.499820849538, 24512.284903154356) -> 107107299.21801966\n",
"(0.3733862168956244, 20282.729397823954, 12240.44843273936) -> 45804716.44149411\n",
"(0.27480907512602976, 20297.32279447712, 6113.51141164059) -> 24799091.121010832\n",
"(0.22557003916293816, 20304.612159635515, 3053.121681224085) -> 16701478.438160054\n",
"(0.20096962923562423, 20308.25401345127, 1524.1144528530604) -> 13253455.27378609\n",
"(0.17644793988667737, 20311.884213443387, 2.0292585438216807e-06) -> 205.3090326087997\n",
"(0.18644794988667238, 20311.884213443387, 2.0292585438216807e-06) -> 204.87090665322776\n",
"(0.16644792988668236, 20311.884213443387, 2.0292585438216807e-06) -> 205.97003457517442\n",
"(0.17744794088667687, 20311.884213443387, 2.0292585438216807e-06) -> 205.2551905927564\n",
"(0.17544793888667787, 20311.884213443387, 2.0292585438216807e-06) -> 205.36510338495106\n",
"(0.17644793988667737, 20345.474497156254, 2.0292585438216807e-06) -> 205.297580051539\n",
"(0.17644793988667737, 20278.29392973052, 2.0292585438216807e-06) -> 205.3204522310887\n",
"(0.17644793988667737, 20311.884213443387, 0.010008301289497496) -> 10127550.783925368\n",
"(0.17644793988667737, 20311.884213443387, -0.010004242772409851) -> 10298760.971541697\n",
"(0.17644793988667737, 20311.884213443387, 0.001002656461639189) -> 9393352.887426605\n",
"(0.17644793988667737, 20311.884213443387, -0.0009985979445515456) -> 11107759.034556672\n",
"(0.17644793988667737, 20311.884213443387, 0.00010209197885335842) -> 4496959.593791175\n",
"(0.17644793988667737, 20311.884213443387, -9.803346176571506e-05) -> 24060229.576861788\n",
"(0.17644793988667737, 20345.474497156254, 2.0292585438216807e-06) -> 205.297580051539\n",
"(0.17644793988667737, 20479.835632007715, 2.0292585438216807e-06) -> 205.25140775735804\n",
"(0.17644793988667737, 20815.738469136362, 2.0292585438216807e-06) -> 205.13289457452655\n",
"(0.17644793988667737, 21823.44698052232, 2.0292585438216807e-06) -> 204.7387032579184\n",
"(0.17644793988667737, 24846.572514680178, 2.0292585438216807e-06) -> 202.97384781203542\n",
"(0.17644793988667737, 33915.94911715377, 2.0292585438216807e-06) -> 189.71900804568585\n",
"(0.17644793988667737, 53902.16792630852, 2.0292585438216807e-06) -> 112.11853240474552\n",
"(0.17660350804040564, 53902.16792630852, 2.0292585438216807e-06) -> 112.02891844456174\n",
"(0.1762923717329491, 53902.16792630852, 2.0292585438216807e-06) -> 112.20820219166187\n",
"(0.17644793988667737, 53926.81183550759, 2.0292585438216807e-06) -> 111.98914229504203\n",
"(0.17644793988667737, 53877.52401710944, 2.0292585438216807e-06) -> 112.24790543650509\n",
"(0.17644793988667737, 53902.16792630852, 1.2035530574775356e-05) -> 749047.029338218\n",
"(0.17644793988667737, 53902.16792630852, -7.977013487131994e-06) -> 551322055.5667844\n",
"(0.17644793988667737, 53902.16792630852, 3.029885746917048e-06) -> 266.94117153688745\n",
"(0.17644793988667737, 53902.16792630852, 1.0286313407263131e-06) -> 200.63772384513936\n",
"(0.17644793988667737, 53902.16792630852, 2.1293212641312174e-06) -> 98.19360194119729\n",
"(0.17644793988667737, 53902.16792630852, 1.929195823512144e-06) -> 125.87066857173629\n",
"(0.17644793988667737, 53926.81183550759, 2.0292585438216807e-06) -> 111.98914229504203\n",
"(0.17644793988667737, 54025.3874723039, 2.0292585438216807e-06) -> 111.47142213353476\n",
"(0.17644793988667737, 54271.82656429465, 2.0292585438216807e-06) -> 110.17620040438197\n",
"(0.17644793988667737, 55011.143840266916, 2.0292585438216807e-06) -> 106.28781862033046\n",
"(0.17644793988667737, 57229.09566818372, 2.0292585438216807e-06) -> 94.75564832455532\n",
"(0.17644793988667737, 63882.951151934125, 2.0292585438216807e-06) -> 67.4635526553343\n",
"(0.17644793988667737, 77130.26013395059, 2.0292585438216807e-06) -> 166.0658152339351\n",
"(0.17644793988667737, 70506.60564294236, 2.0292585438216807e-06) -> 74.85498866142912\n",
"(0.17644793988667737, 65774.91669150036, 2.0292585438216807e-06) -> 64.35253460447431\n",
"(0.1765641692483437, 65774.91669150036, 2.0292585438216807e-06) -> 64.30414002567912\n",
"(0.17633171052501104, 65774.91669150036, 2.0292585438216807e-06) -> 64.40102621120258\n",
"(0.17651380928933824, 65774.91669150036, 2.0292585438216807e-06) -> 64.32509655837454\n",
"(0.1763820704840165, 65774.91669150036, 2.0292585438216807e-06) -> 64.3800038130908\n",
"(0.17644793988667737, 65793.73073160845, 2.0292585438216807e-06) -> 64.33807470297462\n",
"(0.17644793988667737, 65756.10265139227, 2.0292585438216807e-06) -> 64.36735084850508\n",
"(0.17644793988667737, 65780.32187277022, 2.0292585438216807e-06) -> 64.34834382018747\n",
"(0.17644793988667737, 65769.5115102305, 2.0292585438216807e-06) -> 64.35675480071737\n",
"(0.17644793988667737, 65774.91669150036, 2.0392648158526344e-06) -> 64.15399394342332\n",
"(0.17644793988667737, 65774.91669150036, 2.019252271790727e-06) -> 64.65698618113858\n",
"(0.17644793988667737, 65774.91669150036, 2.0302591710247762e-06) -> 64.32783003130145\n",
"(0.17644793988667737, 65774.91669150036, 2.028257916618585e-06) -> 64.37829817359554\n",
"(0.2344777213715522, 66547.78052455382, 2.0531017871071074e-06) -> 61.585030328012934\n",
"(0.20901253603801712, 66208.62500401438, 2.0426386663839283e-06) -> 56.72515398100699\n",
"(0.20907444236790867, 66208.62500401438, 2.0426386663839283e-06) -> 56.71917030619342\n",
"(0.20895062970812556, 66208.62500401438, 2.0426386663839283e-06) -> 56.73116796004825\n",
"(0.20901253603801712, 66213.70561491995, 2.0426386663839283e-06) -> 56.74138808391011\n",
"(0.20901253603801712, 66203.54439310881, 2.0426386663839283e-06) -> 56.70896451667243\n",
"(0.20901253603801712, 66208.62500401438, 2.042799988069747e-06) -> 56.741862793017\n",
"(0.20901253603801712, 66208.62500401438, 2.0424773446981096e-06) -> 56.708492452531246\n",
"(0.20901253603801712, 66208.62500401438, 2.042761751455297e-06) -> 56.73789817783422\n",
"(0.20901253603801712, 66208.62500401438, 2.0425155813125594e-06) -> 56.712437309677895\n",
"(0.2438002039870601, 64855.580803911354, 2.000894814508966e-06) -> 46.021485022433374\n",
"(0.36937377714370073, 59971.476612314334, 1.8502113986232294e-06) -> 40.327889933348494\n",
"(0.32044449156657334, 61874.55002793656, 1.9089246429968158e-06) -> 35.61290012059835\n",
"(0.3204914794149062, 61874.55002793656, 1.9089246429968158e-06) -> 35.606381162457645\n",
"(0.3203975037182405, 61874.55002793656, 1.9089246429968158e-06) -> 35.61942637223192\n",
"(0.3205171891354251, 61874.55002793656, 1.9089246429968158e-06) -> 35.60281735731878\n",
"(0.3203717939977216, 61874.55002793656, 1.9089246429968158e-06) -> 35.62300034226913\n",
"(0.32044449156657334, 61877.67381585722, 1.9089246429968158e-06) -> 35.60713779018709\n",
"(0.32044449156657334, 61871.4262400159, 1.9089246429968158e-06) -> 35.618673453810274\n",
"(0.32044449156657334, 61874.55002793656, 1.909022668684815e-06) -> 35.607039107744875\n",
"(0.32044449156657334, 61874.55002793656, 1.9088266173088165e-06) -> 35.618772516707736\n",
"(0.34027373143588147, 61845.32976113261, 1.908023281952575e-06) -> 33.57022654071601\n",
"(0.36399982222101446, 61810.36711468092, 1.9069447850406015e-06) -> 32.69141328003167\n",
"(0.36406955908866795, 61810.36711468092, 1.9069447850406015e-06) -> 32.69131128707305\n",
"(0.36393008535336097, 61810.36711468092, 1.9069447850406015e-06) -> 32.691531161430646\n",
"(0.36399982222101446, 61814.04559820505, 1.9069447850406015e-06) -> 32.69131234203796\n",
"(0.36399982222101446, 61806.688631156794, 1.9069447850406015e-06) -> 32.69153484199518\n",
"(0.36399982222101446, 61810.36711468092, 1.9070612382090942e-06) -> 32.691309980430496\n",
"(0.36399982222101446, 61810.36711468092, 1.9068283318721088e-06) -> 32.69153829582436\n",
"(0.3642505705772579, 61818.727695937, 1.9072027264443144e-06) -> 32.69104283789013\n",
"(0.36421273360985085, 61817.46611621927, 1.9071638040735702e-06) -> 32.69103067341378\n",
"(0.36428285717637465, 61817.46611621927, 1.9071638040735702e-06) -> 32.69102791322033\n",
"(0.36414261004332704, 61817.46611621927, 1.9071638040735702e-06) -> 32.691049518377234\n",
"(0.36421273360985085, 61820.65100788768, 1.9071638040735702e-06) -> 32.69104586238568\n",
"(0.36421273360985085, 61814.28122455086, 1.9071638040735702e-06) -> 32.691031007928835\n",
"(0.36421273360985085, 61817.46611621927, 1.9072639657700813e-06) -> 32.691046309818674\n",
"(0.36421273360985085, 61817.46611621927, 1.9070636423770592e-06) -> 32.69103116757846\n",
"(0.36421273360985085, 61817.46611621927, 1.9071638040735702e-06) -> 32.69103067341378\n",
"(0.36428285717637465, 61817.46611621927, 1.9071638040735702e-06) -> 32.69102791322033\n",
"(0.36414261004332704, 61817.46611621927, 1.9071638040735702e-06) -> 32.691049518377234\n",
"(0.36421273360985085, 61820.65100788768, 1.9071638040735702e-06) -> 32.69104586238568\n",
"(0.36421273360985085, 61814.28122455086, 1.9071638040735702e-06) -> 32.691031007928835\n",
"(0.36421273360985085, 61817.46611621927, 1.9072639657700813e-06) -> 32.691046309818674\n",
"(0.36421273360985085, 61817.46611621927, 1.9070636423770592e-06) -> 32.69103116757846\n",
"(0.3642267583231556, 61817.46611621927, 1.9071638040735702e-06) -> 32.691028834593496\n",
"(0.3641987088965461, 61817.46611621927, 1.9071638040735702e-06) -> 32.69103315562488\n",
"(0.36421273360985085, 61818.10309455296, 1.9071638040735702e-06) -> 32.69103246906524\n",
"(0.36421273360985085, 61816.82913788559, 1.9071638040735702e-06) -> 32.691029498701766\n",
"(0.36421273360985085, 61817.46611621927, 1.9071838364128724e-06) -> 32.69103250996962\n",
"(0.36421273360985085, 61817.46611621927, 1.907143771734268e-06) -> 32.69102948208074\n",
"(0.36428285717637465, 61820.65100788768, 1.9071638040735702e-06) -> 32.69105455821643\n",
"(0.36428285717637465, 61817.46611621927, 1.9072639657700813e-06) -> 32.691055227582524\n",
"(0.36421273360985085, 61820.65100788768, 1.9072639657700813e-06) -> 32.691077333435835\n"
]
},
{
"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 = 32.69 (χ²/ndof = 4.7) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 193 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 1.9e-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:#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> 0.36 </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> 1 </th>\n",
" <td> R </td>\n",
" <td> 0.062e6 </td>\n",
" <td> 0.016e6 </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> 1.9e-6 </td>\n",
" <td> 0.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.00128 </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -21.3103 <strong>(-0.038)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -660.62e-12 <strong>(-0.038)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> R </th>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -21.3103 <strong>(-0.038)</strong> </td>\n",
" <td> 2.48e+08 </td>\n",
" <td style=\"background-color:rgb(121,121,250);color:black\"> -7.61159469847e-3 <strong>(-0.994)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> C </th>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -660.62e-12 <strong>(-0.038)</strong> </td>\n",
" <td style=\"background-color:rgb(121,121,250);color:black\"> -7.61159469847e-3 <strong>(-0.994)</strong> </td>\n",
" <td> 2.36e-13 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 32.69 (χ²/ndof = 4.7) │ Nfcn = 193 │\n",
"│ EDM = 1.9e-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 │APPROXIMATE│NOT pos. def.│ FORCED │\n",
"└───────────────┴──────────────────┴───────────┴─────────────┴────────────┘\n",
"┌───┬──────┬───────────┬───────────┬────────────┬────────────┬─────────┬─────────┬───────┐\n",
"│ │ Name │ Value │ Hesse Err │ Minos Err- │ Minos Err+ │ Limit- │ Limit+ │ Fixed │\n",
"├───┼──────┼───────────┼───────────┼────────────┼────────────┼─────────┼─────────┼───────┤\n",
"│ 0 │ I0 │ 0.36 │ 0.04 │ │ │ │ │ │\n",
"│ 1 │ R │ 0.062e6 │ 0.016e6 │ │ │ │ │ │\n",
"│ 2 │ C │ 1.9e-6 │ 0.5e-6 │ │ │ │ │ │\n",
"└───┴──────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌────┬───────────────────────────────────────────────────────┐\n",
"│ │ I0 R C │\n",
"├────┼───────────────────────────────────────────────────────┤\n",
"│ I0 │ 0.00128 -21.3103 -660.62e-12 │\n",
"│ R │ -21.3103 2.48e+08 -7.61159469847e-3 │\n",
"│ C │ -660.62e-12 -7.61159469847e-3 2.36e-13 │\n",
"└────┴───────────────────────────────────────────────────────┘"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGiCAYAAADA0E3hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAgTklEQVR4nO3df2zU9eHH8df1oFeMtOA6rqU97cD5E/lhka5goy6dTXQ4Q5idGMqI4FRmgGYTkB9VUcoXlZVJlYgy/UMsitUYIXXY0YjajQg0YfLDICCVcCeN444VbeHu/f1j4bS21X5qr9d37/lIPn/0w/tzn/f1LdzTu8/duYwxRgAAABZIivcEAAAAuopwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANZwHC7vvfeeJk+erOHDh8vlcunNN9/8wWPq6up07bXXyuPx6NJLL9WLL77YjakCAIBE5zhcmpubNWbMGFVWVnZp/JEjR3TrrbfqpptuUkNDg+bNm6dZs2bpnXfecTxZAACQ2Fw/5ksWXS6X3njjDd1+++2djlmwYIG2bNmif//739F9v/vd73Tq1CnV1NR099QAACABDYj1Cerr61VYWNhmX1FRkebNm9fpMS0tLWppaYn+HIlE9OWXX+onP/mJXC5XrKYKAAB6kDFGp0+f1vDhw5WU1DOX1cY8XPx+v7xeb5t9Xq9XoVBIX331lQYNGtTumPLycj3yyCOxnhoAAOgFjY2Nys7O7pHbinm4dMeiRYtUWloa/TkYDOriiy9WY2OjUlNT4zgzAADQVaFQSD6fT4MHD+6x24x5uGRkZCgQCLTZFwgElJqa2uGzLZLk8Xjk8Xja7U9NTSVcAACwTE9e5hHzz3HJz89XbW1tm33btm1Tfn5+rE8NAAD6Gcfh8t///lcNDQ1qaGiQ9L+3Ozc0NOjYsWOS/vcyT0lJSXT8vffeq8OHD+vBBx/UgQMH9Mwzz+jVV1/V/Pnze+YeAACAhOE4XD766CONGzdO48aNkySVlpZq3LhxWrZsmSTpxIkT0YiRpJ/97GfasmWLtm3bpjFjxuipp57S888/r6Kioh66CwAAIFH8qM9x6S2hUEhpaWkKBoNc4wIAgCVi8fjNdxUBAABrEC4AAMAahAsAALAG4QIAAKxBuAAAAGsQLgAAwBqECwAAsAbhAgAArEG4AAAAaxAuAADAGoQLAACwBuECAACsQbgAAABrEC4AAMAahAsAALAG4QIAAKxBuAAAAGsQLgAAwBqECwAAsAbhAgAArEG4AAAAaxAuAADAGoQLAACwBuECAACsQbgAAABrEC4AAMAahAsAALAG4QIAAKxBuAAAAGsQLgAAwBqECwAAsAbhAgAArEG4AAAAaxAuAADAGoQLAACwBuECAACsQbgAAABrEC4AAMAahAsAALAG4QIAAKxBuAAAAGsQLgAAwBqECwAAsAbhAgAArEG4AAAAaxAuAADAGoQLAACwBuECAACsQbgAAABrEC4AAMAahAsAALAG4QIAAKxBuAAAAGsQLgAAwBqECwAAsAbhAgAArEG4AAAAaxAuAADAGoQLAACwBuECAACsQbgAAABrEC4AAMAahAsAALBGt8KlsrJSOTk5SklJUV5ennbu3Pm94ysqKnT55Zdr0KBB8vl8mj9/vr7++utuTRgAACQux+GyadMmlZaWqqysTLt379aYMWNUVFSkL774osPxGzdu1MKFC1VWVqb9+/frhRde0KZNm/TQQw/96MkDAIDE4jhcVq9erdmzZ2vmzJm66qqrtG7dOl1wwQXasGFDh+M//PBDTZo0SdOmTVNOTo5uvvlm3XnnnT/4LA0AAMB3OQqX1tZW7dq1S4WFhd/cQFKSCgsLVV9f3+ExEydO1K5du6KhcvjwYW3dulW33HJLp+dpaWlRKBRqswEAAAxwMripqUnhcFher7fNfq/XqwMHDnR4zLRp09TU1KTrr79exhidO3dO99577/e+VFReXq5HHnnEydQAAEACiPm7iurq6rRixQo988wz2r17t6qrq7VlyxYtX76802MWLVqkYDAY3RobG2M9TQAAYAFHz7ikp6fL7XYrEAi02R8IBJSRkdHhMUuXLtX06dM1a9YsSdI111yj5uZm3XPPPVq8eLGSktq3k8fjkcfjcTI1AACQABw945KcnKzc3FzV1tZG90UiEdXW1io/P7/DY86cOdMuTtxutyTJGON0vgAAIIE5esZFkkpLSzVjxgyNHz9eEyZMUEVFhZqbmzVz5kxJUklJibKyslReXi5Jmjx5slavXq1x48YpLy9Phw4d0tKlSzV58uRowAAAAHSF43ApLi7WyZMntWzZMvn9fo0dO1Y1NTXRC3aPHTvW5hmWJUuWyOVyacmSJTp+/Lh++tOfavLkyXr88cd77l4AAICE4DIWvF4TCoWUlpamYDCo1NTUeE8HAAB0QSwev/muIgAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1uhWuFRWVionJ0cpKSnKy8vTzp07v3f8qVOnNGfOHGVmZsrj8eiyyy7T1q1buzVhAACQuAY4PWDTpk0qLS3VunXrlJeXp4qKChUVFengwYMaNmxYu/Gtra361a9+pWHDhmnz5s3KysrSZ599piFDhvTE/AEAQAJxGWOMkwPy8vJ03XXXae3atZKkSCQin8+nBx54QAsXLmw3ft26dXriiSd04MABDRw4sFuTDIVCSktLUzAYVGpqarduAwAA9K5YPH47eqmotbVVu3btUmFh4Tc3kJSkwsJC1dfXd3jMW2+9pfz8fM2ZM0der1ejRo3SihUrFA6HOz1PS0uLQqFQmw0AAMBRuDQ1NSkcDsvr9bbZ7/V65ff7Ozzm8OHD2rx5s8LhsLZu3aqlS5fqqaee0mOPPdbpecrLy5WWlhbdfD6fk2kCAIB+KubvKopEIho2bJiee+455ebmqri4WIsXL9a6des6PWbRokUKBoPRrbGxMdbTBAAAFnB0cW56errcbrcCgUCb/YFAQBkZGR0ek5mZqYEDB8rtdkf3XXnllfL7/WptbVVycnK7Yzwejzwej5OpAQCABODoGZfk5GTl5uaqtrY2ui8Siai2tlb5+fkdHjNp0iQdOnRIkUgkuu+TTz5RZmZmh9ECAADQGccvFZWWlmr9+vV66aWXtH//ft13331qbm7WzJkzJUklJSVatGhRdPx9992nL7/8UnPnztUnn3yiLVu2aMWKFZozZ07P3QsAAJAQHH+OS3FxsU6ePKlly5bJ7/dr7NixqqmpiV6we+zYMSUlfdNDPp9P77zzjubPn6/Ro0crKytLc+fO1YIFC3ruXgAAgITg+HNc4oHPcQEAwD5x/xwXAACAeCJcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFiDcAEAANYgXAAAgDUIFwAAYA3CBQAAWINwAQAA1iBcAACANQgXAABgDcIFAABYg3ABAADWIFwAAIA1CBcAAGANwgUAAFi
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ls = cost.LeastSquares(time_mess, current_mes, dcurrent, 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",
"execution_count": 10,
"id": "143a2a23-0a62-439f-9d28-9f555ae85589",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Number of counts per bin')"
]
},
"execution_count": 10,
"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": [
"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": [
"More complex fit, now use regional masking and parameter fixing...\n",
"\n",
"First define fit model:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"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": [
"Explain how to get some good first parameters based on plot above...\n",
"\n",
"Tau is not really possible to guess..."
]
},
{
"cell_type": "code",
"execution_count": 12,
"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",
"mi.limits['tau_bkg'] = (0, None)\n",
"mi.fixed[:] = True"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "1e69a046-770f-4c38-9b91-0176bb0686a1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f9cb4760640>"
]
},
"execution_count": 13,
"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": [
"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": [
"First fit background therefore use only region outside of peaks.... "
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "81232354-a7b8-4e2a-9ac0-159ce0a03da4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f9cb4650640>"
]
},
"execution_count": 14,
"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": [
"ls.mask = (center < 45) | (center >= 70)\n",
"\n",
"\n",
"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()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"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",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mi.fixed[['tau_bkg', 'A_bkg']] = False\n",
"mi"
]
},
{
"cell_type": "code",
"execution_count": 16,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 17.73 (χ²/ndof = 0.9) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 118 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 3.54e-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",
" <td> 254 </td>\n",
" <td> 28 </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> 37.4 </td>\n",
" <td> 2.6 </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",
" <td> 801 </td>\n",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -71 <strong>(-0.962)</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",
" <td style=\"background-color:rgb(125,125,250);color:black\"> -71 <strong>(-0.962)</strong> </td>\n",
" <td> 6.79 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 17.73 (χ²/ndof = 0.9) │ Nfcn = 118 │\n",
"│ EDM = 3.54e-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",
"│ 6 │ A_bkg │ 254 │ 28 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 37.4 │ 2.6 │ │ │ 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",
"│ A_bkg │ 0 0 0 0 0 0 801 -71 │\n",
"│ tau_bkg │ 0 0 0 0 0 0 -71 6.79 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 16,
"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": [
"mi.migrad()"
]
},
{
"cell_type": "markdown",
"id": "4837389e-098b-43a0-ad42-2fd354fa7c6e",
"metadata": {},
"source": [
"Now next step first peak..."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "0b435af3-73ea-42de-9ab7-6a16ae9dbceb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f9cb4566940>"
]
},
"execution_count": 17,
"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": [
"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": [
"\n",
"-> Remove mask....\n",
"\n",
"-> Update initla guess\n",
"\n",
"-> fixe again parameter"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "823e05a0-516c-4d30-8dc7-5381e0e2e617",
"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 = 1290 (χ²/ndof = 22.6) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 186 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 9.24e-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",
" <td> 687 </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",
" <td> 53.51 </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",
" <td> 2.131 </td>\n",
" <td> 0.034 </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",
" <td> 254 </td>\n",
" <td> 28 </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",
" <td> 37.4 </td>\n",
" <td> 2.6 </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> 160 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0.0106 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(180,180,250);color:black\"> -0.2349 <strong>(-0.540)</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",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0.0106 <strong>(-0.020)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0.00179 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.0004 <strong>(0.275)</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",
" <td style=\"background-color:rgb(180,180,250);color:black\"> -0.2349 <strong>(-0.540)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td style=\"background-color:rgb(250,209,209);color:black\"> 0.0004 <strong>(0.275)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.0000 </td>\n",
" <td> 0.00118 </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",
"│ FCN = 1290 (χ²/ndof = 22.6) │ Nfcn = 186 │\n",
"│ EDM = 9.24e-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",
"│ 0 │ A_p1 │ 687 │ 13 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.400e3 │ 0.014e3 │ │ │ │ │ yes │\n",
"│ 2 │ mu_p1 │ 53.51 │ 0.04 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.0 │ 0.6 │ │ │ │ │ yes │\n",
"│ 4 │ sigma_p1 │ 2.131 │ 0.034 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.00 │ 0.02 │ │ │ │ │ yes │\n",
"│ 6 │ A_bkg │ 254 │ 28 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 37.4 │ 2.6 │ │ │ 0 │ │ yes │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 160 0 -0.0106 0 -0.2349 0 0 0 │\n",
"│ A_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ mu_p1 │ -0.0106 0.0000 0.00179 0.0000 0.0004 0.0000 0.0000 0.0000 │\n",
"│ mu_p2 │ 0 0 0.0000 0 0.0000 0 0 0 │\n",
"│ sigma_p1 │ -0.2349 0.0000 0.0004 0.0000 0.00118 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",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"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": [
"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()"
]
},
{
"cell_type": "markdown",
"id": "34df75bf-3750-4186-ae12-4f6bb9e49931",
"metadata": {},
"source": [
"Now lets do last peak:"
]
},
{
"cell_type": "code",
"execution_count": 19,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 95.17 (χ²/ndof = 1.7) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 250 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 4.52e-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",
" <td> 687 </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",
" <td> 1.140e3 </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",
" <td> 53.51 </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",
" <td> 60.599 </td>\n",
" <td> 0.032 </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",
" <td> 2.131 </td>\n",
" <td> 0.034 </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.725 </td>\n",
" <td> 0.028 </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",
" <td> 254 </td>\n",
" <td> 28 </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",
" <td> 37.4 </td>\n",
" <td> 2.6 </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",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </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> 201 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0.0023 <strong>(0.005)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td style=\"background-color:rgb(174,174,250);color:black\"> -229.0e-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",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </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.000 </td>\n",
" <td style=\"background-color:rgb(250,249,249);color:black\"> 0.0023 <strong>(0.005)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td> 0.00104 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(226,226,250);color:black\"> -0.2e-3 <strong>(-0.187)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </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.000 </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(174,174,250);color:black\"> -229.0e-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(226,226,250);color:black\"> -0.2e-3 <strong>(-0.187)</strong> </td>\n",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0 </td>\n",
" <td> 0.000758 </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.000 </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",
" <td style=\"background-color:rgb(250,250,250);color:black\"> 0.000 </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",
"│ FCN = 95.17 (χ²/ndof = 1.7) │ Nfcn = 250 │\n",
"│ EDM = 4.52e-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",
"│ 0 │ A_p1 │ 687 │ 13 │ │ │ │ │ yes │\n",
"│ 1 │ A_p2 │ 1.140e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.51 │ 0.04 │ │ │ │ │ yes │\n",
"│ 3 │ mu_p2 │ 60.599 │ 0.032 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.131 │ 0.034 │ │ │ │ │ yes │\n",
"│ 5 │ sigma_p2 │ 2.725 │ 0.028 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 254 │ 28 │ │ │ │ │ yes │\n",
"│ 7 │ tau_bkg │ 37.4 │ 2.6 │ │ │ 0 │ │ yes │\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.000 0 0 0 0 │\n",
"│ A_p2 │ 0 201 0 0.0023 0 -229.0e-3 0 0 │\n",
"│ mu_p1 │ 0 0 0 0.000 0 0 0 0 │\n",
"│ mu_p2 │ 0.000 0.0023 0.000 0.00104 0.000 -0.2e-3 0.000 0.000 │\n",
"│ sigma_p1 │ 0 0 0 0.000 0 0 0 0 │\n",
"│ sigma_p2 │ 0 -229.0e-3 0 -0.2e-3 0 0.000758 0 0 │\n",
"│ A_bkg │ 0 0 0 0.000 0 0 0 0 │\n",
"│ tau_bkg │ 0 0 0 0.000 0 0 0 0 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGdCAYAAAAMm0nCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABW8ElEQVR4nO3deXzT9f0H8Ne3aZveLW3pmdBWVKCCyCVWKMPRgYAbGuqGMnXKYCq4VjdFnKLOA4duA5yT6c+pm4CTEi88katVkFPkKBbQAm1pWqA06UGv5PP7oyQ2JWnTNsk3x+v5eOTxoN/vN+n7S0n64nNKQggBIiIiIi8SIHcBRERERD3FAENERERehwGGiIiIvA4DDBEREXkdBhgiIiLyOgwwRERE5HUYYIiIiMjrMMAQERGR1wmUuwBXMZlMOHXqFCIjIyFJktzlEBERkQOEEKirq0NKSgoCAuy3s/hsgDl16hTUarXcZRAREVEvlJWVQaVS2T3vswEmMjISQPtfQFRUlMzVEBERkSMMBgPUarXl97g9PhtgzN1GUVFRDDBEREReprvhHxzES0RERF6HAYaIiIi8DgMMEREReR0GGCIiIvI6DDBERETkdRhgiIiIyOswwBAREZHXYYAhIiIir8MAQ0RERF6HAYaIiIi8DgMMEREReR0GGCIiIvI6DDBERETkdRhgiMirNTQ0QJIkSJKEhoYGucshIjdhgCEiIiKvwwBDREREXocBhoiIiLwOAwwRERF5HQYYIvJqRqPR8ufCwkKrr4nIdzHAEJHX0mq1yMzMtHw9bdo0pKenQ6vVylgVEbkDAwwReSWtVovc3FxUVFRYHa+oqEBubi5DDJGPY4AhIq9jNBqRl5cHIcRF58zH8vPz2Z1E5MMYYIjI6xQVFaG8vNzueSEEysrKUFRU5MaqiMidGGCIyOtUVlY69Toi8j4MMETkdZKTk516HRF5nx4HmMLCQvz85z9HSkoKJEnCe++9ZznX2tqKhQsXYtiwYQgPD0dKSgpuv/12nDp1yuo1ampqMHv2bERFRSEmJgZz5sxBfX291TX79+9HdnY2QkJCoFarsXTp0t7dIRH5nOzsbKhUKkiSZPO8JElQq9XIzs52c2VE5C49DjANDQ0YPnw4XnrppYvONTY2Yu/evXjsscewd+9eaLValJSU4Be/+IXVdbNnz8ahQ4ewYcMGrF+/HoWFhZg3b57lvMFgwOTJk5GWloY9e/bg+eefxxNPPIFXXnmlF7dIRL5GoVBg+fLlAHBRiDF/vWzZMigUCrfXRkRuIvoAgHj33Xe7vGbnzp0CgDhx4oQQQoji4mIBQOzatctyzSeffCIkSRIVFRVCCCH++c9/in79+onm5mbLNQsXLhSDBg1yuDa9Xi8ACL1e34M7IiJvsm7dOpGamioAWB5qtVqsW7dO7tKIqJcc/f3t8jEwer0ekiQhJiYGALB9+3bExMRg9OjRlmtycnIQEBCAHTt2WK6ZMGECgoODLddMmTIFJSUlOHfunM3v09zcDIPBYPUgIt+m0WhQXFxs+frjjz9GaWkpNBqNjFURkTu4NMA0NTVh4cKFuOWWWxAVFQUA0Ol0SEhIsLouMDAQsbGx0Ol0lmsSExOtrjF/bb6msyVLliA6OtryUKvVzr4dIvJAHbuJJkyYwG4jIj/hsgDT2tqKX/7ylxBC4OWXX3bVt7FYtGgR9Hq95VFWVuby70lEHiJAgchRv8CC/x1A7svbsLBgP0p0dXJXRUQuFOiKFzWHlxMnTmDTpk2W1hcASEpKQnV1tdX1bW1tqKmpQVJSkuWaqqoqq2vMX5uv6UypVEKpVDrzNojICxyurEPyb1YguH8aNh85CwDYfeIc/re7DLeNVeFpzVUAgPr6eoSHh8tYKRE5k9NbYMzh5ejRo/jiiy8QFxdndT4rKwu1tbXYs2eP5dimTZtgMpkwduxYyzWFhYVobW21XLNhwwYMGjQI/fr1c3bJROSlfjhdj7mr9yO4fxpiw4OxaOpgrLhlBKYNS4IkAf/dUY7Yn90td5lE5AI9boGpr6/HsWPHLF+XlpZi3759iI2NRXJyMnJzc7F3716sX78eRqPRMmYlNjYWwcHBGDJkCK6//nrMnTsXK1euRGtrKxYsWIBZs2YhJSUFAHDrrbfiySefxJw5c7Bw4UIcPHgQy5cvx9///ncn3TYRebsz9c244/WdONfYiuGqaLx519WICWsf+P+L4SlYu7sMDxXsR+TIG9CmPy1ztUTkbJIQNnZD68KWLVtw3XXXXXT8jjvuwBNPPIGMjAybz9u8eTMmTpwIoH0huwULFuDDDz9EQEAAZs6ciRUrViAiIsJy/f79+zF//nzs2rUL8fHxuO+++7Bw4UKH6zQYDIiOjoZer7fqwiIi37Bg9V6s31+JtLgwrLvnWsRHXNyF/NrWI3jqk6MQbS1Yf984DEtLsPFKRORJHP393eMA4y0YYIh819Yjp3HHv3ciQAI+WDAeQ1OjbV5XX1+PgXf9FaGXjMZVqiisu3c8FAG2V+8lIs/g6O9v7oVERF6lqdWIxe8fBAD85toMu+EFAEwmE86s/zvqvv0cX2/7Eu9/w9mJRL6CAYaIvMoH+07hxNlGJEYp8cDky+1ep9VqkZmZCdN5PWo+XYGqNY/g1kmjUVCwzo3VEpGrMMAQkdcQQuDfX5UCAO4al4EIpe15CFqtFrm5uaioqLA63qw/jZt/eTO0Wq3LayUi12KAISKvsaO0Bt/p6hAapMCsMQNsXmM0GpGXlwe7w/uEQH5+PoxGowsrJSJXY4AhIq/x+oXWl5tGpiI6LMjmNUVFRSgvL+/ydcrKylBUVOT0+ojIfRhgiMgrlNU0YkNx+4rcd16bbve6yspKh17P0euIyDMxwBCRV/jv1ydgEsD4S+NxWWKk3euSk5Mder3ouP7OKo2IZMAAQ0Qer7GlDW/vPAkAuHNcepfXZmdnQ6VSQZLsr/eiiIxHTcRAZ5ZIRG7GAENEHk+7twKGpjakxYXhukFdr6arUCiwfPlyALgoxLR/LSF20jxo951yVblE5AYMMETk0RoaGvDgP9unPc8alYwAB1bS1Wg0KCgosOyvZqZSqfDaf1cjfPC12HuyFqdqz7ukZiJyPQYYIvJop/RNUKZcDiFMmHZFosPP02g0KC4utnz98ccfo7S0FHf9ehZGp7Xvav/pQZ3T6yUi92CAISKPtqnkDACgubwY8RHBPXquQqGw/HnChAmWr6cObR/o+/EBzkQi8lYMMETk0b74rj3ANB7Z7rTXnDosCQCw+8Q56PRNTntdInIfBhgi8lhn65ux+/hZNJ3cj/pDm1FYWOiUFXSTo0MxckAMAODTg2yFIfJGDDBE5LGe/ecbKHt5DqrWPAJx3oBp06YhPT3d4b2MwsPDIYSAEALh4eFW564f2t4Ks6nktNPrJiLXY4AhIo+k1Wrxt4V3w1h3xup4RUUFcnNz+7wh48QL07G//uEszrdwXyQib8MAQ0Qex2g04r7f/97mOfMmjX3dkPGyhAikRIegpc2Er3842+vXISJ5MMAQkawaGhogSRIkSUJDQwOA9g0ZT1VU2H2OEKLPGzJKkoSJg9tbYTaXVPf6dYhIHgwwRORx3LUh48TL2/dD2lJy2tKyQ0TegQGGiDxOXP+utwswc3TjRnuuSgmFMLbiZE0jisvOdP8EIvIYDDBE5HECUjKhiIy3e16SJKjVamRnZ/fp+4QHB6K5vH213u2l5/r0WkTkXgwwRCSrjgNxzeu8fP3DOcROmgdAsrMhI7Bs2TKrlXZ7q+nEfgDAzuO1fX4tInIfBhgiko1Wq0VmZqbla/M6L+u0WoQNuhaL/vqKzQ0ZCwoKoNFonFJD00lzgDkHk4njYIi8BQMMEclCq9UiNzcXFZ1mG1VUVGDf64+hsWQb/jDvNpsbMjorvBiNRjSfKkHd/g3QlexF8alap7wuEbkeAwwRuZ3RaEReXp7NmT/mY3Vb/g8xoYF2N2TsK0vrjzCh5pPlqFrzCCaMzOzzAnlE5B4MMETkdkVFRSgvL+/ymqba6j6t89IVe60/507rnLLKLxG5HgM
"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": [
"And now do everything one last time:"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 50.35 (χ²/ndof = 1.0) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 525 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.19e-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> 609 </td>\n",
" <td> 15 </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.133e3 </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",
" <td> 53.13 </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> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.35 </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",
" <td> 2.00 </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",
" <td> 2.92 </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",
" <td> 254 </td>\n",
" <td> 26 </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> 37.0 </td>\n",
" <td> 2.4 </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> 213 </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</strong> </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td> 191 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</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",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td> 0.00578 </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td> 0.0032 </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td> 0.00323 </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td> 0.00197 </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</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(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td> 676 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" <td> 5.97 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 50.35 (χ²/ndof = 1.0) │ Nfcn = 525 │\n",
"│ EDM = 2.19e-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 │ 609 │ 15 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.133e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.13 │ 0.08 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.35 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.92 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 254 │ 26 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 37.0 │ 2.4 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 213 0.03e3 0.297 0.2830 -0.1103 -0.2594 -0.02e3 2 │\n",
"│ A_p2 │ 0.03e3 191 0.030 0.0711 -0.0264 -0.2656 -0.01e3 1 │\n",
"│ mu_p1 │ 0.297 0.030 0.00578 0.0032 0.0029 -0.0023 -0.134 0.016 │\n",
"│ mu_p2 │ 0.2830 0.0711 0.0032 0.0032 0.0020 -0.0017 -0.1166 0.0101 │\n",
"│ sigma_p1 │ -0.1103 -0.0264 0.0029 0.0020 0.00323 -0.0013 -0.2869 0.0222 │\n",
"│ sigma_p2 │ -0.2594 -0.2656 -0.0023 -0.0017 -0.0013 0.00197 0.1756 -0.0207 │\n",
"│ A_bkg │ -0.02e3 -0.01e3 -0.134 -0.1166 -0.2869 0.1756 676 -61 │\n",
"│ tau_bkg │ 2 1 0.016 0.0101 0.0222 -0.0207 -61 5.97 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 20,
"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": [
"mi.fixed[:] = False\n",
"mi.migrad()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "067fbf6f-14c4-4a46-afb3-71753d06af23",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7f9cb42aa8b0>"
]
},
"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": [
"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",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"id": "7ef19633-0947-4568-b537-a1c69e42b7c2",
"metadata": {},
"source": [
"If we are happy with result we can also of course do everything in a single cell:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 50.35 (χ²/ndof = 1.0) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 525 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.19e-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> 609 </td>\n",
" <td> 15 </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.133e3 </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",
" <td> 53.13 </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> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.35 </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",
" <td> 2.00 </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",
" <td> 2.92 </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",
" <td> 254 </td>\n",
" <td> 26 </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> 37.0 </td>\n",
" <td> 2.4 </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> 213 </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</strong> </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td> 191 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</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",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td> 0.00578 </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td> 0.0032 </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td> 0.00323 </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td> 0.00197 </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</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(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td> 676 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" <td> 5.97 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 50.35 (χ²/ndof = 1.0) │ Nfcn = 525 │\n",
"│ EDM = 2.19e-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 │ 609 │ 15 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.133e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.13 │ 0.08 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.35 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.92 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 254 │ 26 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 37.0 │ 2.4 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 213 0.03e3 0.297 0.2830 -0.1103 -0.2594 -0.02e3 2 │\n",
"│ A_p2 │ 0.03e3 191 0.030 0.0711 -0.0264 -0.2656 -0.01e3 1 │\n",
"│ mu_p1 │ 0.297 0.030 0.00578 0.0032 0.0029 -0.0023 -0.134 0.016 │\n",
"│ mu_p2 │ 0.2830 0.0711 0.0032 0.0032 0.0020 -0.0017 -0.1166 0.0101 │\n",
"│ sigma_p1 │ -0.1103 -0.0264 0.0029 0.0020 0.00323 -0.0013 -0.2869 0.0222 │\n",
"│ sigma_p2 │ -0.2594 -0.2656 -0.0023 -0.0017 -0.0013 0.00197 0.1756 -0.0207 │\n",
"│ A_bkg │ -0.02e3 -0.01e3 -0.134 -0.1166 -0.2869 0.1756 676 -61 │\n",
"│ tau_bkg │ 2 1 0.016 0.0101 0.0222 -0.0207 -61 5.97 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 22,
"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": [
"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": [
"When does a fit fit?\n",
"\n",
"-> Fit residuals..."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "30cafddc-ea17-4158-82cc-f132dee2c8de",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'Residuals [$\\\\sigma$]')"
]
},
"execution_count": 23,
"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": [
"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": [
"Make a nice combined plot:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "d9fbe83b-3146-4d72-89a4-084c29752e24",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/jobs/29211635/ipykernel_829/3494681880.py:7: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
"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",
"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": [
"If fit is \"good\" ~ every 3rd point should be beyond 1 sigma residual band.... Normal distribution one sigma 68 % .... etc.\n",
"\n",
"If residuals show systematic behavior model is wrong:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "850870af-e546-4d95-b9de-8a4e7b61c241",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/jobs/29211635/ipykernel_829/4141622746.py:10: UserWarning: The figure layout has changed to tight\n",
" fig_fit.tight_layout()\n"
]
},
{
"data": {
"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": [
"### 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",
"execution_count": 26,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 50.35 (χ²/ndof = 1.0) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 525 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.19e-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> 609 </td>\n",
" <td> 15 </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.133e3 </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",
" <td> 53.13 </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> 3 </th>\n",
" <td> mu_p2 </td>\n",
" <td> 60.35 </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",
" <td> 2.00 </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",
" <td> 2.92 </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",
" <td> 254 </td>\n",
" <td> 26 </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> 37.0 </td>\n",
" <td> 2.4 </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> 213 </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</strong> </td>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.03e3 <strong>(0.161)</strong> </td>\n",
" <td> 191 </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</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",
" <td style=\"background-color:rgb(250,210,210);color:black\"> 0.297 <strong>(0.268)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 0.030 <strong>(0.029)</strong> </td>\n",
" <td> 0.00578 </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,199,199);color:black\"> 0.2830 <strong>(0.343)</strong> </td>\n",
" <td style=\"background-color:rgb(250,236,236);color:black\"> 0.0711 <strong>(0.091)</strong> </td>\n",
" <td style=\"background-color:rgb(250,139,139);color:black\"> 0.0032 <strong>(0.737)</strong> </td>\n",
" <td> 0.0032 </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.1103 <strong>(-0.133)</strong> </td>\n",
" <td style=\"background-color:rgb(246,246,250);color:black\"> -0.0264 <strong>(-0.034)</strong> </td>\n",
" <td style=\"background-color:rgb(250,148,148);color:black\"> 0.0029 <strong>(0.678)</strong> </td>\n",
" <td style=\"background-color:rgb(250,155,155);color:black\"> 0.0020 <strong>(0.632)</strong> </td>\n",
" <td> 0.00323 </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(198,198,250);color:black\"> -0.2594 <strong>(-0.400)</strong> </td>\n",
" <td style=\"background-color:rgb(194,194,250);color:black\"> -0.2656 <strong>(-0.433)</strong> </td>\n",
" <td style=\"background-color:rgb(162,162,250);color:black\"> -0.0023 <strong>(-0.674)</strong> </td>\n",
" <td style=\"background-color:rgb(160,160,250);color:black\"> -0.0017 <strong>(-0.695)</strong> </td>\n",
" <td style=\"background-color:rgb(182,182,250);color:black\"> -0.0013 <strong>(-0.521)</strong> </td>\n",
" <td> 0.00197 </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_bkg </th>\n",
" <td style=\"background-color:rgb(244,244,250);color:black\"> -0.02e3 <strong>(-0.048)</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(241,241,250);color:black\"> -0.134 <strong>(-0.068)</strong> </td>\n",
" <td style=\"background-color:rgb(240,240,250);color:black\"> -0.1166 <strong>(-0.079)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.2869 <strong>(-0.194)</strong> </td>\n",
" <td style=\"background-color:rgb(250,227,227);color:black\"> 0.1756 <strong>(0.152)</strong> </td>\n",
" <td> 676 </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> tau_bkg </th>\n",
" <td style=\"background-color:rgb(250,242,242);color:black\"> 2 <strong>(0.051)</strong> </td>\n",
" <td style=\"background-color:rgb(250,246,246);color:black\"> 1 <strong>(0.027)</strong> </td>\n",
" <td style=\"background-color:rgb(250,237,237);color:black\"> 0.016 <strong>(0.086)</strong> </td>\n",
" <td style=\"background-color:rgb(250,239,239);color:black\"> 0.0101 <strong>(0.073)</strong> </td>\n",
" <td style=\"background-color:rgb(250,226,226);color:black\"> 0.0222 <strong>(0.160)</strong> </td>\n",
" <td style=\"background-color:rgb(225,225,250);color:black\"> -0.0207 <strong>(-0.191)</strong> </td>\n",
" <td style=\"background-color:rgb(124,124,250);color:black\"> -61 <strong>(-0.966)</strong> </td>\n",
" <td> 5.97 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 50.35 (χ²/ndof = 1.0) │ Nfcn = 525 │\n",
"│ EDM = 2.19e-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 │ 609 │ 15 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.133e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.13 │ 0.08 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.35 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.00 │ 0.06 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.92 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ A_bkg │ 254 │ 26 │ │ │ │ │ │\n",
"│ 7 │ tau_bkg │ 37.0 │ 2.4 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬─────────────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 A_bkg tau_bkg │\n",
"├──────────┼─────────────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 213 0.03e3 0.297 0.2830 -0.1103 -0.2594 -0.02e3 2 │\n",
"│ A_p2 │ 0.03e3 191 0.030 0.0711 -0.0264 -0.2656 -0.01e3 1 │\n",
"│ mu_p1 │ 0.297 0.030 0.00578 0.0032 0.0029 -0.0023 -0.134 0.016 │\n",
"│ mu_p2 │ 0.2830 0.0711 0.0032 0.0032 0.0020 -0.0017 -0.1166 0.0101 │\n",
"│ sigma_p1 │ -0.1103 -0.0264 0.0029 0.0020 0.00323 -0.0013 -0.2869 0.0222 │\n",
"│ sigma_p2 │ -0.2594 -0.2656 -0.0023 -0.0017 -0.0013 0.00197 0.1756 -0.0207 │\n",
"│ A_bkg │ -0.02e3 -0.01e3 -0.134 -0.1166 -0.2869 0.1756 676 -61 │\n",
"│ tau_bkg │ 2 1 0.016 0.0101 0.0222 -0.0207 -61 5.97 │\n",
"└──────────┴─────────────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 26,
"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": [
"mi"
]
},
{
"cell_type": "markdown",
"id": "9f464246-d333-4143-baf0-aa2a632c5be4",
"metadata": {},
"source": [
"Estimate ourselves:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "b0ad46ce-f541-40bb-898c-154ad5f94787",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"50.35308014445669 52 0.9683284643164748\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",
"execution_count": 28,
"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",
"execution_count": 29,
"id": "76836863-109c-4e7c-989e-04b62ec4ca9d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, '$\\\\chi^2(x)$')"
]
},
"execution_count": 29,
"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": [
"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",
"execution_count": 30,
"id": "cfa9d88a-eada-49dd-8cb3-73c7dd345c08",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0.538885338595922, 0.6898594516527083)"
]
},
"execution_count": 30,
"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",
"execution_count": 31,
"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",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Minimum value of function\"> FCN = 261.3 (χ²/ndof = 4.9) </td>\n",
" <td colspan=\"3\" style=\"text-align:center\" title=\"Total number of function and (optional) gradient evaluations\"> Nfcn = 344 </td>\n",
" </tr>\n",
" <tr>\n",
" <td colspan=\"2\" style=\"text-align:left\" title=\"Estimated distance to minimum and goal\"> EDM = 2.08e-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> 618 </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",
" <td> 1.138e3 </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",
" <td> 53.21 </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",
" <td> 60.44 </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",
" <td> 2.23 </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> 5 </th>\n",
" <td> sigma_p2 </td>\n",
" <td> 2.84 </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> c </td>\n",
" <td> 43.7 </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",
" <td> 198 </td>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.03e3 <strong>(0.142)</strong> </td>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.315 <strong>(0.255)</strong> </td>\n",
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.275 <strong>(0.319)</strong> </td>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.139 <strong>(-0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(199,199,250);color:black\"> -0.2464 <strong>(-0.390)</strong> </td>\n",
" <td style=\"background-color:rgb(250,245,245);color:black\"> 0.6 <strong>(0.032)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> A_p2 </th>\n",
" <td style=\"background-color:rgb(250,229,229);color:black\"> 0.03e3 <strong>(0.142)</strong> </td>\n",
" <td> 199 </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.101 <strong>(-0.082)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0.020 <strong>(-0.023)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.144 <strong>(-0.152)</strong> </td>\n",
" <td style=\"background-color:rgb(207,207,250);color:black\"> -0.2100 <strong>(-0.331)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.010)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p1 </th>\n",
" <td style=\"background-color:rgb(250,212,212);color:black\"> 0.315 <strong>(0.255)</strong> </td>\n",
" <td style=\"background-color:rgb(239,239,250);color:black\"> -0.101 <strong>(-0.082)</strong> </td>\n",
" <td> 0.00773 </td>\n",
" <td style=\"background-color:rgb(250,131,131);color:black\"> 0.004 <strong>(0.793)</strong> </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.004 <strong>(0.746)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.712)</strong> </td>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 0.005 <strong>(0.040)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> mu_p2 </th>\n",
" <td style=\"background-color:rgb(250,202,202);color:black\"> 0.275 <strong>(0.319)</strong> </td>\n",
" <td style=\"background-color:rgb(247,247,250);color:black\"> -0.020 <strong>(-0.023)</strong> </td>\n",
" <td style=\"background-color:rgb(250,131,131);color:black\"> 0.004 <strong>(0.793)</strong> </td>\n",
" <td> 0.00377 </td>\n",
" <td style=\"background-color:rgb(250,146,146);color:black\"> 0.003 <strong>(0.692)</strong> </td>\n",
" <td style=\"background-color:rgb(156,156,250);color:black\"> -0.0020 <strong>(-0.722)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.003 <strong>(-0.040)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p1 </th>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.139 <strong>(-0.147)</strong> </td>\n",
" <td style=\"background-color:rgb(230,230,250);color:black\"> -0.144 <strong>(-0.152)</strong> </td>\n",
" <td style=\"background-color:rgb(250,138,138);color:black\"> 0.004 <strong>(0.746)</strong> </td>\n",
" <td style=\"background-color:rgb(250,146,146);color:black\"> 0.003 <strong>(0.692)</strong> </td>\n",
" <td> 0.00449 </td>\n",
" <td style=\"background-color:rgb(179,179,250);color:black\"> -0.0017 <strong>(-0.549)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.011 <strong>(-0.130)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> sigma_p2 </th>\n",
" <td style=\"background-color:rgb(199,199,250);color:black\"> -0.2464 <strong>(-0.390)</strong> </td>\n",
" <td style=\"background-color:rgb(207,207,250);color:black\"> -0.2100 <strong>(-0.331)</strong> </td>\n",
" <td style=\"background-color:rgb(157,157,250);color:black\"> -0.0028 <strong>(-0.712)</strong> </td>\n",
" <td style=\"background-color:rgb(156,156,250);color:black\"> -0.0020 <strong>(-0.722)</strong> </td>\n",
" <td style=\"background-color:rgb(179,179,250);color:black\"> -0.0017 <strong>(-0.549)</strong> </td>\n",
" <td> 0.00202 </td>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0082 <strong>(-0.142)</strong> </td>\n",
" </tr>\n",
" <tr>\n",
" <th> c </th>\n",
" <td style=\"background-color:rgb(250,245,245);color:black\"> 0.6 <strong>(0.032)</strong> </td>\n",
" <td style=\"background-color:rgb(250,248,248);color:black\"> 0.2 <strong>(0.010)</strong> </td>\n",
" <td style=\"background-color:rgb(250,244,244);color:black\"> 0.005 <strong>(0.040)</strong> </td>\n",
" <td style=\"background-color:rgb(245,245,250);color:black\"> -0.003 <strong>(-0.040)</strong> </td>\n",
" <td style=\"background-color:rgb(233,233,250);color:black\"> -0.011 <strong>(-0.130)</strong> </td>\n",
" <td style=\"background-color:rgb(231,231,250);color:black\"> -0.0082 <strong>(-0.142)</strong> </td>\n",
" <td> 1.63 </td>\n",
" </tr>\n",
"</table>"
],
"text/plain": [
"┌─────────────────────────────────────────────────────────────────────────┐\n",
"│ Migrad │\n",
"├──────────────────────────────────┬──────────────────────────────────────┤\n",
"│ FCN = 261.3 (χ²/ndof = 4.9) │ Nfcn = 344 │\n",
"│ EDM = 2.08e-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 │ 618 │ 14 │ │ │ │ │ │\n",
"│ 1 │ A_p2 │ 1.138e3 │ 0.014e3 │ │ │ │ │ │\n",
"│ 2 │ mu_p1 │ 53.21 │ 0.09 │ │ │ │ │ │\n",
"│ 3 │ mu_p2 │ 60.44 │ 0.06 │ │ │ │ │ │\n",
"│ 4 │ sigma_p1 │ 2.23 │ 0.07 │ │ │ │ │ │\n",
"│ 5 │ sigma_p2 │ 2.84 │ 0.04 │ │ │ │ │ │\n",
"│ 6 │ c │ 43.7 │ 1.3 │ │ │ 0 │ │ │\n",
"└───┴──────────┴───────────┴───────────┴────────────┴────────────┴─────────┴─────────┴───────┘\n",
"┌──────────┬────────────────────────────────────────────────────────────────┐\n",
"│ │ A_p1 A_p2 mu_p1 mu_p2 sigma_p1 sigma_p2 c │\n",
"├──────────┼────────────────────────────────────────────────────────────────┤\n",
"│ A_p1 │ 198 0.03e3 0.315 0.275 -0.139 -0.2464 0.6 │\n",
"│ A_p2 │ 0.03e3 199 -0.101 -0.020 -0.144 -0.2100 0.2 │\n",
"│ mu_p1 │ 0.315 -0.101 0.00773 0.004 0.004 -0.0028 0.005 │\n",
"│ mu_p2 │ 0.275 -0.020 0.004 0.00377 0.003 -0.0020 -0.003 │\n",
"│ sigma_p1 │ -0.139 -0.144 0.004 0.003 0.00449 -0.0017 -0.011 │\n",
"│ sigma_p2 │ -0.2464 -0.2100 -0.0028 -0.0020 -0.0017 0.00202 -0.0082 │\n",
"│ c │ 0.6 0.2 0.005 -0.003 -0.011 -0.0082 1.63 │\n",
"└──────────┴────────────────────────────────────────────────────────────────┘"
]
},
"execution_count": 31,
"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": [
"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",
"execution_count": 32,
"id": "4aa0f3d9-1d0b-4b4c-b816-2a0cb9ae9793",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"261.25768423416054 53 4.929390268569067\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",
"execution_count": 63,
"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",
"execution_count": 77,
"id": "c3b58808-f155-4194-b02e-e5f649cb86aa",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6316d5dfd0e2480aaf38be2a289a691f",
"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",
"execution_count": 78,
"id": "f41e0b38-56b6-4f2a-bc75-075f622a2068",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"execution_count": 78,
"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",
"execution_count": 82,
"id": "fc58ee5c-308c-4479-9236-751d7f158fe5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fraction of wrong model fits rejected: 0.9998\n",
"Fraction of good model fits rejected: 0.1130\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",
"execution_count": 84,
"id": "d5f5efbe-ef8f-48b0-b27b-166f21cb5a06",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fraction of wrong model fits rejected: 0.9990\n",
"Fraction of good model fits rejected: 0.0572\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
}