|
|
{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Graph fit example within pyROOT" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Welcome to JupyROOT 6.20/08\n" ] } ], "source": [ "import numpy as np\n", "import ROOT\n", "from ROOT import TF1, TVirtualFitter, TGraphErrors, TCanvas, TMinuit, TFitResult, gROOT, TGraph" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "numDat = 10 \n", "x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], dtype='d')\n", "dx = np.array([0.1,0.1,0.5,0.1,0.5,0.1,0.5,0.1,0.5,0.1], dtype='d')\n", "y = np.array([1.1 ,2.3 ,2.7 ,3.2 ,3.1 ,2.4 ,1.7 ,1.5 ,1.5 ,1.7 ], dtype='d')\n", "dy = np.array([0.15,0.22,0.29,0.39,0.31,0.21,0.13,0.15,0.19,0.13], dtype='d')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define fit function" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def myNFunc(x, p):\n", " return p[0] + x[0]*p[1] + p[2]*x[0]**2 + p[3]*x[0]**3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create ROOT function and set start parameters" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "func = TF1('func',myNFunc, 0.5 ,10.5, 4)\n", "func.SetParameters(-1.3, 2.6 , -0.24 , 0.005)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create Graph with error bars" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "Graph = TGraphErrors(numDat, x, y, dx, dy)\n", "Graph.SetTitle( 'Fit Graph' )\n", "Graph.SetMarkerColor( 4 )\n", "Graph.SetMarkerStyle( 21 )\n", "Graph.SetMaximum(4.)\n", "Graph.SetMinimum(-1.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Start fitter and return fit result for later processing" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " FCN=2.15982 FROM MINOS STATUS=SUCCESSFUL 90 CALLS 2039 TOTAL\n", " EDM=4.56889e-09 STRATEGY= 1 ERROR MATRIX ACCURATE \n", " EXT PARAMETER STEP FIRST \n", " NO. NAME VALUE ERROR SIZE DERIVATIVE \n", " 1 p0 -1.03327e+00 4.63548e-01 -1.99485e-03 1.64067e-03\n", " 2 p1 2.54886e+00 3.59144e-01 2.70551e-03 -5.29683e-02\n", " 3 p2 -4.84278e-01 7.01863e-02 -2.72411e-04 -7.70245e-01\n", " 4 p3 2.56882e-02 3.97082e-03 3.97082e-03 -1.30073e+00\n" ] } ], "source": [ "result = Graph.Fit(func, \"M E S\",\"\",0.5,10.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Confidence plot" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "values = result.GetConfidenceIntervals(0.66, False)\n", "interval = TGraphErrors(Graph.GetN())\n", "for i in range(Graph.GetN()):\n", " interval.SetPoint(i, Graph.GetX()[i], func.Eval(Graph.GetX()[i] ))\n", " interval.SetPointError(i, 0, values[i] )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Canvas for plotting" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "c = TCanvas( 'c', 'A Simple Fit',700, 500)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Draw canvas and graph and 1 sigma confidence" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<IPython.core.display.Image object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Graph.Draw(\"AP\")\n", "interval.SetFillColor(21)\n", "interval.Draw(\"3\")\n", "c.Draw()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create graph for confidence interval\n", "\n", "Compute the confidence intervals at the x points of the created graph" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "GraphConf = TGraphErrors(Graph.GetN())\n", "GraphConf.SetTitle(\"Fit Polynomial with .95 confidence;x;f(x)\")\n", "for i in range(Graph.GetN()):\n", " GraphConf.SetPoint(i, Graph.GetX()[i],0 )" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ " \n", "TVirtualFitter.GetFitter().GetConfidenceIntervals(GraphConf,0.95)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the \"GraphConf\" graph contains function values as its y-coordinates\n", "and confidence intervals as the errors on these coordinates" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "myC = TCanvas(\"myC\", \"Confidence Intervall\",800, 800);" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "GraphConf.SetLineColor(4)\n", "GraphConf.Draw(\"AP\")" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "Graph.SetLineColor(2)\n", "Graph.SetMarkerStyle(21)\n", "Graph.Draw(\"P SAME\")\n", "func.SetLineColor(4)\n", "func.Draw(\"SAME\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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 "text/plain": [ "<IPython.core.display.Image object>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "myC.Draw()" ] } ], "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.8.16" } }, "nbformat": 4, "nbformat_minor": 4 }
|