{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "A basic example of ROOT's RooFit statistical modeling language in iPython notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "License: [BSD](http://opensource.org/licenses/BSD-3-Clause) (C) 2014, Kyle Cranmer. Feel free to use, distribute, and modify with the above attribution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Particle physicisits primarily use [ROOT](http://root.cern.ch) for the data analysis framework. Part of that framework is a package called [RooFit](http://root.cern.ch/drupal/content/users-guide#roofit) statistical modeling and fitting package. I have contributed to this package and added a layer on top called [RooStats](https://twiki.cern.ch/twiki/bin/view/RooStats/WebHome) that provides with statistical inference in both frequentist and Bayesian paradigms based on statistical models made with RooFit. These are the tools that were used to claim the discover the Higgs boson, and those [statistical models get pretty complicated](http://blogs.discovermagazine.com/cosmicvariance/2011/12/08/making-the-higgs-sausage/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+CosmicVariance+%28Cosmic+Variance%29#.UxFW0NyrvlI).\n", "\n", "Here I demonstrate a simple example of RooFit's ability to create a statistical model, generate some simulated data, fit that data, create the profile likelihood, and provide a covariance matrix from the likelihood fit. \n", "\n", "ROOT is a C++ library, but it has python bindings known as PyROOT. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "import ROOT\n", "import rootnotes #for plotting with iPython\n", "c1 = rootnotes.default_canvas()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we create a \"workspace\" object that provides a factory with a convenient syntax for statistical models and variables. The workspace also provides an I/O mechanism to read/write statistical models and data to/from files.\n", "\n", "In this example, we create a mixture model of a falling exponential distribution and a Gaussian for a variable x. \n", "This is really a marked Poisson process, because in addition to the pdf on x, we also encode that we expect s=50 events from the Gaussian and b=100 events from the falling exponential." ] }, { "cell_type": "code", "collapsed": false, "input": [ "w = ROOT.RooWorkspace()\n", "w.factory('Gaussian::g(x[-5,5],mu[-3,3],sigma[1])')\n", "w.factory('Exponential::e(x,tau[-.5,-3,0])')\n", "w.factory('SUM::model(s[50,0,100]*g,b[100,0,1000]*e)')\n", "w.Print() #this isn't displaying in iPython" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "TClass::TClass:0: RuntimeWarning: no dictionary for class stack > is available\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have made the mdoel, we can generate some fake data, make a plot of the data, fit the model to that data, and overlay the fitted model in the plot" ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = w.var('x')\n", "pdf = w.pdf('model')\n", "frame = x.frame()\n", "data = pdf.generate(ROOT.RooArgSet(x))\n", "data.plotOn(frame)\n", "fitResult = pdf.fitTo(data,ROOT.RooFit.Save())\n", "pdf.plotOn(frame)\n", "frame.Draw()\n", "c1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\n", "prompt_number": 3, "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can check the value of the parameters after the fit" ] }, { "cell_type": "code", "collapsed": false, "input": [ "mu = w.var('mu')\n", "print 'best fit value of mean for Gaussian is', mu.getVal(), '\u00b1', mu.getError()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "best fit value of mean for Gaussian is 0.324840840875 \u00b1 0.158716435359\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And make a plot of the log(profile likelihood Ratio) as a function of the signal rate" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s=w.var('s')\n", "sframe=s.frame()\n", "lnL = pdf.createNLL(data)\n", "lnProfileL = lnL.createProfile(ROOT.RooArgSet(s))\n", "lnProfileL.plotOn(sframe)\n", "sframe.Draw()\n", "c1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "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\n", "prompt_number": 5, "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And finally, make a plot that encodes the correlation matrix between the four free parameters in the fit." ] }, { "cell_type": "code", "collapsed": false, "input": [ "corrMatrixHist = fitResult.correlationHist()\n", "corrMatrixHist.SetStats(False)\n", "corrMatrixHist.Draw('colz text')\n", "c1" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAAxwAAAI8CAIAAAD0vjrdAAAABmJLR0QAAAAAAAD5Q7t/AAAgAElE\nQVR4nO3dbYgdV37n8V8tMrSHLLgNS2bmVfRgyc4Le4cN5J3r3JY9lo3k2A67L5bYEExisORMGE1m\nM1jTdUpWCJ5YJiSTLA4ZAuOFfRHiCVghmdjqOuXXGxL7RRwpY2n2jT2BZRRYMmqYhdoXp/rc6roP\nfbv73Ke63w9C3HvuqQf1Vd/+9f+cOpVUVSUAAAAczr+b9wkAAAB0AaEKAAAgAkIVAABABIQqAACA\nCAhVAAAAERCqAAAAIiBUAdjD5z//+Z/5mZ85fvx43N0eO3bs2LFjcfe5Ih544IEHHnhg3mcBoO3I\nvE8AwKL7l3/5F0n/9m//FnGfv/7rv3779u2IO1wdv/Ebv/GDH/xg3mcBYAgqVQCmLkmSJEm+/vWv\nz/tEFhRfH6AbCFUA5uBP/uRPqqrijg4H8Ad/8Ad86YDFRKgCAACIgDlVwBw8++yz4fH3vve9MT3P\nnTsXHr/77rt77vnJJ5+U9Nd//deTv+TbvaEbjnH+/PlPPvkkPD1+/Pgf/dEftfocYFTrlVdeCdOG\nTpw48Yd/+Id7bvL000/7B6dOnfq93/u9/R5xlN/8zd/853/+Z//4r/7qr4a2P/DAA7//+78/dPML\nFy405z+dOHHi29/+9gFO49KlSx9//PFDDz105cqVA2wOYEYqADP0zDPPDH4bPvjgg4M9T548Odjz\n5MmTrW6+/cKFCxcuXGh9X495yTtz5szgIU6cODH0ED/7sz/bbHz55ZeHfqQcP358cNump59+uqqq\nX/u1Xxv6EdQ81aYLFy4MPauqqpq5c+g/c7/CHgavsHvqqaeGtj/wwAOtnZw/f/4wX59XX301nMZD\nDz3kHz/33HOtM/RCh9Y5hJ2EDQFMFaEKmJ1monrwwQcffPDB5tNmz2aiOnnyZOtps6dvbMWjPV+q\nqurEiROh8cSJE62ng4dohqpmojp+/PgTTzzRXHChmRtOnTp16tQp3+4f/9Zv/VY1IlQ1E9WJEyfO\nnDnTPKtWrvKNIVGdO3euma4G0+fk/B58cnrggQeeeuqpZopqtj/11FOh/Stf+crgTvb19fFfolao\nCoFJo0NVaHnooYf2bAQwPYQqYEZ++7d/2/+Qa+WnEK1Cy9mzZ33L2bNnmz2HtqthaOwY+lKIL2fO\nnGm2hwTWbPctzVAVIkLr3ziq3Tf6OOUNDVV7/kOGNp47d67ZHgJodVBhz82c9JWvfCW0+3pVq3+z\nWDXq6/DEE09M+PUJoWpoKhrcSej/6quv+pbnnnvukF8HAPvF9xswI4PhKfDtzzzzTPPp0FrLYGIY\nGjgmfGlwpK9qVLBanZuhyrc88cQTrW1DBWvo4caHqpDzBkf6hr6057/ua1/72uBLkxgMSeOPGGpX\nrZ6DX59qWB6qxoaqoXWmoTtpDQK2MhaAGeDqP2BG/umf/knS0DlVzzzzTGs0UFKoS+3ZKKk5TDb5\nS0PnVA1tbPEfH3/zN3+zZ8/Jhb0NTksPLYNHHDqhKorm0N4k7U0Rvz6h4LSnf/zHf/QPfv7nfz5J\nEklMbAdmjFAFzMI3vvEN/6CVnLzvfe97H3/88e/+7u9Kunjxom+8evXqYM/QGLp5+wpVr7zyyiTn\nPGE37/z582fOnPnjP/7jyTdp8VfJjfqH+Kg3uJJ4c0LSIrtw4cKZM2d81tmXfaUiX9/6+OOP/dMQ\nswDMBksqADPlk9MYN2/enGQ/E3YbKkSTb3/72we7wt87c+bMD37wg+aSCoc3Jh0unWl8fca7cuXK\nO++840NVc1YWgNkgVAGr68AJ5syZM9///vfDUz8v+8SJE8ePHz9MsaozLly40Fqv6/jx4/4Sy8F1\nvOIKZap33nmHsT9gxghVwEx94xvfGF+sGro81YG7DRWyVFi+cr9Conr55ZdbKeGQoaobtwoOX5Pz\n58+3aoFTDVW//Mu/HB5//PHHly5dIlcBs8ScKmAWQpDy09Vbnn322SRJ/NVbo2ZNtRqHzriaUJj3\nPWrW1CuvvDJmQlWYyV5VVSsijFrxchI+6o0KVeNnXC2U5tfnMKOr+3Xp0qV33nlH0quvvur/L/3O\n7/zOzI4OQIQqYGb8FPW//Mu/HHzJN7bmsF+7dm2w59DGAxt6edqTTz554LlWh5k/FLLIYJ4Ld61Z\nilA1xiRXVh6Yj1DPPffclStXmlcCTu+IAFoIVcCMhMUUmjf+az4Nocqvm3Dz5s3WegHnzp3z89NH\nLawwuXAxXfPGf5JeeeUVn7QO8OP//PnzzYlW+xXqZ4N5LrTs99aE89W65c6FCxcO8/UZL4Snv/iL\nv/APwpWAly5dmtJBAbTNa4EsYAU1a1HPPPNM6641zZ7NKVNnz55tpahmT9/SWhh9z5eq3bepOXPm\nTOueMIP7GVz8U9ITTzzx8ssvt27DIun48eMvv/xyq7+/R03c29QMXeFzzEuT8Ju3bjsT2lvLqVej\nF//0X5/z588P/fqcP3++1b/59Wne+2/UGYang8upe6PuCQhgSvhmA2Zq6DpVh7+h8gFCVbU7VzXT\nzND9jLr3XzMoVI08oWHLviv2DZUXM1QNnVs25uvTXG1r8IbKo86w9XToXZP9S9z+D5iNpBp2m3QA\nU/Xss8/6Get+IfVR1wNevHjx5s2bfsjP31b5MPPTR3nyySfDjKUTJ04MLmg+il+HSTuLKYRJ6779\nxIkTzTlbv/RLv3Tjxg1JTz/99Le+9a3xe/aTqPxO9nVKC6X59Tlx4kQYxDz81wfAYiJUAQAARMBE\ndQAAgAhY/BNAZ/3iL/7ivlYTvf/++w+8ICoAUKkC0Fk//vGP530KAFYIc6oAAAAioFIFAAAQAaEK\nAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAA\nQASEKgAAgAgIVQAAABEQqgAAACIgVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAFgVzjnn3JR2\nnlRVNaVdAwAALJQkSdI0nVKuolIFAABWgjFmqvs/MtW9AwAAzF2SJDM4CqEKAAB0XJZl/kGe59M7\nCnOqAADAqpjqnKrVqlQdpvpH9lxwx3mHOu2WfjrvU8C0vKV75n0KmJaXEvVrN/v/EXyYEbu51IxW\nK1SJbAQAwJI48I/sWcyfGoar/wAAACIgVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAEAEK7ek\nAgAAWFlTXb+KShUAAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABEQKgCAACIgFAFAAAQAaEKAAAg\nAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiODIvE8AAACsgEdmeKwPZ3isBipV\nAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAA\nACIgVAEAAERAqAIAAIiAUAUAABABoQoAACCCI/M+AQAAgFmw1koyxhhj9uzsnHPOTd5fUlJV1SFO\nb8kkSbJC/9oVc5y3ttNu6afzPgVMy1u6Z96ngGl5KVE/ZvzHZGbHTT5UK95Ya/M8D0/TNPWBaRRj\nTFmWzZZJ8hLDfwAAoMuccz5RFUVRVVWWZWVZjik++USVZVlVVb6/b9zzQFSq0BFUqrqNSlWHUanq\nsAWpVPmQVBRFCEa+ZVQESpJEGrKHPSMTlSoAANBlfiCvWWryj8ePAB4AoQoAAHRcmqbNp+NDle8c\nXnXOteZXjcLVfwAAYLWMD1XOOWNMr9drNk4yXYpQBQAApu/MvrdIXo9w2LAswr428aUpX7Lyj33S\nGr8hoQoAACyi6r8dcMNmGttXnPJ8japZmkqSpNfrMVEdAACsutZI35jylV8g1C+jEBRFEV4ag1AF\nAAA6rjXTfM8xwdZLE14tSKgCAABd1rr0T2ND1dD8FO5vM/5AhCoAANBlPhL5JT3907Ism0nLGJMk\nSTNp5XkeBvvCLW72HP5jojoAAOgyY0yWZXmeh1w1/t5/VVUlSZLnefN2gX5a1XjcpgYdwW1quo3b\n1HQYt6npsF23qfntGd6m5vXhy0qFUbxJLgl0zoXa1YSXEC738J9zbs9aHLCY7ljdSnQr0R07vMOn\nRnddu/OnZlcH3+i73XX109Ai9VtuNT7NfE9Mlzmt5B4l92hr4Lfb8JK9vKs9aWQLV9Z9zOm6xV6u\nW/yGoUP4E/iebqIFoLEv71q9lOilRO/akS9dNXXLDdduafa84eqnV03d7cbWQIvb9XTUoTE5a621\ndsKEZIzZV38te6jSFG7c0yX83FxYd53u5FrPtJ7pTt7PQJ6PUNuNn4l3cq2lWs+0Xda56lOj7VJf\nKLSW6rOepPrvZstPtiRpLa3/1Me19auYInNa5Qe6/reSdPrLu16yl1V+oOJ9pY8qf63fmOyu1vQe\nU/qoivdVflBnr/w1pY/Wf0wqqf+0yZX1bglVsd1wupbrbKazma7l/VTUeulmWeeeN3s6meqrhW6W\nu5LWtVySbjpJump0s9RXr+tkqjdPN1oKnUz1Zk+SThqdTOs/WHBdmFPlC3STV+dWgZXyPTthfnx1\nat1K0p1c2073mv6rd53W0n6o8k+/6OrO3nap9Uz3Gt3r+hv6Fll91tNdp+1Sa6nu25Skz23094ap\nKz9Q+qg2err+tzr9ZW0V2mgk2eybMqnspnqP1dGnFYB8inLXJalqjHvaTUl1ogodXKneYyrerxt7\njyn7Zj+uIZ5rVpLOWUm6luum0ynTf/Vk2n8pOGt1yuhkqps77/CbvTqTeTdLnUx1akOnNvotZzOd\nMpLVmz3dcPVupTqZhadYQEtfqSrL0q982uv1CFWBm/cJYF9aQeeLrs5b3r2mTlS+RrVu6/538l0D\niMeqnZRm6622S22X+tFp/eh0va3f1Rq/785Aq4AU2E3ZTdnLdS3KpDKp3HVl32z3HBzX6z2m3mPt\nob2wH0n2stJH6+yFKfOlJu+U0UWnG25X7vGlplB5kvSu1clUJ83u/ZQ743o7i036PTf3L+mG6+8H\nC2vpQ5WkqqqstVVVTXgT6VXgpGzPTlhO265+sJbqWKW1tF++UmNY0He4b1PHKt23qe2yHg3EtIQ5\nT5OPu5UfjHs1+2Zdf/LTqvxTX7gKk7H8sUKKyl+ry1eYKz/856tQPkL5Kte1XBfdkP5vVTqZ6tpl\nSfUA4kvJroqXdgYTm7UxLKClH/5rreg1yf0OgaVz19VFpk+N7uQ6ZqWd0cP1xhwpP/38C0U9mHj/\nzocypakZaVanRgWmEIPsZj3lfFRhybenj9a7Ct1Ci3bSlS9T+T2Hylb+Wl0Gw0zccDpldMrpqunn\noRChwhysl5J+i89bZzfrv988rRtbOmd10tRlqrAfv+1ZO91/Ag5v6StVVKewjHzouevqgTz/tHm5\nX9Ndp8969aDertnrtv+3wuBgpm1XN4arBbf5LpkBuyl3Xe66TNrPPZevSNJGT66sC05+4E9jJ5KH\nkOTKenpWuKAvtHjlB/1xQ5OqeF/F+3VLGBNEJD4D3XB1xPFPrxrdcHp3Z/6Tdheo6pKVk6RTRl8t\n9NVCZzNJ9cSpUKDyf5/a0FWja1bnbH+r5h6w4Ja+UhXseR8fYHH4eVGhwuSfbpftGevevaYe4/PD\nfH5o7wuFPuv1S1PaSU5hKHDN6L5N/evlus99m/256pi6zUs6/eW6aLR5SVIdhqR6frp/adT8Jx/L\nfPbSzoT0/LV2y9AN/d++TIWofNB5s9d/6uc53XTtl8L89Gt5XW3yc6H6qWjn+9QXqHz5qi5ZWb3Z\nq1vCDKrW/CosrOVe/NM552epp2lalmWWZeOXrVqpxT+tlEur8+9dxsU/m2WqCfu3Og+2DPrJVhfi\n1FIu/tm66K/Jl6n2zD2u3NVnwq2WzXIt/unLUUOLRkNfuuH2rjDd2Opf/Tf5Vkth0Rb/nPpxlzpU\nBRNOpVqpULVqljFUYXJLGaowmeUKVdiXVQtVSz+nymPUDwAAzFdHQhUAAMB8EaoAAAAiIFQBAABE\nQKgCAACIoDvrVAEAgMX1yLxPYPqoVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAEAEhCoAAIAI\nCFUAAAAREKoAAAAiIFQBAABEQKgCAACIgFAFAAAQAaEKAAAgAkIVAABABIQqAACACAhVAAAAERyZ\n9wkAAADMgrVWkjHGGDNJf+ecc27y/klVVQc/u2WTJMkK/WtXzHHe2k67pZ/O+xQwLW/pnnmfAqbl\npUT9mPE/k5kdN/mvasUba22e5+FpmqbOuTF7cM71er1myyR5ieE/AADQZc45n6iKoqiqKsuysizH\nFJ9CovL9i6KQlCR7h0JCFQAA6DI/6lcUhQ9S1to0TcuyHN+/qirf3xiTZZmk8cUtEaoAAEC3+fzU\nLE35x6NCUlmWaZo2W6y1IWONQagCAAAd1wpJY0KVbwwdrLV7FqgCrv4DAACrZXylyguTqMJ8rD0r\nVYQqAAAwfWf2vUVyf4TDNitPk8vzPE1Ta60xxl852Ov19rwAkFAFAAAWUfXjA27YTGP7jVNBqGP5\neet5nltr/eNRmFMFAAA6rjXSt2f5yl/uF0wyXChCFQAA6LzWAgpjQtWYpMXVfwAAYKW1Lv3TBJWq\n5vLrk/T3CFUAAKDL/ESocDWftba1EpUxJkmSMLrnx/6MMb4l3OKGq/8AAMBK80ui53kectX4e/+F\nmenN2/9Ncu8/bqiMjuCGyt3GDZU7jBsqd9iuGyrfmeENle8fnoF8WjLGTHhJ4H77E6rQEYSqbiNU\ndRihqsMWLVRNG3OqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAA\nABEQqgAAACIgVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAEAER+Z9ArOWHHTDY1XM00B0nxz4\nrcUySKrX530KmBbe2hXxv9fnfQbTt3KhimwEAACmgeE/AACACAhVAAAAERCqAAAAIiBUAQAARECo\nAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAAACIgVAEAAERAqAIAAIiAUAUA\nABDBkXmfAAAAwCxYayUZY4wxk2/lnPNb7dmTUAUAADrOWpvnuX+c53mapj4q7ck51+v1JuzP8B8A\nAOgy55xPVEVRVFWVZVlZlhMWq3q93uQHIlQBAIAu86N+RVH4IGWtTdO0LMs9N9zXKKEIVQAAoNt8\nfmomJP94/IietbYsy6IoJj8QoQoAAHRcmqbNp5OEqjzPsyzbV7GKUAUAAFbLnqEqSRLtjBtOjqv/\nAADA1H1//5u8lEQ47uQLIgQ+S1VVtd9jEaoAAMAiemvfqabWTGP7nWzuLxXMsuwAxyVUAQCAjmuN\n9I0pX/kylXOu+apfgsEYM35AkFAFAAA6rrWAwphQZYwpy3JwwYVJlrZiojoAAOiy1qV/2qtSVe3m\n91BV1Z7z1glVAACgy3wY8hf0aWcBqmbSMsYkSTLhjWvGYPgPAAB0mTEmy7I8z0Oumvzef/uSHOCK\nweWVJMmxFfrnrpZPYlx5i4WVVFfmfQqYlmO6NO9TwLTcSvoLE/yJZvcx/VIyfEEEX7LyU86ncVwq\nVQAAYCXsdzHP/WJOFQAAQASEKgAAgAgIVQAAABEQqgAAACIgVAEAAERAqAIAAIiAUAUAABABoQoA\nACACQhUAAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABEQKgCAACI4Mi8TwAAAHTfP8z7BGaAShUA\nAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABEQKgCAACIgFC10O5Y3Up0K9EdO7zDp0Z3Xbvzp2ZX\nB9/ou9119dPQIvVbbiX9DX1PAAdk/lTJJSWXtPXJkFfdbSWXGp2/U3dOLsndliS7VT+1W3Wf0GK+\ns2sn41sQ1b4+k8PnbfMz2e8kbN78TA7dwuf2T7baLaOOiwWxHKHKOSfJWusfOOesta1XBx8vu7tO\nd3KtZ1rPdCfvf6N6/nt7u2y05FpLtZ5pu6y/OT812i71hUJrqT7rSar/brb4b9q1tP5TH9fWr2Jh\nkXgXmvlTlT/U9V+VpNN/tusld1t2S73doae8rfRo/cf3ybeUbSjbUL5Vx6x8S+lRZRsqb9eZqfcd\npUdVvDiuBfHs9zP5s177M/mu06dm17bbTtr5BL7XSDuf25+/rrVUPzpd73m71HqmtXTIcbFQliNU\n9Xo9Y4x/kCSJc845lyRJeLXZcy5nOA3+N5J1q3Ur7XzvBXddnYGaT7/o6s6e/z681+iLTsequtG3\n+G53nbZLraW6b1P3beqLrr83LCxLolp85Q+V/pw2jte5qlWs8iGp9dS9KLsh96LM0bo6ZTdkNyTJ\nbu3qkx5VubMHuyGzk7TqElejBVHt9zM5dF5L67DV2iRstW77n97+M/lzG7pvc0ifoTvB4liaFdVD\nCSqUqUKoWhF3ndYbT7/odNf160n3Gt3rJNW/D63b+lv6Tq47uSStZ1q3/WjlPx3uNfXvQP73IR/L\n/K78b0tYQG7eJ4CJ+JrTIHNU7kXZLeVbu9rDaGB1ReZoOxKZo6qu1I99WcsfwpemytsqXpTZqXKZ\no+3chikY/5k81LrVutozK7bLeiv/Kf356/rR6foT2Ke08Ouu/9xeM3HOH9OwHJWqJl+ywnjhV5m1\nVMequmgchGFB3+G+TR2rdN+mtsv+ED4WlpOyeZ8Dhghzng4QaLINVVdUvFjvxxeo/N6awkws96K0\nk658lvLFrfSo8i0llyhTzV2znuTH9Ya612g92/Up/a+XpZ0BwV0TPGw9+Dhmb5i7palUTaJLE6oO\n4K6rR/r8mP0xK6muJ6835kj5X5K+UNTfmffvhK1m4RrAQTSrU5PHGrMTjEKpSVJ1RXZL5mh/9pW7\nXdel3E720k66kuq6l6+BNVswJ2tG2vl0HTOhIkzY8J/SfkrGfZv1J/OtRD/OdH/e/02YRLXglq9S\nNUbHQpX/5rnr6m/IMIdx6PenLzv74nDrl5vwt8LgYKZtVzeGS04Y7AMOxc+I8pOi0p9T+UNJulxI\n0sZxudEzx/2lf9qJU37wLrlUZyy/Z6lOV37GlR/jU4hWOwHO78du1LPaEdW+PpP9q+EzedRvreET\nOEzJ0M6n8Y8zSVpL60kaa2n9uc2c10XWkUpVkiRp2rVKi58XFSpM/ul2qW035JeVe01dPfYFZD+0\n94VCn/X6pSntfK+GocA1o/s29a+X6z73bepzG1P9NwGrYbOn039WR5zNniS52yNrV3ZDvZ1clR6t\nI5R2UpQf4GvVn3KpulIP9vmWbKP+O7RYvpkj29dnslRfJOg/XZuXEI3sk0mq51T5Fj9j3c953S7r\nD/D1seOJmK+kqqq9ey08X6Pac7pVkiTHlu2f2/yVaML+rc6DLYN+srX0ceqTVbpuwfqfqvM+jVlK\nwjTtJbL1iTaOT9o5lKnGtIzasNVnsGWxHdOlvTstjMN/Jk/SpwOfyd6tRCFmvDzDC5f/e+O4s9SR\nUDWhZQxVmNBKhaoVtJShCpNZrlCFfVm0UOVXDzDGTHLRm1+/afL+IlShMwhV3Uao6jBCVYctTqiy\n1uZ5/zL4NE3Hz8M2xpTlrrnGRVHsGa06NVEdAACgxTnnE1VRFFVVZVlWluWYhOQTVZqmVVVVVVUU\nhSZbXZxQBQAAusyP+oVSk7U2TdNWIarJvxRKWcaYLMvCfsYgVAEAgC7zIalZmvKPx4wA+hTV6r8n\nQhUAAOi41rpL40NVURStotSEC2ESqgAAwGoZH6padakwJWvP4b+OLP4JAAAW2ff3v8mtGNcLTriS\n5SjhskE/XX08QhUAAFhEB14FqZnGDhynnHP+ir89118IGP4DAAAd10pFe5avjDG9Xi9N06IoJr+z\nMKEKAAB0XGsBhfGhylpblmWWZc65fRW6CFUAAKDLWpf+aa9Qled5mqZ7TksfRKgCAABd5uNRkiTh\nqV8wPXQwxiRJ4pOW/9svud6y5zggE9UBAECX+SXR8zwPuWrM3PPQPrjk+p6jgdxQGR3BDZW7jRsq\ndxg3VO6w5g2Vj8/whsq3Bm6o7PmSlS87TeO4VKoAAMBKOMA0qX1hThUAAEAEhCoAAIAICFUAAAAR\nEKoAAAAiIFQBAABEQKgCAACIgFAFAAAQAaEKAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBU\nAQAARECoAgAAiODIvE8AAAB03y39+xke7f/O8Fh9VKoAAAAiIFQBAABEQKgCAACIgFAFAAAQAaEK\nAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAA\nQASEKgAAgAiOzPsEAAAAZsFaK8kYY4yZxv4JVQAAoOOstXme+8d5nqdp6pyLfhSG/wAAQJc553yi\nKoqiqqosy8qynEaxilAFAAC6zI/6FUXhg5S1Nk3TsiyjH4hQBQAAusznp2Zpyj+OPgJIqAIAAB2X\npmnzKaEKAAAggimFqpW7+u9WctAtq5/GPA/EllSvz/sUMEVVcmnep4BpSd6r5n0KmJ7mD90z+9/6\nzw9/Bj45TWkNhZaVC1VkIwAAlkP1nw+4YSONzSZOeQz/AQCAjmuN9E2pfEWoAgAAHddaQIFQBQAA\nsG+tS/9EqAIAADgAv/hnkiThaVmWg0nr8FZvojoAAFglxpgsy/I8D7lqSvf+S6pqha5lTZKEq/+6\niyUVuowlFTqMJRW67PF+zEj0X2Z33OTPh8YbX7IyxkzpkkAqVQAAYCX4UDU9zKkCAACIgFAFAAAQ\nAaEKAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJC\nFQAAQASEKgAAgAiOzPsEAADAKnhkhsf68xkeq49KFQAAQASEKgAAgAgIVUjJCJEAABh9SURBVAAA\nABEQqgAAACIgVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAEAEhCoAAIAICFUAAAAREKoAAAAi\nIFQBAABEQKgCAACIgFAFAAAQwZF5nwAAAMB8OOecc8YYY8wk/a21rQdNSVVV0U5t4SVJouqn8z4L\nTMnr8z4BTFGVXJr3KWBakvdW6MfQynm8HzMS/c7sjptcmiTeJEnSfFoUxZhoZa3N87zZkmVZK1ox\n/AcAAFaOT1RFUVRVVRSFpF6vN6qzc84nqmb/PM+dc81uhCoAALBafBjKssyXpowxWZZpxKBeaK+q\nKvT3lbBWf4b/0BkM/3UZw38dxvBfly3q8J8xpizLVp8kSdI0bRWfwkuSBvu3GpmoDgAAIEllWQ5t\n9+N9g9I0bT4lVAEAgNUyKjyNMjiB3be0hv8IVQAAYAbO7HuL5BemcBqH5ZzzU9rDlKyAUAUAABZS\n9b8OuOHuNNZcOmFwHYTJhTilEesvEKoAAECX+Sv7PJ+E0jTd7whgs0A1KpYRqgAAQJdNXppqTTwP\nfKIadW1gwDpVAABgtfiY1Qxb/vGoFdX9q+MTlVinCh3COlVdxjpVHcY6VV22a52qv5vdcZNf2DPe\nhBXVjTFhaC9s1SpN+c6DdSxjTDOZMfwHAABWTlVVSZI0b00zajGqYHAaVlmWhCoAALDqqqpyzjnn\njDGtgb9wI5rQc5IdMqdq4ZnTSu5Rco+2BhJ0eMle3tWe3NN/7Mq6jzldt9jLdYvfMHQIfwLf0+3v\n+gjsg/lTJZeUXNLWJ0NedbfVHPMy36k7J5fkbkuS3aqf2q26T2gx39m1k/EtAPbrotHjiR5P9Pdb\nQ1790OnxRBfNrsZmy3dtvfl37a5Nmn0GW8K2YSscmh+/GzWVar86EqqstQdedmKhmdMqP9D1v5Wk\n01/e9ZK9rPIDFe8rfVT5a/3GZiqS1HtM6aMq3lf5QZ298teUPlr/Mamk/tMmV9a7JVRNiflTlT/U\n9V+VpNN/tusld1t2S73doae8rfRo/cf3ybeUbSjbUL5Vx6x8S+lRZRsqb9eZqfcdpUdVvDiuBQsm\n2bsL5uqi0UelvnVdkr5+ekiHr/Uk6aNy1yah5UOnt3M9n+n5TG/n+tDVmzyc6o1CH5V158GWD50u\nmv4mWDxdCFVhUa/m6l4dUX6g9FFt9Opc1SpWZd+USWU3JcmV9Z8mn6LcdZlU1U/rnpLspuxm3W5S\nuety1+tXi/frPr3HlH1zev8yqPyh0p/TxvE6V7WKVT4ktZ66F2U35F6UOVpXp+yG7IYk2a1dfdKj\nKnf2YDdkdpJWXeJqtGCRWBLVUvio1MOpvrRR56pWseq7Vg/vns78oas3CR0kvWD1gq2f+pD0gtUj\nRu9Vuurqnr7l+ayfxrDYln5OlbU2TdNulqm8VgEp8BnIXq4rT77m5K7XLU2hdhWufOw9Vj8o3q83\n1E5Nyz+1l5U+KrvZ3hXi8jWnQeao3IuyW8p3f1iH0cDqiszRdiQyR1VdqR/7spY/hC9NlbdVvCiz\nU+UyR9u5DQvAzfsEMKmHh69mJElv53qv0uONePy1nt4o+mN2j5hdRSypX6zy3ij0iNHDaV2s+qjU\nG4WkOoQ9TvBeXEtfqbLWlmWZJEnEMdE5C3OeJh93Kz8Y92r2zbr+5KdV+ac+YIXJWP5YoZSVvyZ3\nfb8njr2FOU8HCDTZhqorKl6s9+MLVH5vTWEmlntR2klXPkv54lZ6VPmWkkuUqRaQk7I9O2Euwiyo\n8eWii0bP734PfeHqEdNvCdmoFY+ez+RXlwijh2FDJlEtiaWvVKkxe7/X6w29F8/yaVanRgWmEIPs\nZj3lPESiFt+ePlrvKnQLLdpJV3W5q5Qa9a38tXqUEFE0q1OTxxqzE4xCqUlSdUV2S+Zof/aVu13X\npdxO9tJOupLqupevgTVbAEyiWZ36aMQvvR+V+qjU23n99OJOUSrkp4tGV53eq/Rdq0dMnZ8eMXo7\nr8OWn2jlU1QYBww7xGLrQqXK16j8OOCeq50uAT/byU94Crnn8hVJ2ujJlXXByV6uR/HGFLRCSHJl\nPT0rXNAXWrzyg/4MKpOqeF/F+3VLGBPE4fkZUX5SVPpzKn8oSZcLSdo4Ljd65ri/9E87ccoP3iWX\n6ozl9yzV6crPuPJjfArRaifA+f3YjXpWO4BJvGB11emqqwfmfFT6H5cl6Usb9RRySW8U9R/vquu3\n+Ez2gq0v6wu1Kz9xSjvlqLfzdoGKqVTLY+krVdbaJEl8lirLsguhqmnzkk5/uS4abfqfqWW/4NR7\nrH7Jz38a5GNZmEHlR/Ty19otQzf0f/syFaZhs6fTf1ZHnM2eJLnbI2tXdkO9nVyVHq0jlHZSlB/g\na9Wfcqm6Ug/2+ZZso/47tIT9AJjcr2zq66fr4tOvbEo7U9GlXcN8XqslPPU1qpCffIHKV6R8zHo4\n7bc8z7DwcujIbWp8ltpz4G9Zb1OzVWijN/wlX6baM/e4clefCbdaMst5m5qtT7RxfNLOoUw1pmXU\nhq0+gy2LbXVuU2N9Hp73aczSst6m5u+39KVD/Fri60+tyPWh27tluSzwbWqmcthuhKoJLWuowkSW\nM1RhMqsTqlbQsoYqTGLFQtXSz6kCAABYBIQqAACACAhVAAAAERCqAAAAIiBUAQAARLD061QBAIBl\n8Mi8T2DqqFQBAABEQKgCAACIgFAFAAAQAaEKAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBU\nAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAAwIpyzllrnXMH2Gqw\nPamqKsppLYUkSVT9dN5ngSl5fd4ngCmqkkvzPgVMS/LeCv0YWjmP92NGov83u+Mm90wSb5IkaT4t\nisIYM9Huk0TS4CGoVAEAgJXjg1FRFFVVFUUhqdfrTbLhmOBFqAIAAKvFj/dlWeYTkjEmyzJJQwf1\nWhuWZTnqVYb/0BkM/3UZw38dxvBfly3q8J8xpizLVp8kSdI0HT+/yveRNLi5qFQBAAB4Y6pQ2hn4\nG5O6CFUAAGC1jA9PQ1lry7L0s69GOXKIUwIAAJjM+/uPHI8ne/eZCedcnudhDtYohCoAALCQDjzf\nbncaay6dkGXZnrPRB/V6vTRN99yQUAUAALrMX9nn+VJTmqaTjwD6SVRlWYYyld92cIoVoQoAAHTZ\n5KUpf2XfKK0cNhjLmKgOAABWi49ZzbDlHw+dMmWMqXbz2cs/bvYkVAEAgNXiw1Oe537wzs9DVyNm\nOeeSJJnwrjUBw38AAGDlVFWVJEnz1jTjl0uYBKEKAACsoqqqnHPOOWNMqyjlh/xGbThq/U9CFQAA\nWFGDceowmFMFAAAQAaEKAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQ\nBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAAACI4Mu8TmLnknoNt91YV9zwQ2evzPgFM\nVfIe34GdVT2ezPsUMC273tp/mNdZzM7KhSqyEQAAmAaG/wAAACIgVAEAAERAqAIAAIiAUAUAABAB\noQoAACACQhUAAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABEQKgCAACIgFAFAAAQAaEKAAAgAkIV\nAABABEfmfQIAAADz4ZxzzhljjDGT95dkrR18NamqKubZLbYkSd5aoX/uanl93ieAqbr1Pt+6nVU9\nnsz7FDAtiRRiRvLGDA/8WxPFmyTZ9X+vKIrx0arVP8uyVrRi+A8AAKwcn5CKoqiqqigKSb1eb1/9\n8zxv9SFUAQCA1eKH8LIs86UpY0yWZRoxqDe0v89Vrf4M/6EjGP7rNob/Oozhvw5b2OE/Y0xZlq0+\nSZKkaerz0yT9BzFRHQAAQJLKshzfHiLX0NlXhCoAALBaRoWnMdI09fWq0DI4UZ3hP3QEw3/dxvBf\nhzH812G7hv8e3//27x/8/8b4eONnnQ8O/43aMFz3568QdM75We2tCwapVAEAgIX02EF/m9qdxppL\nIQyWlyYXIpQxpqqqJEmstc05WIQqAADQZf7KPs+nojRNDzACODiPqrUTQhUAAOiyyUtTaZoe5kCs\nUwUAAFaLj1nNsOUfj1pR3de6BldbaIUwJqqjI5io3m1MVO8wJqp32GEnqh/Y+3vHm7BCenPiedjK\ntzSXrRran4nqAABg1fmZ5s1b0/hF0kcpiqLX67X6typbhCoAALCKqqpyzjnnjDGteOSv7xtsGdXf\nY/gPHcHwX7cx/NdhDP912CIP/00DE9UBAAAiIFQBAABEQKgCAACIgFAFAAAQAaEKAAAgAkIVAABA\nBIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQARH5n0CAABg\nBfzDvE9g+qhUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVYvrXauXEr2U6F07\n8qWrpm654dotzZ43XP30qqm73dgaaHG7no46NKK4Y3Ur0a1Ed+zwDp8a3XX147uu7vypae8kbB76\nNLt9auqWn2y1W0YdFzFdNHo80eOJ/n5ryKsfOj2e6KLZ1dhs+a6tN/+u3bVJs89gS9g2bAVgVpYj\nVCVJMu9TmLUbTtdync10NtO1vJ+KWi/dLOvc82ZPJ1N9tdDNclfSupZL0k0nSVeNbpb66nWdTPXm\n6UZLoZOp3uxJ0kmjk2n9B1Ny1+lOrvVM65nu5P3w5Pm8tV32Wz7raS3Veqbtsg5Md50+Nbu23XaS\ntJZqLdW9RpI+Ndou9fnrWkv1o9P1nrdLrWdaS4ccF5FdNPqo1LeuS9LXTw/p8LWeJH1U7toktHzo\n9Hau5zM9n+ntXB+6epOHU71R6KOy7jzY8qHTRdPfBAtm5X6YrZglCFXOufC3f2CtDU+bL7UeL7Vr\nVpLOWZ2z0k4qCk6m/ZeCs1anjE6murnzKf1mT2ezfoebpU6mOrWhi05vVXXL2UynjM5aSbrhdM7q\notPFncO1DoEofJVo3WrdSjt5KLjrtJbueho6r6V12GptErZat/qi29ltqbVUn9vQfZtD+gzdCWL6\nqNTDqb60UeeqVrHqu1YP7/7F5UNXbxI6SHrB6gVbP/Uh6QWrR4zeq3TV1T19y/NZP41hIVkS1QpY\nmlBlrZVkjPEPrLXGGN+h1+uFzs3HXdIMVaeMLjrdcHVFyuceX2oKlSdJ71qdTHXS7N5PuTOutxO2\n/J5boe2G6+8H09aqGIVUNEYIRk3bpT7r9Yf2Pn+9rmz96HSd0r7o6q18hzVzqNPG3h4eXe99O++n\nIu9rPb3R+JZ7xLQ3CcUqP97nnz6c6mu9ujTlN3/BtveMxeDmfQKYgSUIVT5F+WhljAmVqrIsx2+4\nIvzwn69C+Qjlq1zX8n7BqemtSidTXbssqR5AfCmpRwkDP5h4ykztpDGxZj3Jj+sNda/ReqZjVT20\nJ+lfL0s7A4LNwcQ7th58HLM3HFCYBTW+XHTR6PlsV4svXDWDlC9Q+b01PZ/pvUpqjB6GDZlEtdic\nlO3ZCUtuye79Z60lUUm64XTK6JTTVdPPQyFChTlYLyX9Fp+3zm7Wf795Wje2dM7qpKnLVGE/fls/\nIIi5WzPSzlszZhZUKG6tW33W012n7VL3ber+XJJuJfpxpvvzeqLVFwoS1dQ0q1MfjfiY+qjUR6Xe\nDt+6pu4Z8tNFo6tO71X6rtUjps5Pjxi9nddhy0+08ikq1KXe3v27EYCZW4JKVZOfsW6trapq8NXO\nTKiS6gx0w9URxz+9anTD6V2rN3t1e7NAVZesnCSdMvpqoa8W9ZwqP3EqFKj836c2dNXomtU529+q\nuQdMiQ80d10dksK88qGZyb/qB+z8NKmhwkV/vqffyheofpxJ0lpaT1RfS7XtdMcyUX0K/NDbVadH\njB5O66j0Py5L0pc26inkkt4o6j/eVddv8ZnsBVtf1hdqV37ilHbKUW/n7QIVU6mABbBMlarm5Kqh\n+alLocoHnTd7/ad+ntNN134pzE+/ltfVJj8Xqp+Kdn599QUqX76qS1ZWb/bqljCDqjW/CtGtW911\n+qy36+l2qW03vIDkLxK8ldSdh++z2SeTpM9f149O1y1+xrq/BnC7rMPW+tjxRBzWr2zq66fr4tOv\nbEo7U9E1bL5UqyU89TWqkJ98gcpXpHzMejjttzzP4BIwZ8nQks+iSZIkTVPnnH/gG8uyzLLMWuvL\nV769LMsx/6IkSd5agn9uny9HDS0aDX3JDwvusc8tndrY91aL7/V5n8B+NctUE/bfs/Ngn59s6XMb\nwzsvl1vvL9W3bvD3W/rSId4AX39qRa4P3d4tS6VqzRvrLivl0nL+Vz6gRAo/lJP/MMMD/5/5xJvl\nCFWSnHP+cr/mjHX/oNk4fidLF6owuaULVdiXZQ1VmMDqhKoVtPihyjnnA8aeEcILaxEM7b80oSoK\nQlWHEaq6jVDVYYSqDlvwUNVaWrwoijHRylqb57suBxnsv2QT1QEAAA7PJ6qiKKqqKopCY5e6dM75\nRDW+P6EKAACsFj9rKMsyX2oyxmRZpp3RvUG+PZSmRvUnVAEAgNUS7s7Sahm/jEBzsG/oQCGhCgAA\nQJJGLS0e5qe3WlqVqmVapwoAAODw9ntfFj/el+d5c267n1nVRKgCAABT95/+z743+Tst0JWhYWQw\nTVOfycJiTwGhCgAALKL/dNClUltprFle8suG73eHxpiyLJtrKIQVFpp7Y50qdATrVHUb61R1GOtU\ndVhznapfmOH7/He7400z95gdg7dg8dlraC4Kd3YZ359KFQAA6LLJS1PhVngHw9V/AABgtYxaUmHM\niupD57a3QhihCgAArBYfnvI89yN6YcH0ELOcc0mShIzll/oM9x32r4olFQAAAKqqSpKkeauZwSUS\nAh+e8jxv9g8LsgdMVEdHMFG925io3mFMVO+wBZmoPoZzzq+MMGbgrymMEg7tT6hCRxCquo1Q1WGE\nqg5b/FAVF3OqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQ\nqgAAACIgVAEAAERAqAIAAIiAUAUAABABoQoAACCCI/M+AQAA0H2PzPBYfzfDYzVRqQIAAIiAUAUA\nABABoQoAACACQhUAAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABEQKgCAACIgFCFjriVzPsMMFWP\n8wZ3Fm8tOoNQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAAACIgVAEAgJVmrY2yH0IV\nAABYXdbaPM+j7IpQBQAAVpRzLlaiknQk1o4AAACWhTGmLMu4+yRUAQCAlWOtdc5JolIFAABwcMYY\nY4wk51ysktXKhaqXuHVnd3FP5Y7jnsrdxVu7Cr5T7XuTJFmy/xqrFaqqav9vKQAAmIel+6nN1X8A\nAKDLkoZYS1INtVqVKgAAsGqyLAuP/TyqKSFUAQCALptqdaqJ4T8AAIAICFUAAAAREKq6xjk3szon\nZsMvTxfWqWu9xb5x8DGWlLWWb2FgSRGqOoifrB3T6/X8zMper5ckiXPOOReWb+n1es2eczlDxBLe\n1qVbngeDeBOXhXMu1toNTFTvJv9zNywXi2UXgnIoU/F53T3W2jRNKVN1Q6grhzW7W5/J4aXWYyw1\nKlUdVJalr1iECgc6gze0w6y1ZVn6dXR4o5ddGLWXZIzxD5rvLDXmTiJUdVNVVdbaqqqi34IbC4th\n3w6oqqooCkm9Xo83dKn5FOXfRGOMrzFHvMccFhOhqoPSNG0+5aN5RfBGLzs/Rd1XNdI05Q3tjPDO\nMmrfecyp6iB+E1o1SZK0kjSWkbXWX4ggqSxLQlVnJEmSZdmoXMUb3SWEqi4Llec5nwcOJ1yW0pzC\nHBqrquKN7gzeze5pTq4amp8IVV1CqOomX7ooy7J5wyN0FT+Au4R3s0v8bCrtflvDUmTUmLuHUNU1\nxhhfw+AaXQCYo1B3bBYgQ12KqmQnJbEWvAIAAFhlXP0HAAAQAaEKAAAgAkIVAABABIQqAACACAhV\nAAAAERCqAAAAIiBUAQAARECoAgAAiIBQBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAA\nACIgVAEAAERAqAIAAIiAUAUAABABoQoAACACQhUAAEAEhCoAAIAICFUAAAAREKoAAAAiIFQBAABE\nQKgCAACIgFAFAAAQAaEKAAAgAkIVAABABIQqAACACAhVAAAAERCqAAAAIiBUAQAARECoAgAAiIBQ\nBQAAEAGhCgAAIAJCFQAAQASEKgAAgAgIVQAAABEQqgAAACIgVAEAAERAqAIAAIjg/wPXZ7FhAZ+3\nTAAAAABJRU5ErkJggg==\n", "prompt_number": 6, "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visualize the model" ] }, { "cell_type": "code", "collapsed": false, "input": [ "% pylab inline\n", "import networkx as nx" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "pdf.graphVizTree('expressionTree.dot')\n", "G = nx.DiGraph(nx.read_dot('expressionTree.dot'))\n", "nx.draw_graphviz(G,'dot')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\ntgEo8yIG1wDmo6nJahkasp49e7LffvuNzqUsYbm5uWxQnz7MQleXbSnljHuffy4DbLCWFvupWjW6\n/GUZqHALuXv3LhszfDiroqPDuurqsgWf/spe8umNVFlLi3l260Z/VcuIp0+fstq1a7Ndu3axpKQk\n5tW3b8Ey0tFhiz4tu0UA662jwyprabGh/fuza9eu8Y5NComKimLGxsbsypUrTCQSsZiYGNa5XTtW\nVUuL/amuzpah4HqrwQBrp6/PalauzGZMncpevHjBhEIh8/LyYjY2NiwrK4v3U1FoIpGIRUVFMUdr\na/aDtjYbq6bGln9aNnMBZq2vz0yMjNiswED26tUr3nFlloCx/zjzg5LKysrCjh07cO3iRaS/fg1d\nAwP8VL8+fu/XD8bGxrzjEQCZmZlo3749evXqhYCAgC/T3759i61//407168j480b7ImOxriAAIwa\nNYqOl5YxsbGxGDRoEGJjY9G8edFzGt2/fx/b/v4b/z56hPXh4Rg5ejRat2uHbt26QV39/0+lLxQK\nMWjQILx48QL79u2DllbxXRuJuN25cwfbt27Fi8ePkZudjco//IC2HTrAxcUFampqvOPJNCpcIneE\nQiHc3NxgZGSE8PDw/zyPdfv27TFz5kx07NhRegHJVx05cgS///479u/fj1atWv3nbQUCAf7rayo/\nPx/9+vVDRkYGIiMj6WpdRGYp/V7KRP74+/sjPT0dISEhX71ohKmpKR4+fCidYKRcjh49it9//x2R\nkZFfLdvyUFNTw19//QUtLS307t0beXl5YkhJiPhR4RK5EhYWhn379mH37t3QKOX46eKocGXLyZMn\n0bt3b+zYsQO//fab2B5XXV0d27Ztg0gkQt++fZGfny+2xyZEXKhwidyIi4vD9OnTERMTgyrlPAcy\nFa7sSExMhJubG7Zu3SqRVfwaGhrYuXMnMjMzMXDgQAiFQrHPg5DvQYVL5MKNGzfQt29fREREoH79\n+uW+HxWubLh48SJcXV2xadMm2NvbS2w+mpqaiIyMRGpqKry9vSESiSQ2L0IqigqXyLxXr17BxcUF\nCxYsQIcOHSp0Xypc/pKSktClSxesXbsWzs7OEp+ftrY29u3bh/v372PYsGFUukRm0F7KRKZlZ2fD\nzs4OHTt2xOzZsyt8/9zcXOjr6yMrK4sOWeAgOTkZDg4OWLlyJdzd3b/pMb62l3JZMjIy4OTkhKZN\n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\n", "text": [ "" ] } ], "prompt_number": 63 }, { "cell_type": "code", "collapsed": false, "input": [ "import pydot\n", "g = pydot.graph_from_dot_file('expressionTree.dot')\n", "G2 = nx.from_pydot(g)\n", "nx.draw_graphviz(G2,'dot')\n", "\n", "\"\"\"\n", "print \"inspect networkx graph\"\n", "#iterate over networkx graph\n", "print G2.node\n", "for n in G2.nodes():\n", " print n, G2.out_degree(n), G2.successors(n)\n", "\n", "print \"inspect pydot graph\"\n", "#iterate over pydot graph\n", "for n in g.get_node_list():\n", " print n.get_label(), n.get_attributes(), n.get_layer()\n", "\"\"\"\n", "g.write_png('test.png')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 97, "text": [ "True" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\ns+zUSMQWeb22G6wRrAHsE7CHfD4rjETsitGjbevWrakuN221tLTY/QsW2MBo1CZlZlp1x7nU0nFu\nvQ12YzRqJ4XDdvfs2VriMoW2b99u4y65xArCYbsvI8N2gNXjLKH4X7DHPR47PRq1c0eMsPXr16e6\n3D6lwE2hWCxmf1m82EaPGGFZwaB5PR47KRy2y845x5YvX26NjY2pLlE6vPvuuzajpMROzsmxgM9n\nAZ/PBufk2KzSUi3z1o/U19fbc889Z5ecdZblhELm9XgsOxSyMUVFtuTJJ+3w4cOpLlE6fPjhh3bX\n7NlWmJtroYwMy/B6LT8ry26+/nrbsmXLCTkOQqsF9SNmpmd/PwBHThm1Vf+nc+qHIx3aSoErIiLi\nAo1SFhERcYECV0RExAUKXBERERcocEVERFygwBUREXGBAldERMQFClwREREXKHBFRERcoMAVERFx\ngQJXRETEBQpcERERFyhwRUREXKDAFRERcYECV0RExAUKXBERERcocEVERFygwBUREXGBAldERMQF\nClwREREXKHBFRERcoMAVERFxgQJXRETEBQpcERERFyhwRUREXKDAFRERcYECV0RExAUKXBERERco\ncEVERFygwBUREXGBAldERMQFClwREREXKHBFRERcoMAVERFxgQJXRETEBQpcERERFyhwRUREXKDA\nFRERcYECV0RExAUKXBERERcocEVERFygwBUREXHB/wB6OxWDsXUlagAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 97 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the image generated via graphviz above that has the styling attributes\n", "\n", "![](files/test.png)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "!cat expressionTree.dot" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "digraph model{\r\n", "\"model\" [ color=red, label=\"RooAddPdf\r\n", "model\"];\r\n", "\"g\" [ color=red, label=\"RooGaussian\r\n", "g\"];\r\n", "\"x\" [ color=blue, label=\"RooRealVar\r\n", "x\"];\r\n", "\"mu\" [ color=blue, label=\"RooRealVar\r\n", "mu\"];\r\n", "\"sigma\" [ color=blue, label=\"RooRealVar\r\n", "sigma\"];\r\n", "\"s\" [ color=blue, label=\"RooRealVar\r\n", "s\"];\r\n", "\"e\" [ color=red, label=\"RooExponential\r\n", "e\"];\r\n", "\"tau\" [ color=blue, label=\"RooRealVar\r\n", "tau\"];\r\n", "\"b\" [ color=blue, label=\"RooRealVar\r\n", "b\"];\r\n", "\"g\" -> \"x\";\r\n", "\"g\" -> \"mu\";\r\n", "\"g\" -> \"sigma\";\r\n", "\"e\" -> \"x\";\r\n", "\"e\" -> \"tau\";\r\n", "\"model\" -> \"g\";\r\n", "\"model\" -> \"e\";\r\n", "\"model\" -> \"s\";\r\n", "\"model\" -> \"b\";\r\n", "}\r\n" ] } ], "prompt_number": 77 }, { "cell_type": "code", "collapsed": false, "input": [ "print \"inspect networkx graph\"\n", "#iterate over networkx graph\n", "print G2.node\n", "for n in G2.nodes():\n", " print n, G2.out_degree(n), G2.successors(n)\n", "G2" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "inspect networkx graph\n", "{'tau': {'color': 'blue', 'label': '\"RooRealVar\\ntau\"'}, 'b': {'color': 'blue', 'label': '\"RooRealVar\\nb\"'}, 'e': {'color': 'red', 'label': '\"RooExponential\\ne\"'}, 'g': {'color': 'red', 'label': '\"RooGaussian\\ng\"'}, 'mu': {'color': 'blue', 'label': '\"RooRealVar\\nmu\"'}, 's': {'color': 'blue', 'label': '\"RooRealVar\\ns\"'}, 'x': {'color': 'blue', 'label': '\"RooRealVar\\nx\"'}, 'model': {'color': 'red', 'label': '\"RooAddPdf\\nmodel\"'}, 'sigma': {'color': 'blue', 'label': '\"RooRealVar\\nsigma\"'}}\n", "tau 0 []\n", "b 0 []\n", "e 2 ['tau', 'x']\n", "g 3 ['mu', 'x', 'sigma']\n", "mu 0 []\n", "s 0 []\n", "x 0 []\n", "model 4 ['s', 'b', 'e', 'g']\n", "sigma 0 []\n", "{}\n" ] } ], "prompt_number": 107 }, { "cell_type": "markdown", "metadata": {}, "source": [ "This post was created entirely in IPython notebook. Download the raw notebook [here](https://raw.github.com/cranmer/play/raw/master/iPythonROOT/BasicRooFitExample.ipynb), or see a static view on [nbviewer](http://nbviewer.ipython.org/url/github.com/cranmer/play/raw/master/iPythonROOT/BasicRooFitExample.ipynb)." ] } ], "metadata": {} } ] }