{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import rootnotes" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "An histogram is created and filled with the bin contents and errors\n", "defined in the table below.\n", "\n", "3 gaussians are fitted in sub-ranges of this histogram.\n", "\n", "A new function (a sum of 3 gaussians) is fitted on another subrange\n", "\n", "Note that when fitting simple functions, such as gaussians, the initial\n", "values of parameters are automatically computed by ROOT.\n", "\n", "In the more complicated case of the sum of 3 gaussians, the initial values\n", "of parameters must be given. In this particular case, the initial values\n", "are taken from the result of the individual fits.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from ROOT import TH1F, TF1\n", "from ROOT import gROOT, gPad\n", "from array import array\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "gROOT.Reset()\n", "canvas = rootnotes.default_canvas()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "x = ( 1.913521, 1.953769, 2.347435, 2.883654, 3.493567,\n", " 4.047560, 4.337210, 4.364347, 4.563004, 5.054247,\n", " 5.194183, 5.380521, 5.303213, 5.384578, 5.563983,\n", " 5.728500, 5.685752, 5.080029, 4.251809, 3.372246,\n", " 2.207432, 1.227541, 0.8597788,0.8220503,0.8046592,\n", " 0.7684097,0.7469761,0.8019787,0.8362375,0.8744895,\n", " 0.9143721,0.9462768,0.9285364,0.8954604,0.8410891,\n", " 0.7853871,0.7100883,0.6938808,0.7363682,0.7032954,\n", " 0.6029015,0.5600163,0.7477068,1.188785, 1.938228,\n", " 2.602717, 3.472962, 4.465014, 5.177035 )" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "np = len(x)\n", "h = TH1F( 'h', 'Example of several fits in subranges', np, 85, 134 )\n", "h.SetMaximum( 7 )\n", "\n", "for i in xrange(np):\n", " h.SetBinContent( i+1, x[i] )\n", "\n", "par = array( 'd', 9*[0.] )\n", "g1 = TF1( 'g1', 'gaus', 85, 95 )\n", "g2 = TF1( 'g2', 'gaus', 98, 108 )\n", "g3 = TF1( 'g3', 'gaus', 110, 121 )\n", "\n", "total = TF1( 'total', 'gaus(0)+gaus(3)+gaus(6)', 85, 125 )\n", "total.SetLineColor( 2 )\n", "h.Fit( g1, 'R' )\n", "h.Fit( g2, 'R+' )\n", "h.Fit( g3, 'R+' )\n", "\n", "par1 = g1.GetParameters()\n", "par2 = g2.GetParameters()\n", "par3 = g3.GetParameters()\n", "\n", "par[0], par[1], par[2] = par1[0], par1[1], par1[2]\n", "par[3], par[4], par[5] = par2[0], par2[1], par2[2]\n", "par[6], par[7], par[8] = par3[0], par3[1], par3[2]\n", "\n", "total.SetParameters( par )\n", "fit = h.Fit( total, 'R+' )" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "canvas" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\n", "prompt_number": 6, "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "from sympy import init_printing; init_printing()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "from sympy import *\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "x = Symbol(\"x\")\n", "k = Symbol(\"k\")\n", "y = Symbol(\"y\")\n", "\n", "b = Symbol(\"b\")\n", "\n", "t = sin(2*pi*x*(k**2)) / (4*(pi**2)*(k**5)) + (x**2) / (2*k)\n", "\n", "t" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$\\frac{x^{2}}{2 k} + \\frac{1}{4 \\pi^{2} k^{5}} \\sin{\\left (2 \\pi k^{2} x \\right )}$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAANQAAAAwBAMAAACbJUm/AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIol2q1SZEGbd7zK7\nzUTvhYErAAAEgElEQVRYCc1XXWgcVRg9s7M7s5v9m2jV+gMdkpK8ycaUqohktQFfhCym9UUkC4U2\nakPGmDcLu9GXCoKpPlRUTEC0+INd0Aqi4EKtLX3QIqKCCa4Wq09mW1LSWtz1u/N372ZmJ5OyG7yQ\nued+3/nu2Ttz75kJYLWBrw0bdbtTDOV8tzXs+ROadH2LpHoKamOLpIDY2pZJpfVAqTOB2c0ldwbS\nD3dwzXE9SGp2tINSv+OLIC25c1LJ0/se6b7UTbtu2Z3raTbrXZdS9fjrPfNBMizXkRsYgVyPVbZE\nSkW0upHQDa9qvYn35Lol5THxHRUYG4mFeFaZmmcSwcR1Ssa1EcidkPrUowTBxFl2onwON3tZ6yIb\nr0r9aV2JOXRNXKandPiemf6yH0uMKU//OymOfXC07BMEN/Gjfunwsa90zr0DkA4s1ZzA7Psm4ia+\ny8ncWL9S5HUHgG2Qr7iBHxkSTLzktx+edekbAVUgfAyQiy64EVNUMPFE2U1xMM5heJSsAx8YGKvZ\nJRn2KhBNXKnaGbELL3Vnxa2TF4FfDUzX7EjkPAHRxOP0WzwtnNSFIw9KY/nkuWeGT7EZomxquoGG\n0qSWp60Xt2Wl/ofG9wPmMk2OcAklpVaRQIqmPItSjYoJUktexv6TQ0d6gdKfgysFFsIMXirTdkz6\nffyFksocQ4TNn1pENkcTpots2nQ1U5C1IUITn7AxazpG8ASdhAbYeu1mpeBIOWGfnpgn9lRMqaol\nlSiy6kP0l0KertNv08VsBh5lvcrPgRXH1PLyG8vLP9ijgG5mYdUjJeepYBvm6fra7DG3+B2GaFXe\n5qzKmxEiSQ2vFNgNtFeVzlPycUgaJlGnNVzHFcmm0yc6HUDfD3U/qcghOp9mu3jbi6yP5aDkBCn2\nfk0W6T2hroE2QLyuNiImH3NyHffSDrxkDVuuflIHMWVzVmgnU4sdR0oTpGS6a7f39T0FApdp71dx\nSTYrYldTixJtnNDn6ijoBWq2v34zu0z/8N3JsdXnx1ZPfvceRTJ01xaazWtIl/ENbcUydg+aRPXU\nYN99hNiZvnXqW8A2YjMprMp93b3LTo9J+tvkeC9+x0ZkpXOQ8hgpAKYRW6kLnPEWhxOGRbo4fJAH\nBfSwgP1gSUPUQIIW79n1jC5/xIu+J8hIvXiSBwX0uYD94MtkiccRbfg7FLYvuUWRvGtjpYobFUCK\nbk1Qe5Me4BqUhvnQvESdS71AWfZk8QuyNS+Tzg1Ltm/xoplLrAlGLLDjGklNky+tIqMnKxbpQ+zQ\nBA6Hj3Hog+6yYvSJwI1YoD2HJSgPjG+f0/Dlvr2GRRpEm6+EeOAdtPcS/XZuxIKUTlJ/YEimVZxo\nNm1SZEAXKJuESlU0Yl5M/zSwZ1WNOiHu1k5ksz27IaIRO/UzYFJSPuEE/EhOLlQfK6JXNGK3aO/o\n6D97oJSzdsSX5LLDgM+AOcGIW0roCJeMbMWKtSO1VAQNpFf7Bua5EbdSSep+ZHUr2I7UWhIwStC5\nmedG3MLc2ZzEz0gVrWAbUkvF/2TwHzpUTE3i9vUXAAAAAElFTkSuQmCC\n", "prompt_number": 9, "text": [ " 2 \u239b 2 \u239e\n", " x sin\u239d2\u22c5\u03c0\u22c5k \u22c5x\u23a0\n", "\u2500\u2500\u2500 + \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n", "2\u22c5k 2 5 \n", " 4\u22c5\u03c0 \u22c5k " ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "t.evalf(subs={'x':1, 'k':2})" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$0.25$$" ], "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAACQAAAAOBAMAAAC1GaP7AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2Mt1EzasiVIlm\n77s6qyWGAAAA2klEQVQYGU2OP2oCcRBGn6uruy7qsmAp2SIQexu7iBfwV1kkjUcQ6xAWEgIhTUgX\nUugFBDGlJ7DTC2hsUkdMBP/AOmMsnGaGN3wfD4LKJTpvV99w53/0oEmxJsSNuO4xj3eQNCTbghwf\n+4fOi7ztiPRGUG6KsyaSi0JIais7s8Q6oe6A1Ep/EljyUHkCRVKp0xiw4KJ1ju6VO5Mj+g9aX4q8\n32P9Xm+qkDd4a5XIqgTZkPecwdqoqmfwoQ5jS2TE+4ZSLfGHezsaGjek/wrB5yOJGXYcx4Z6+ZkD\nZWg4hTqscB0AAAAASUVORK5CYII=\n", "prompt_number": 10, "text": [ "0.250000000000000" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Courtesy of MathJax, you can include mathematical expressions both inline: \n", "\n", "$e^{i\\\\pi} + 1 = 0$ and displayed\n", "\n", "$$e^x=\\sum_{i=0}^\\infty \\frac{1}{i!} x^i$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$c = \\sqrt{a^2 + b^2}$$" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import display, Math, Latex\n", "display(Math(r'F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx'))" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "$$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$$" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "%%latex\n", "\\begin{aligned}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0\n", "\\end{aligned}" ], "language": "python", "metadata": {}, "outputs": [ { "latex": [ "\\begin{aligned}\n", "\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} & = \\frac{4\\pi}{c}\\vec{\\mathbf{j}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{E}} & = 4 \\pi \\rho \\\\\n", "\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} & = \\vec{\\mathbf{0}} \\\\\n", "\\nabla \\cdot \\vec{\\mathbf{B}} & = 0\n", "\\end{aligned}" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] } ], "prompt_number": 12 } ], "metadata": {} } ] }