Created
April 15, 2015 22:36
-
-
Save wiso/aef17eb67ee9e21c3354 to your computer and use it in GitHub Desktop.
chi2 problem root
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:df7234a0e683ce8cb49122683b52f787f9f33e94bdd3a6bc8189dc167e0e2aee" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 1 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import ROOT\n", | |
"from ROOT import RooFit\n", | |
"ROOT.gROOT.GetVersion()" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 2, | |
"text": [ | |
"'5.34/24'" | |
] | |
} | |
], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"ws = ROOT.RooWorkspace()\n", | |
"ws.factory('RooExponential::model(x[0,10], q[-0.05, -1, 1])')\n", | |
"\n", | |
"x = ws.var('x')\n", | |
"model = ws.pdf('model')\n", | |
"\n", | |
"ws.saveSnapshot(\"initial\", ws.allVars())" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 3, | |
"text": [ | |
"True" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"chi2s = []\n", | |
"chi2s_curve = []\n", | |
"\n", | |
"for itoy in xrange(500):\n", | |
" ws.loadSnapshot(\"initial\")\n", | |
" data = model.generateBinned(ROOT.RooArgSet(x), 1000)\n", | |
" frame = x.frame()\n", | |
" data.plotOn(frame, RooFit.Name(\"curve_data\"))\n", | |
" model.plotOn(frame, RooFit.Name(\"curve_model\"))\n", | |
" chi2s.append(frame.chiSquare() * x.getBins())\n", | |
" \n", | |
" function = model.asTF(ROOT.RooArgList(x))\n", | |
" curve_data = frame.findObject(\"curve_data\")\n", | |
" chi2s_curve.append(curve_data.Chisquare(function))\n", | |
" \n", | |
"print np.mean(chi2s)\n", | |
"print np.mean(chi2s_curve)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"76.9831986271\n", | |
"878.671902437\n" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"plt.hist(chi2s);" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\nQ8JBX+SqAAAAAElFTkSuQmCC\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x2e66b50>" | |
] | |
} | |
], | |
"prompt_number": 5 | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment