Instantly share code, notes, and snippets.
Created
April 28, 2016 14:47
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save wiso/d84a71b8cb927ae1a3bfbda4f9177113 to your computer and use it in GitHub Desktop.
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
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import ROOT\n", | |
"from scipy import stats\n", | |
"import numpy as np\n", | |
"from IPython.display import SVG\n", | |
"import re\n", | |
"from matplotlib import pylab as plt" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Define three categories with different fraction of signal and background" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"ksigs = ksig1, ksig2, ksig3 = 0.7, 0.2, 0.1 # signal partitioning in 3 categories\n", | |
"kbkgs = kbkg1, kbkg2, kbkg3 = 0.3, 0.3, 0.4 # background partitioning in 3 categories" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<ROOT.RooRealVar object (\"kbkg3\") at 0x62dea30>" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"signal_xsec_inc = 20 # inclusive signal xsection\n", | |
"bkg_xsec_inc = 4000 # inclusive bkg xsection\n", | |
"lumi = 3 # luminosity\n", | |
"\n", | |
"# load constants into ws\n", | |
"ws = ROOT.RooWorkspace('ws')\n", | |
"ws.factory('M[750, 300, 3400]')\n", | |
"ws.var(\"M\").setVal(750)\n", | |
"ws.var(\"M\").setConstant(True)\n", | |
"mgg = ws.factory('mgg[200, 3500]')\n", | |
"ws.factory(\"lumi[%f]\" % lumi)\n", | |
"ws.factory(\"signal_xsec[%f]\" % (signal_xsec_inc))\n", | |
"ws.factory(\"bkg_xsec[%f]\" % (bkg_xsec_inc))\n", | |
"ws.factory(\"ksig1[%f]\" % ksig1)\n", | |
"ws.factory(\"ksig2[%f]\" % ksig2)\n", | |
"ws.factory(\"ksig3[%f]\" % ksig3)\n", | |
"ws.factory(\"kbkg1[%f]\" % kbkg1)\n", | |
"ws.factory(\"kbkg2[%f]\" % kbkg2)\n", | |
"ws.factory(\"kbkg3[%f]\" % kbkg3)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## $s / \\sqrt{b}$ in the whole range" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"s/sqrt(b) inclusive\n", | |
"0.547722557505\n", | |
"s/sqrt(b) per categories\n", | |
"[ 0.7 0.2 0.08660254]\n" | |
] | |
} | |
], | |
"source": [ | |
"s = np.array([ksig1, ksig2, ksig3]) * signal_xsec_inc * lumi\n", | |
"b = np.array([kbkg1, kbkg2, kbkg3]) * bkg_xsec_inc * lumi\n", | |
"s_over_sqrtb = s / np.sqrt(b)\n", | |
"\n", | |
"print \"s/sqrt(b) inclusive\"\n", | |
"print np.sum(s) / np.sqrt(np.sum(b))\n", | |
"print \"s/sqrt(b) per categories\"\n", | |
"print s_over_sqrtb" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Create the model for one category (inclusive)\n", | |
"\n", | |
"$$\\text{Pois}(n_s+n_b|N_s+N_b)\\frac{N_s f_s + N_b f_b}{N_s + N_b}$$\n", | |
"\n", | |
"$$N_s = L\\sigma_s$$\n", | |
"$$N_b = L\\sigma_b$$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"bkg = ws.factory(\"RooChebychev:bkg(mgg, {a[-0.5, -10, 10], b[0.1, -10, 10]})\")\n", | |
"sig = ws.factory(\"RooGaussian:sig(mgg, M, sigma[50])\")\n", | |
"ws.factory(\"prod:Nsig(lumi, signal_xsec)\")\n", | |
"ws.factory(\"prod:Nbkg(lumi, bkg_xsec)\")\n", | |
"model = ws.factory(\"SUM:model(Nsig * sig, Nbkg * bkg)\")\n", | |
"ws.saveSnapshot('prefit', ws.allVars())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<svg height=\"\" viewBox=\"0.00 0.00 1085.00 242.00\" width=\"90%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", | |
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 238)\">\n", | |
"<title>model</title>\n", | |
"<polygon fill=\"white\" points=\"-4,4 -4,-238 1081,-238 1081,4 -4,4\" stroke=\"white\"/>\n", | |
"<!-- model -->\n", | |
"<g class=\"node\" id=\"node1\"><title>model</title>\n", | |
"<ellipse cx=\"645\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"645\" y=\"-210.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"645\" y=\"-195.8\">model</text>\n", | |
"</g>\n", | |
"<!-- sig -->\n", | |
"<g class=\"node\" id=\"node2\"><title>sig</title>\n", | |
"<ellipse cx=\"295\" cy=\"-117\" fill=\"none\" rx=\"62.3993\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"295\" y=\"-120.8\">RooGaussian</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"295\" y=\"-105.8\">sig</text>\n", | |
"</g>\n", | |
"<!-- model->sig -->\n", | |
"<g class=\"edge\" id=\"edge8\"><title>model->sig</title>\n", | |
"<path d=\"M595.225,-193.485C532.806,-177.791 425.753,-150.875 357.775,-133.784\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"358.591,-130.38 348.039,-131.336 356.884,-137.168 358.591,-130.38\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig -->\n", | |
"<g class=\"node\" id=\"node6\"><title>Nsig</title>\n", | |
"<ellipse cx=\"744\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"744\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"744\" y=\"-105.8\">Nsig</text>\n", | |
"</g>\n", | |
"<!-- model->Nsig -->\n", | |
"<g class=\"edge\" id=\"edge10\"><title>model->Nsig</title>\n", | |
"<path d=\"M671.011,-182.879C683.061,-172.168 697.53,-159.307 710.395,-147.871\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"713.014,-150.226 718.163,-140.967 708.363,-144.994 713.014,-150.226\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg -->\n", | |
"<g class=\"node\" id=\"node9\"><title>bkg</title>\n", | |
"<ellipse cx=\"508\" cy=\"-117\" fill=\"none\" rx=\"70.5656\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"508\" y=\"-120.8\">RooChebychev</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"508\" y=\"-105.8\">bkg</text>\n", | |
"</g>\n", | |
"<!-- model->bkg -->\n", | |
"<g class=\"edge\" id=\"edge7\"><title>model->bkg</title>\n", | |
"<path d=\"M612.185,-184.922C593.981,-173.228 571.111,-158.538 551.439,-145.903\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"553.247,-142.904 542.942,-140.444 549.464,-148.794 553.247,-142.904\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg -->\n", | |
"<g class=\"node\" id=\"node12\"><title>Nbkg</title>\n", | |
"<ellipse cx=\"881\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"881\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"881\" y=\"-105.8\">Nbkg</text>\n", | |
"</g>\n", | |
"<!-- model->Nbkg -->\n", | |
"<g class=\"edge\" id=\"edge9\"><title>model->Nbkg</title>\n", | |
"<path d=\"M688.837,-189.654C728.039,-175.036 785.607,-153.57 827.508,-137.946\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"828.851,-141.181 836.998,-134.407 826.406,-134.622 828.851,-141.181\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- mgg -->\n", | |
"<g class=\"node\" id=\"node3\"><title>mgg</title>\n", | |
"<ellipse cx=\"333\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"333\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"333\" y=\"-15.8\">mgg</text>\n", | |
"</g>\n", | |
"<!-- sig->mgg -->\n", | |
"<g class=\"edge\" id=\"edge5\"><title>sig->mgg</title>\n", | |
"<path d=\"M305.991,-90.5468C309.7,-81.957 313.908,-72.2129 317.88,-63.0159\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"321.151,-64.2691 321.902,-53.7009 314.724,-61.494 321.151,-64.2691\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- M -->\n", | |
"<g class=\"node\" id=\"node4\"><title>M</title>\n", | |
"<ellipse cx=\"59\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"59\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"59\" y=\"-15.8\">M</text>\n", | |
"</g>\n", | |
"<!-- sig->M -->\n", | |
"<g class=\"edge\" id=\"edge4\"><title>sig->M</title>\n", | |
"<path d=\"M248.546,-98.8225C215.026,-86.4111 168.698,-69.2225 128,-54 123.178,-52.1963 118.168,-50.3176 113.148,-48.432\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"114.121,-45.0588 103.529,-44.8153 111.657,-51.6109 114.121,-45.0588\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- sigma -->\n", | |
"<g class=\"node\" id=\"node5\"><title>sigma</title>\n", | |
"<ellipse cx=\"196\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"196\" y=\"-15.8\">sigma</text>\n", | |
"</g>\n", | |
"<!-- sig->sigma -->\n", | |
"<g class=\"edge\" id=\"edge6\"><title>sig->sigma</title>\n", | |
"<path d=\"M268.47,-92.4176C256.612,-81.8774 242.495,-69.3285 229.884,-58.1189\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"232.06,-55.3701 222.26,-51.3423 227.409,-60.6019 232.06,-55.3701\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- lumi -->\n", | |
"<g class=\"node\" id=\"node7\"><title>lumi</title>\n", | |
"<ellipse cx=\"881\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"881\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"881\" y=\"-15.8\">lumi</text>\n", | |
"</g>\n", | |
"<!-- Nsig->lumi -->\n", | |
"<g class=\"edge\" id=\"edge14\"><title>Nsig->lumi</title>\n", | |
"<path d=\"M776.815,-94.9218C795.433,-82.9627 818.931,-67.8691 838.897,-55.0444\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"840.979,-57.8669 847.501,-49.5175 837.196,-51.9772 840.979,-57.8669\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec -->\n", | |
"<g class=\"node\" id=\"node8\"><title>signal_xsec</title>\n", | |
"<ellipse cx=\"744\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"744\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"744\" y=\"-15.8\">signal_xsec</text>\n", | |
"</g>\n", | |
"<!-- Nsig->signal_xsec -->\n", | |
"<g class=\"edge\" id=\"edge13\"><title>Nsig->signal_xsec</title>\n", | |
"<path d=\"M744,-90.0731C744,-81.9993 744,-72.9428 744,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"747.5,-64.0457 744,-54.0457 740.5,-64.0458 747.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg->mgg -->\n", | |
"<g class=\"edge\" id=\"edge1\"><title>bkg->mgg</title>\n", | |
"<path d=\"M466.527,-95.1452C440.85,-82.2331 407.78,-65.6034 380.975,-52.1244\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"382.284,-48.865 371.777,-47.4993 379.139,-55.1189 382.284,-48.865\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- a -->\n", | |
"<g class=\"node\" id=\"node10\"><title>a</title>\n", | |
"<ellipse cx=\"607\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"607\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"607\" y=\"-15.8\">a</text>\n", | |
"</g>\n", | |
"<!-- bkg->a -->\n", | |
"<g class=\"edge\" id=\"edge3\"><title>bkg->a</title>\n", | |
"<path d=\"M535.052,-91.9536C546.81,-81.5023 560.711,-69.1454 573.145,-58.0932\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"575.516,-60.6687 580.665,-51.409 570.865,-55.4368 575.516,-60.6687\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- b -->\n", | |
"<g class=\"node\" id=\"node11\"><title>b</title>\n", | |
"<ellipse cx=\"470\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"470\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"470\" y=\"-15.8\">b</text>\n", | |
"</g>\n", | |
"<!-- bkg->b -->\n", | |
"<g class=\"edge\" id=\"edge2\"><title>bkg->b</title>\n", | |
"<path d=\"M496.804,-90.0731C493.1,-81.4939 488.916,-71.8051 484.974,-62.6774\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"488.162,-61.2316 480.985,-53.4385 481.736,-64.0067 488.162,-61.2316\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg->lumi -->\n", | |
"<g class=\"edge\" id=\"edge11\"><title>Nbkg->lumi</title>\n", | |
"<path d=\"M881,-90.0731C881,-81.9993 881,-72.9428 881,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"884.5,-64.0457 881,-54.0457 877.5,-64.0458 884.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec -->\n", | |
"<g class=\"node\" id=\"node13\"><title>bkg_xsec</title>\n", | |
"<ellipse cx=\"1018\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1018\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1018\" y=\"-15.8\">bkg_xsec</text>\n", | |
"</g>\n", | |
"<!-- Nbkg->bkg_xsec -->\n", | |
"<g class=\"edge\" id=\"edge12\"><title>Nbkg->bkg_xsec</title>\n", | |
"<path d=\"M913.815,-94.9218C932.433,-82.9627 955.931,-67.8691 975.897,-55.0444\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"977.979,-57.8669 984.501,-49.5175 974.196,-51.9772 977.979,-57.8669\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"</g>\n", | |
"</svg>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.SVG object>" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"model.graphVizTree(\"model.dot\")\n", | |
"!dot -Tsvg model.dot > model.svg; rm model.dot\n", | |
"s = SVG(\"model.svg\")\n", | |
"s.data = re.sub(r'width=\"[0-9]+pt\"', r'width=\"90%\"', s.data)\n", | |
"s.data = re.sub(r'height=\"[0-9]+pt\"', r'height=\"\"', s.data)\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Expected significances" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def compute_qvalue(ws, model, pois, data):\n", | |
" frame = mgg.frame()\n", | |
" data.plotOn(frame)\n", | |
" \n", | |
" old_values = {k: ws.var(k).getVal() for k in pois}\n", | |
" set_pois = ROOT.RooArgSet(*(ws.var(k) for k in pois))\n", | |
" # compute alternative qvalue\n", | |
" r_alt = model.fitTo(data, ROOT.RooFit.Save())\n", | |
" nll_alt = r_alt.minNll()\n", | |
"\n", | |
" model.plotOn(frame, ROOT.RooFit.LineColor(ROOT.kRed))\n", | |
" \n", | |
" for k, v in pois.iteritems():\n", | |
" ws.var(k).setVal(v)\n", | |
" ws.var(k).setConstant(True)\n", | |
" \n", | |
" r_null = model.fitTo(data, ROOT.RooFit.Save())\n", | |
" nll_zero = r_null.minNll()\n", | |
" \n", | |
" model.plotOn(frame, ROOT.RooFit.LineColor(ROOT.kBlue))\n", | |
" \n", | |
" for k, v in old_values.iteritems():\n", | |
" ws.var(k).setVal(v)\n", | |
" ws.var(k).setConstant(False) \n", | |
" \n", | |
" t = 2 * (nll_zero - nll_alt)\n", | |
" frame.Draw()\n", | |
" return t" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Inclusive Asimov dataset" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"12059.9172414\n" | |
] | |
} | |
], | |
"source": [ | |
"ws.loadSnapshot('prefit')\n", | |
"data_inclusive = model.generate(ROOT.RooArgSet(mgg), ROOT.RooFit.ExpectedData())\n", | |
"print data_inclusive.sumEntries()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Inclusive expected significance\n", | |
"\n", | |
"Null hypothesis: $\\sigma = 0$\n", | |
"\n", | |
"$$q = -2\\log \\frac{L(\\sigma=0)}{L(\\hat\\sigma)}\\quad \\text{with } \\hat\\sigma \\geq 0$$\n", | |
"$$f(q) = \\frac{1}{2}\\delta(q) + \\frac{1}{2}\\chi^2(q)$$\n", | |
"$$\\text{p-value} = \\int_{q_{obs}}^\\infty f(q) dq = \\frac{1}{2}\\int_{q_{obs}}^\\infty \\chi^2(q) dq$$\n", | |
"$$z = 1 - \\phi^{-1}(p)$$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1.93095194839\n" | |
] | |
} | |
], | |
"source": [ | |
"qvalue = compute_qvalue(ws, model, {'signal_xsec': 0}, data_inclusive)\n", | |
"pvalue = stats.chi2(1).sf(qvalue) / 2. # sf -> survival function\n", | |
"zvalue_inclusive = stats.norm().isf(pvalue) # inverse survival function\n", | |
"print zvalue_inclusive" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Per categories" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[2.4252775819727441, 0.70848868283284172, 0.30916495429276014]\n" | |
] | |
} | |
], | |
"source": [ | |
"zvalues_cat = []\n", | |
"for icat in range(1, 3 + 1):\n", | |
" ws.loadSnapshot('prefit')\n", | |
" ws.var(\"signal_xsec\").setVal(signal_xsec_inc * ksigs[icat - 1])\n", | |
" ws.var(\"bkg_xsec\").setVal(bkg_xsec_inc * kbkgs[icat - 1])\n", | |
" data_cat = model.generate(ROOT.RooArgSet(mgg), ROOT.RooFit.ExpectedData())\n", | |
" qvalue = compute_qvalue(ws, model, {'signal_xsec': 0}, data_cat)\n", | |
" pvalue = stats.chi2(1).sf(qvalue) / 2.\n", | |
" zvalue_cat = stats.norm(0, 1).isf(pvalue) \n", | |
" zvalues_cat += [zvalue_cat]\n", | |
"print zvalues_cat" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The first category alone has a better expected significance than the inclusive one" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Create model with categories\n", | |
"### Uncorrelated background and signal yield\n", | |
"\n", | |
"$$\\sigma_{s,1}, \\sigma_{s,2}, \\sigma_{s,3}$$\n", | |
"$$\\sigma_{b,1}, \\sigma_{b,2}, \\sigma_{b,3}$$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"cat = ws.factory(\"cat[cat1=1, cat2=2, cat3=3]\")\n", | |
"model_sim_uncorr = ws.factory(\"SIMCLONE:model_sim_uncorr(model, $SplitParam({signal_xsec, bkg_xsec}, cat))\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<svg height=\"\" viewBox=\"0.00 0.00 1794.00 332.00\" width=\"90%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", | |
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 328)\">\n", | |
"<title>model_sim_uncorr</title>\n", | |
"<polygon fill=\"white\" points=\"-4,4 -4,-328 1790,-328 1790,4 -4,4\" stroke=\"white\"/>\n", | |
"<!-- model_sim_uncorr -->\n", | |
"<g class=\"node\" id=\"node1\"><title>model_sim_uncorr</title>\n", | |
"<ellipse cx=\"1039\" cy=\"-297\" fill=\"none\" rx=\"84.2802\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1039\" y=\"-300.8\">RooSimultaneous</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1039\" y=\"-285.8\">model_sim_uncorr</text>\n", | |
"</g>\n", | |
"<!-- model_cat1 -->\n", | |
"<g class=\"node\" id=\"node2\"><title>model_cat1</title>\n", | |
"<ellipse cx=\"840\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"840\" y=\"-210.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"840\" y=\"-195.8\">model_cat1</text>\n", | |
"</g>\n", | |
"<!-- model_sim_uncorr->model_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge8\"><title>model_sim_uncorr->model_cat1</title>\n", | |
"<path d=\"M991.081,-274.81C960.543,-261.306 921.045,-243.839 890.094,-230.152\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"891.344,-226.878 880.782,-226.034 888.512,-233.28 891.344,-226.878\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2 -->\n", | |
"<g class=\"node\" id=\"node15\"><title>model_cat2</title>\n", | |
"<ellipse cx=\"973\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"973\" y=\"-210.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"973\" y=\"-195.8\">model_cat2</text>\n", | |
"</g>\n", | |
"<!-- model_sim_uncorr->model_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge9\"><title>model_sim_uncorr->model_cat2</title>\n", | |
"<path d=\"M1019.91,-270.547C1012.89,-261.188 1004.84,-250.458 997.419,-240.559\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1000.17,-238.387 991.365,-232.487 994.566,-242.587 1000.17,-238.387\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3 -->\n", | |
"<g class=\"node\" id=\"node20\"><title>model_cat3</title>\n", | |
"<ellipse cx=\"1106\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1106\" y=\"-210.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1106\" y=\"-195.8\">model_cat3</text>\n", | |
"</g>\n", | |
"<!-- model_sim_uncorr->model_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge10\"><title>model_sim_uncorr->model_cat3</title>\n", | |
"<path d=\"M1058.38,-270.547C1065.5,-261.188 1073.67,-250.458 1081.21,-240.559\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1084.08,-242.564 1087.36,-232.487 1078.51,-238.324 1084.08,-242.564\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- cat -->\n", | |
"<g class=\"node\" id=\"node25\"><title>cat</title>\n", | |
"<ellipse cx=\"1244\" cy=\"-207\" fill=\"none\" rx=\"62.3993\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1244\" y=\"-210.8\">RooCategory</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1244\" y=\"-195.8\">cat</text>\n", | |
"</g>\n", | |
"<!-- model_sim_uncorr->cat -->\n", | |
"<g class=\"edge\" id=\"edge7\"><title>model_sim_uncorr->cat</title>\n", | |
"<path d=\"M1087.84,-275.034C1118.97,-261.673 1159.28,-244.366 1191.15,-230.685\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1192.95,-233.725 1200.75,-226.564 1190.18,-227.292 1192.95,-233.725\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1 -->\n", | |
"<g class=\"node\" id=\"node3\"><title>Nsig_cat1</title>\n", | |
"<ellipse cx=\"322\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"322\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"322\" y=\"-105.8\">Nsig_cat1</text>\n", | |
"</g>\n", | |
"<!-- model_cat1->Nsig_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge13\"><title>model_cat1->Nsig_cat1</title>\n", | |
"<path d=\"M783.64,-202.493C697.454,-196.184 528.25,-180.06 389,-144 383.716,-142.632 378.281,-140.971 372.901,-139.159\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"373.916,-135.806 363.321,-135.764 371.577,-142.404 373.916,-135.806\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1 -->\n", | |
"<g class=\"node\" id=\"node6\"><title>Nbkg_cat1</title>\n", | |
"<ellipse cx=\"455\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"455\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"455\" y=\"-105.8\">Nbkg_cat1</text>\n", | |
"</g>\n", | |
"<!-- model_cat1->Nbkg_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge14\"><title>model_cat1->Nbkg_cat1</title>\n", | |
"<path d=\"M785.571,-198.402C721.686,-188.795 612.916,-170.277 522,-144 516.831,-142.506 511.502,-140.777 506.214,-138.936\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"507.377,-135.635 496.782,-135.525 504.996,-142.217 507.377,-135.635\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- sig -->\n", | |
"<g class=\"node\" id=\"node8\"><title>sig</title>\n", | |
"<ellipse cx=\"1392\" cy=\"-117\" fill=\"none\" rx=\"62.3993\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1392\" y=\"-120.8\">RooGaussian</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1392\" y=\"-105.8\">sig</text>\n", | |
"</g>\n", | |
"<!-- model_cat1->sig -->\n", | |
"<g class=\"edge\" id=\"edge12\"><title>model_cat1->sig</title>\n", | |
"<path d=\"M880.904,-188.138C889.398,-184.996 898.387,-182.073 907,-180 1059.46,-143.305 1102.87,-166.958 1258,-144 1280.57,-140.66 1305.11,-136.156 1326.95,-131.836\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1327.66,-135.263 1336.77,-129.868 1326.28,-128.399 1327.66,-135.263\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg -->\n", | |
"<g class=\"node\" id=\"node12\"><title>bkg</title>\n", | |
"<ellipse cx=\"1179\" cy=\"-117\" fill=\"none\" rx=\"70.5656\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1179\" y=\"-120.8\">RooChebychev</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1179\" y=\"-105.8\">bkg</text>\n", | |
"</g>\n", | |
"<!-- model_cat1->bkg -->\n", | |
"<g class=\"edge\" id=\"edge11\"><title>model_cat1->bkg</title>\n", | |
"<path d=\"M881.769,-188.427C890.037,-185.338 898.721,-182.361 907,-180 990.493,-156.194 1014.87,-165.462 1099,-144 1105.22,-142.413 1111.67,-140.604 1118.07,-138.696\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1119.54,-141.908 1128.07,-135.634 1117.49,-135.215 1119.54,-141.908\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cat1 -->\n", | |
"<g class=\"node\" id=\"node4\"><title>signal_xsec_cat1</title>\n", | |
"<ellipse cx=\"77\" cy=\"-27\" fill=\"none\" rx=\"77.112\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"77\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"77\" y=\"-15.8\">signal_xsec_cat1</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1->signal_xsec_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge16\"><title>Nsig_cat1->signal_xsec_cat1</title>\n", | |
"<path d=\"M277.632,-100.064C238.916,-86.1576 182.329,-65.8326 139.114,-50.3103\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"140.146,-46.9622 129.552,-46.8757 137.78,-53.5501 140.146,-46.9622\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- lumi -->\n", | |
"<g class=\"node\" id=\"node5\"><title>lumi</title>\n", | |
"<ellipse cx=\"559\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"559\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"559\" y=\"-15.8\">lumi</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1->lumi -->\n", | |
"<g class=\"edge\" id=\"edge15\"><title>Nsig_cat1->lumi</title>\n", | |
"<path d=\"M364.816,-99.1585C372.836,-96.0683 381.161,-92.9036 389,-90 434.081,-73.302 445.878,-70.5859 491,-54 495.578,-52.3171 500.322,-50.5507 505.076,-48.7642\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"506.685,-51.898 514.802,-45.0893 504.211,-45.3498 506.685,-51.898\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1->lumi -->\n", | |
"<g class=\"edge\" id=\"edge17\"><title>Nbkg_cat1->lumi</title>\n", | |
"<path d=\"M482.053,-93.1088C494.832,-82.2958 510.245,-69.2538 523.91,-57.6912\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"526.348,-60.2136 531.721,-51.0823 521.826,-54.8699 526.348,-60.2136\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat1 -->\n", | |
"<g class=\"node\" id=\"node7\"><title>bkg_xsec_cat1</title>\n", | |
"<ellipse cx=\"241\" cy=\"-27\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"241\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"241\" y=\"-15.8\">bkg_xsec_cat1</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1->bkg_xsec_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge18\"><title>Nbkg_cat1->bkg_xsec_cat1</title>\n", | |
"<path d=\"M412.976,-98.719C379.678,-85.0264 332.869,-65.7777 296.491,-50.8188\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"297.586,-47.4845 287.006,-46.9183 294.923,-53.9585 297.586,-47.4845\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- mgg -->\n", | |
"<g class=\"node\" id=\"node9\"><title>mgg</title>\n", | |
"<ellipse cx=\"1453\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1453\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1453\" y=\"-15.8\">mgg</text>\n", | |
"</g>\n", | |
"<!-- sig->mgg -->\n", | |
"<g class=\"edge\" id=\"edge5\"><title>sig->mgg</title>\n", | |
"<path d=\"M1409.32,-91.0181C1415.75,-81.743 1423.14,-71.0718 1430,-61.1787\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1433.03,-62.9523 1435.85,-52.7398 1427.28,-58.9644 1433.03,-62.9523\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- M -->\n", | |
"<g class=\"node\" id=\"node10\"><title>M</title>\n", | |
"<ellipse cx=\"1590\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1590\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1590\" y=\"-15.8\">M</text>\n", | |
"</g>\n", | |
"<!-- sig->M -->\n", | |
"<g class=\"edge\" id=\"edge4\"><title>sig->M</title>\n", | |
"<path d=\"M1434.48,-97.1218C1465.19,-83.4701 1506.83,-64.9663 1539.29,-50.5392\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1540.9,-53.6543 1548.61,-46.3945 1538.05,-47.2576 1540.9,-53.6543\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- sigma -->\n", | |
"<g class=\"node\" id=\"node11\"><title>sigma</title>\n", | |
"<ellipse cx=\"1727\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1727\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1727\" y=\"-15.8\">sigma</text>\n", | |
"</g>\n", | |
"<!-- sig->sigma -->\n", | |
"<g class=\"edge\" id=\"edge6\"><title>sig->sigma</title>\n", | |
"<path d=\"M1448.1,-105.161C1502.32,-94.1593 1586.54,-75.6905 1658,-54 1663.21,-52.4199 1668.59,-50.6478 1673.94,-48.7911\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1675.25,-52.0375 1683.5,-45.3808 1672.9,-45.4446 1675.25,-52.0375\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg->mgg -->\n", | |
"<g class=\"edge\" id=\"edge1\"><title>bkg->mgg</title>\n", | |
"<path d=\"M1234.57,-100.282C1275.99,-88.3028 1333.82,-71.0202 1384,-54 1389.08,-52.278 1394.34,-50.4237 1399.59,-48.5265\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1400.8,-51.8103 1408.99,-45.0843 1398.39,-45.2374 1400.8,-51.8103\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- a -->\n", | |
"<g class=\"node\" id=\"node13\"><title>a</title>\n", | |
"<ellipse cx=\"1179\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1179\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1179\" y=\"-15.8\">a</text>\n", | |
"</g>\n", | |
"<!-- bkg->a -->\n", | |
"<g class=\"edge\" id=\"edge3\"><title>bkg->a</title>\n", | |
"<path d=\"M1179,-90.0731C1179,-81.9993 1179,-72.9428 1179,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1182.5,-64.0457 1179,-54.0457 1175.5,-64.0458 1182.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- b -->\n", | |
"<g class=\"node\" id=\"node14\"><title>b</title>\n", | |
"<ellipse cx=\"1316\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1316\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1316\" y=\"-15.8\">b</text>\n", | |
"</g>\n", | |
"<!-- bkg->b -->\n", | |
"<g class=\"edge\" id=\"edge2\"><title>bkg->b</title>\n", | |
"<path d=\"M1213.93,-93.5662C1232.21,-81.8199 1254.74,-67.3492 1273.98,-54.9932\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1276.03,-57.8317 1282.56,-49.4824 1272.25,-51.9421 1276.03,-57.8317\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2->sig -->\n", | |
"<g class=\"edge\" id=\"edge20\"><title>model_cat2->sig</title>\n", | |
"<path d=\"M1014.37,-188.417C1022.75,-185.291 1031.58,-182.304 1040,-180 1134.72,-154.099 1161.34,-161.354 1258,-144 1280.15,-140.023 1304.3,-135.419 1325.93,-131.2\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1326.86,-134.586 1336,-129.229 1325.51,-127.716 1326.86,-134.586\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2->bkg -->\n", | |
"<g class=\"edge\" id=\"edge19\"><title>model_cat2->bkg</title>\n", | |
"<path d=\"M1014.69,-188.192C1046.07,-174.787 1089.38,-156.283 1123.66,-141.639\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1125.25,-144.766 1133.07,-137.619 1122.5,-138.329 1125.25,-144.766\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2 -->\n", | |
"<g class=\"node\" id=\"node16\"><title>Nsig_cat2</title>\n", | |
"<ellipse cx=\"588\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"588\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"588\" y=\"-105.8\">Nsig_cat2</text>\n", | |
"</g>\n", | |
"<!-- model_cat2->Nsig_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge21\"><title>model_cat2->Nsig_cat2</title>\n", | |
"<path d=\"M931.669,-188.275C923.286,-185.161 914.449,-182.214 906,-180 796.985,-151.43 764.015,-172.57 655,-144 649.72,-142.616 644.287,-140.946 638.909,-139.128\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"639.926,-135.775 629.331,-135.725 637.582,-142.371 639.926,-135.775\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2 -->\n", | |
"<g class=\"node\" id=\"node18\"><title>Nbkg_cat2</title>\n", | |
"<ellipse cx=\"721\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"721\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"721\" y=\"-105.8\">Nbkg_cat2</text>\n", | |
"</g>\n", | |
"<!-- model_cat2->Nbkg_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge22\"><title>model_cat2->Nbkg_cat2</title>\n", | |
"<path d=\"M930.221,-189.056C922.198,-185.976 913.862,-182.841 906,-180 862.865,-164.412 813.606,-147.969 776.768,-135.936\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"777.796,-132.59 767.204,-132.82 775.627,-139.246 777.796,-132.59\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2->lumi -->\n", | |
"<g class=\"edge\" id=\"edge23\"><title>Nsig_cat2->lumi</title>\n", | |
"<path d=\"M579.456,-90.0731C576.712,-81.7481 573.625,-72.3785 570.696,-63.4905\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"573.937,-62.1437 567.483,-53.7416 567.289,-64.3347 573.937,-62.1437\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cat2 -->\n", | |
"<g class=\"node\" id=\"node17\"><title>signal_xsec_cat2</title>\n", | |
"<ellipse cx=\"405\" cy=\"-27\" fill=\"none\" rx=\"77.112\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"405\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"405\" y=\"-15.8\">signal_xsec_cat2</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2->signal_xsec_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge24\"><title>Nsig_cat2->signal_xsec_cat2</title>\n", | |
"<path d=\"M548.742,-97.1218C522.302,-84.4076 487.11,-67.4847 458.166,-53.5661\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"459.536,-50.3412 449.007,-49.1617 456.502,-56.6498 459.536,-50.3412\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2->lumi -->\n", | |
"<g class=\"edge\" id=\"edge25\"><title>Nbkg_cat2->lumi</title>\n", | |
"<path d=\"M684.644,-96.2511C661.131,-83.4787 630.32,-66.7416 605.094,-53.0385\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"606.534,-49.8381 596.076,-48.1403 603.193,-55.9892 606.534,-49.8381\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat2 -->\n", | |
"<g class=\"node\" id=\"node19\"><title>bkg_xsec_cat2</title>\n", | |
"<ellipse cx=\"705\" cy=\"-27\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"705\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"705\" y=\"-15.8\">bkg_xsec_cat2</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2->bkg_xsec_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge26\"><title>Nbkg_cat2->bkg_xsec_cat2</title>\n", | |
"<path d=\"M716.286,-90.0731C714.802,-81.9105 713.135,-72.7436 711.547,-64.0112\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"714.968,-63.2583 709.736,-54.0457 708.081,-64.5105 714.968,-63.2583\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3->sig -->\n", | |
"<g class=\"edge\" id=\"edge28\"><title>model_cat3->sig</title>\n", | |
"<path d=\"M1148.02,-188.719C1155.93,-185.671 1164.18,-182.635 1172,-180 1224.44,-162.331 1285.03,-145.514 1329.33,-133.864\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1330.3,-137.228 1339.09,-131.311 1328.53,-130.455 1330.3,-137.228\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3->bkg -->\n", | |
"<g class=\"edge\" id=\"edge27\"><title>model_cat3->bkg</title>\n", | |
"<path d=\"M1126.33,-181.487C1134.19,-172.017 1143.3,-161.037 1151.71,-150.898\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1154.58,-152.924 1158.27,-142.993 1149.19,-148.455 1154.58,-152.924\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3 -->\n", | |
"<g class=\"node\" id=\"node21\"><title>Nsig_cat3</title>\n", | |
"<ellipse cx=\"869\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"869\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"869\" y=\"-105.8\">Nsig_cat3</text>\n", | |
"</g>\n", | |
"<!-- model_cat3->Nsig_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge29\"><title>model_cat3->Nsig_cat3</title>\n", | |
"<path d=\"M1062.8,-189.087C1054.89,-186.034 1046.71,-182.9 1039,-180 1000.33,-165.447 956.526,-149.484 923.067,-137.4\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"924.071,-134.041 913.476,-133.94 921.695,-140.625 924.071,-134.041\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3 -->\n", | |
"<g class=\"node\" id=\"node23\"><title>Nbkg_cat3</title>\n", | |
"<ellipse cx=\"1033\" cy=\"-117\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1033\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1033\" y=\"-105.8\">Nbkg_cat3</text>\n", | |
"</g>\n", | |
"<!-- model_cat3->Nbkg_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge30\"><title>model_cat3->Nbkg_cat3</title>\n", | |
"<path d=\"M1085.67,-181.487C1077.6,-171.761 1068.21,-160.442 1059.61,-150.079\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1062.3,-147.843 1053.23,-142.381 1056.92,-152.313 1062.3,-147.843\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3->lumi -->\n", | |
"<g class=\"edge\" id=\"edge31\"><title>Nsig_cat3->lumi</title>\n", | |
"<path d=\"M823.234,-100.726C811.483,-97.0145 798.822,-93.1977 787,-90 716.64,-70.9674 696.777,-75.0702 627,-54 622.06,-52.5083 616.966,-50.8311 611.893,-49.0655\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"612.803,-45.6736 602.209,-45.5867 610.437,-52.2614 612.803,-45.6736\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cat3 -->\n", | |
"<g class=\"node\" id=\"node22\"><title>signal_xsec_cat3</title>\n", | |
"<ellipse cx=\"869\" cy=\"-27\" fill=\"none\" rx=\"77.112\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"869\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"869\" y=\"-15.8\">signal_xsec_cat3</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3->signal_xsec_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge32\"><title>Nsig_cat3->signal_xsec_cat3</title>\n", | |
"<path d=\"M869,-90.0731C869,-81.9993 869,-72.9428 869,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"872.5,-64.0457 869,-54.0457 865.5,-64.0458 872.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3->lumi -->\n", | |
"<g class=\"edge\" id=\"edge33\"><title>Nbkg_cat3->lumi</title>\n", | |
"<path d=\"M985.462,-101.925C969.533,-97.6008 951.601,-93.1556 935,-90 799.604,-64.2632 760.845,-86.8645 627,-54 621.707,-52.7003 616.267,-51.1006 610.881,-49.3389\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"611.88,-45.9814 601.286,-46.0228 609.594,-52.5974 611.88,-45.9814\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat3 -->\n", | |
"<g class=\"node\" id=\"node24\"><title>bkg_xsec_cat3</title>\n", | |
"<ellipse cx=\"1033\" cy=\"-27\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1033\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1033\" y=\"-15.8\">bkg_xsec_cat3</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3->bkg_xsec_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge34\"><title>Nbkg_cat3->bkg_xsec_cat3</title>\n", | |
"<path d=\"M1033,-90.0731C1033,-81.9993 1033,-72.9428 1033,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1036.5,-64.0457 1033,-54.0457 1029.5,-64.0458 1036.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"</g>\n", | |
"</svg>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.SVG object>" | |
] | |
}, | |
"execution_count": 11, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"model_sim_uncorr.graphVizTree(\"model_sim_uncorr.dot\")\n", | |
"!dot -Tsvg model_sim_uncorr.dot > model_sim_uncorr.svg; rm model_sim_uncorr.dot\n", | |
"s = SVG(\"model_sim_uncorr.svg\")\n", | |
"s.data = re.sub(r'width=\"[0-9]+pt\"', r'width=\"90%\"', s.data)\n", | |
"s.data = re.sub(r'height=\"[0-9]+pt\"', r'height=\"\"', s.data)\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Correlate signal, uncorrelate background" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"$$\\sigma_{s,1} = \\sigma_s k_{s,1}\\qquad\\sigma_{s,2} = \\sigma_s k_{s,2}\\qquad\\sigma_{s,3} = \\sigma_s k_{s,3}$$\n", | |
"$$\\sigma_{b,1}, \\sigma_{b,2}, \\sigma_{b,3}$$\n", | |
"with $k_{s, 1}, k_{s, 2}, k_{s, 3}$ fixed" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"model_sim_corr = ws.factory(\"EDIT:model_sim_corr(model_sim_uncorr, signal_xsec_cat1=prod:signal_xsec_cor1(signal_xsec, ksig1), \\\n", | |
" signal_xsec_cat2=prod:signal_xsec_cor2(signal_xsec, ksig2), \\\n", | |
" signal_xsec_cat3=prod:signal_xsec_cor3(signal_xsec, ksig3))\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/svg+xml": [ | |
"<svg height=\"\" viewBox=\"0.00 0.00 1801.00 422.00\" width=\"90%\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", | |
"<g class=\"graph\" id=\"graph0\" transform=\"scale(1 1) rotate(0) translate(4 418)\">\n", | |
"<title>model_sim_corr</title>\n", | |
"<polygon fill=\"white\" points=\"-4,4 -4,-418 1797,-418 1797,4 -4,4\" stroke=\"white\"/>\n", | |
"<!-- model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node1\"><title>model_sim_corr</title>\n", | |
"<ellipse cx=\"771\" cy=\"-387\" fill=\"none\" rx=\"79.3553\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"771\" y=\"-390.8\">RooSimultaneous</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"771\" y=\"-375.8\">model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- cat -->\n", | |
"<g class=\"node\" id=\"node2\"><title>cat</title>\n", | |
"<ellipse cx=\"431\" cy=\"-297\" fill=\"none\" rx=\"62.3993\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"431\" y=\"-300.8\">RooCategory</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"431\" y=\"-285.8\">cat</text>\n", | |
"</g>\n", | |
"<!-- model_sim_corr->cat -->\n", | |
"<g class=\"edge\" id=\"edge22\"><title>model_sim_corr->cat</title>\n", | |
"<path d=\"M703.515,-372.715C648.971,-361.422 570.446,-343.902 503,-324 497.662,-322.425 492.144,-320.669 486.648,-318.835\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"487.416,-315.398 476.821,-315.469 485.147,-322.02 487.416,-315.398\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat1_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node3\"><title>model_cat1_model_sim_corr</title>\n", | |
"<ellipse cx=\"637\" cy=\"-297\" fill=\"none\" rx=\"125.237\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"637\" y=\"-300.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"637\" y=\"-285.8\">model_cat1_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_sim_corr->model_cat1_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge24\"><title>model_sim_corr->model_cat1_model_sim_corr</title>\n", | |
"<path d=\"M735.793,-362.879C719.813,-352.385 700.692,-339.828 683.547,-328.568\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"685.069,-325.381 674.789,-322.817 681.227,-331.232 685.069,-325.381\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node18\"><title>model_cat2_model_sim_corr</title>\n", | |
"<ellipse cx=\"905\" cy=\"-297\" fill=\"none\" rx=\"125.237\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"905\" y=\"-300.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"905\" y=\"-285.8\">model_cat2_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_sim_corr->model_cat2_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge23\"><title>model_sim_corr->model_cat2_model_sim_corr</title>\n", | |
"<path d=\"M806.207,-362.879C822.187,-352.385 841.308,-339.828 858.453,-328.568\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"860.773,-331.232 867.211,-322.817 856.931,-325.381 860.773,-331.232\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node24\"><title>model_cat3_model_sim_corr</title>\n", | |
"<ellipse cx=\"1173\" cy=\"-297\" fill=\"none\" rx=\"125.237\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1173\" y=\"-300.8\">RooAddPdf</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1173\" y=\"-285.8\">model_cat3_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_sim_corr->model_cat3_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge21\"><title>model_sim_corr->model_cat3_model_sim_corr</title>\n", | |
"<path d=\"M836.483,-371.665C901.957,-357.333 1003.34,-335.139 1077.72,-318.857\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1078.55,-322.258 1087.57,-316.701 1077.06,-315.42 1078.55,-322.258\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1 -->\n", | |
"<g class=\"node\" id=\"node4\"><title>Nbkg_cat1</title>\n", | |
"<ellipse cx=\"68\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"68\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"68\" y=\"-195.8\">Nbkg_cat1</text>\n", | |
"</g>\n", | |
"<!-- model_cat1_model_sim_corr->Nbkg_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge39\"><title>model_cat1_model_sim_corr->Nbkg_cat1</title>\n", | |
"<path d=\"M548.968,-277.826C533.364,-274.953 517.236,-272.208 502,-270 339.362,-246.435 293.766,-272.487 134,-234 128.762,-232.738 123.386,-231.148 118.074,-229.379\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"119.217,-226.071 108.622,-226.034 116.881,-232.67 119.217,-226.071\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- sig -->\n", | |
"<g class=\"node\" id=\"node7\"><title>sig</title>\n", | |
"<ellipse cx=\"1429\" cy=\"-207\" fill=\"none\" rx=\"62.3993\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1429\" y=\"-210.8\">RooGaussian</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1429\" y=\"-195.8\">sig</text>\n", | |
"</g>\n", | |
"<!-- model_cat1_model_sim_corr->sig -->\n", | |
"<g class=\"edge\" id=\"edge38\"><title>model_cat1_model_sim_corr->sig</title>\n", | |
"<path d=\"M723.598,-277.534C739.316,-274.657 755.605,-271.986 771,-270 1015.71,-238.437 1081.21,-272.076 1325,-234 1339.06,-231.804 1353.99,-228.602 1368.03,-225.189\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1369.21,-228.501 1378.06,-222.679 1367.51,-221.71 1369.21,-228.501\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg -->\n", | |
"<g class=\"node\" id=\"node11\"><title>bkg</title>\n", | |
"<ellipse cx=\"1246\" cy=\"-207\" fill=\"none\" rx=\"70.5656\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1246\" y=\"-210.8\">RooChebychev</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1246\" y=\"-195.8\">bkg</text>\n", | |
"</g>\n", | |
"<!-- model_cat1_model_sim_corr->bkg -->\n", | |
"<g class=\"edge\" id=\"edge37\"><title>model_cat1_model_sim_corr->bkg</title>\n", | |
"<path d=\"M724.364,-277.733C739.854,-274.87 755.867,-272.152 771,-270 945.527,-245.18 993.321,-269.464 1166,-234 1172.63,-232.638 1179.49,-230.917 1186.26,-229.011\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1187.5,-232.294 1196.1,-226.107 1185.52,-225.58 1187.5,-232.294\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node14\"><title>Nsig_cat1_model_sim_corr</title>\n", | |
"<ellipse cx=\"262\" cy=\"-207\" fill=\"none\" rx=\"118.192\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"262\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"262\" y=\"-195.8\">Nsig_cat1_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_cat1_model_sim_corr->Nsig_cat1_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge40\"><title>model_cat1_model_sim_corr->Nsig_cat1_model_sim_corr</title>\n", | |
"<path d=\"M554.705,-276.688C494.865,-262.646 413.888,-243.643 352.275,-229.185\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"352.707,-225.691 342.172,-226.814 351.108,-232.506 352.707,-225.691\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat1 -->\n", | |
"<g class=\"node\" id=\"node5\"><title>bkg_xsec_cat1</title>\n", | |
"<ellipse cx=\"68\" cy=\"-117\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"68\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"68\" y=\"-105.8\">bkg_xsec_cat1</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1->bkg_xsec_cat1 -->\n", | |
"<g class=\"edge\" id=\"edge14\"><title>Nbkg_cat1->bkg_xsec_cat1</title>\n", | |
"<path d=\"M68,-180.073C68,-171.999 68,-162.943 68,-154.296\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"71.5001,-154.046 68,-144.046 64.5001,-154.046 71.5001,-154.046\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- lumi -->\n", | |
"<g class=\"node\" id=\"node6\"><title>lumi</title>\n", | |
"<ellipse cx=\"566\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"566\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"566\" y=\"-105.8\">lumi</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat1->lumi -->\n", | |
"<g class=\"edge\" id=\"edge13\"><title>Nbkg_cat1->lumi</title>\n", | |
"<path d=\"M108.624,-187.975C116.889,-184.886 125.62,-182.025 134,-180 291.591,-141.926 339.13,-180.898 497,-144 502.67,-142.675 508.503,-141 514.263,-139.141\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"515.512,-142.413 523.844,-135.869 513.25,-135.789 515.512,-142.413\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- mgg -->\n", | |
"<g class=\"node\" id=\"node8\"><title>mgg</title>\n", | |
"<ellipse cx=\"1460\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1460\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1460\" y=\"-105.8\">mgg</text>\n", | |
"</g>\n", | |
"<!-- sig->mgg -->\n", | |
"<g class=\"edge\" id=\"edge5\"><title>sig->mgg</title>\n", | |
"<path d=\"M1438.13,-180.073C1441.1,-171.659 1444.44,-162.177 1447.6,-153.204\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1450.91,-154.336 1450.93,-143.742 1444.31,-152.011 1450.91,-154.336\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- M -->\n", | |
"<g class=\"node\" id=\"node9\"><title>M</title>\n", | |
"<ellipse cx=\"1597\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1597\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1597\" y=\"-105.8\">M</text>\n", | |
"</g>\n", | |
"<!-- sig->M -->\n", | |
"<g class=\"edge\" id=\"edge4\"><title>sig->M</title>\n", | |
"<path d=\"M1467.54,-185.811C1492.15,-172.92 1524.21,-156.126 1550.27,-142.477\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1551.98,-145.532 1559.22,-137.792 1548.73,-139.331 1551.98,-145.532\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- sigma -->\n", | |
"<g class=\"node\" id=\"node10\"><title>sigma</title>\n", | |
"<ellipse cx=\"1734\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1734\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1734\" y=\"-105.8\">sigma</text>\n", | |
"</g>\n", | |
"<!-- sig->sigma -->\n", | |
"<g class=\"edge\" id=\"edge6\"><title>sig->sigma</title>\n", | |
"<path d=\"M1483.35,-193.414C1531.48,-181.869 1603.45,-163.623 1665,-144 1670.11,-142.372 1675.39,-140.58 1680.65,-138.723\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1681.85,-142.014 1690.07,-135.329 1679.47,-135.428 1681.85,-142.014\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg->mgg -->\n", | |
"<g class=\"edge\" id=\"edge1\"><title>bkg->mgg</title>\n", | |
"<path d=\"M1292.7,-186.797C1326.54,-172.883 1372.32,-154.056 1407.44,-139.615\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1409.12,-142.706 1417.04,-135.666 1406.46,-136.232 1409.12,-142.706\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- a -->\n", | |
"<g class=\"node\" id=\"node12\"><title>a</title>\n", | |
"<ellipse cx=\"1186\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1186\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1186\" y=\"-105.8\">a</text>\n", | |
"</g>\n", | |
"<!-- bkg->a -->\n", | |
"<g class=\"edge\" id=\"edge3\"><title>bkg->a</title>\n", | |
"<path d=\"M1228.65,-180.547C1222.38,-171.36 1215.22,-160.852 1208.57,-151.106\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1211.43,-149.08 1202.9,-142.789 1205.64,-153.023 1211.43,-149.08\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- b -->\n", | |
"<g class=\"node\" id=\"node13\"><title>b</title>\n", | |
"<ellipse cx=\"1323\" cy=\"-117\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1323\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1323\" y=\"-105.8\">b</text>\n", | |
"</g>\n", | |
"<!-- bkg->b -->\n", | |
"<g class=\"edge\" id=\"edge2\"><title>bkg->b</title>\n", | |
"<path d=\"M1267.86,-181.018C1276.36,-171.3 1286.21,-160.049 1295.2,-149.767\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1297.93,-151.964 1301.88,-142.134 1292.66,-147.355 1297.93,-151.964\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1_model_sim_corr->lumi -->\n", | |
"<g class=\"edge\" id=\"edge19\"><title>Nsig_cat1_model_sim_corr->lumi</title>\n", | |
"<path d=\"M341.721,-187.124C387.49,-175.751 445.853,-160.336 497,-144 502.106,-142.369 507.389,-140.576 512.652,-138.717\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"513.846,-142.008 522.065,-135.322 511.47,-135.423 513.846,-142.008\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor1 -->\n", | |
"<g class=\"node\" id=\"node15\"><title>signal_xsec_cor1</title>\n", | |
"<ellipse cx=\"237\" cy=\"-117\" fill=\"none\" rx=\"77.1743\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-105.8\">signal_xsec_cor1</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat1_model_sim_corr->signal_xsec_cor1 -->\n", | |
"<g class=\"edge\" id=\"edge20\"><title>Nsig_cat1_model_sim_corr->signal_xsec_cor1</title>\n", | |
"<path d=\"M254.634,-180.073C252.29,-171.822 249.655,-162.544 247.15,-153.727\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"250.499,-152.709 244.399,-144.046 243.765,-154.622 250.499,-152.709\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec -->\n", | |
"<g class=\"node\" id=\"node16\"><title>signal_xsec</title>\n", | |
"<ellipse cx=\"392\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"392\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"392\" y=\"-15.8\">signal_xsec</text>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor1->signal_xsec -->\n", | |
"<g class=\"edge\" id=\"edge11\"><title>signal_xsec_cor1->signal_xsec</title>\n", | |
"<path d=\"M276.113,-93.7939C297.806,-81.4776 324.868,-66.1135 347.384,-53.3304\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"349.119,-56.3703 356.087,-48.3894 345.663,-50.283 349.119,-56.3703\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- ksig1 -->\n", | |
"<g class=\"node\" id=\"node17\"><title>ksig1</title>\n", | |
"<ellipse cx=\"237\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"237\" y=\"-15.8\">ksig1</text>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor1->ksig1 -->\n", | |
"<g class=\"edge\" id=\"edge12\"><title>signal_xsec_cor1->ksig1</title>\n", | |
"<path d=\"M237,-90.0731C237,-81.9993 237,-72.9428 237,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"240.5,-64.0457 237,-54.0457 233.5,-64.0458 240.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2_model_sim_corr->sig -->\n", | |
"<g class=\"edge\" id=\"edge34\"><title>model_cat2_model_sim_corr->sig</title>\n", | |
"<path d=\"M993.51,-277.965C1008.66,-275.126 1024.26,-272.355 1039,-270 1165.51,-249.787 1199.07,-257.578 1325,-234 1338.84,-231.409 1353.58,-228.079 1367.48,-224.674\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1368.57,-228.008 1377.43,-222.19 1366.88,-221.216 1368.57,-228.008\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat2_model_sim_corr->bkg -->\n", | |
"<g class=\"edge\" id=\"edge33\"><title>model_cat2_model_sim_corr->bkg</title>\n", | |
"<path d=\"M990.967,-277.421C1042.08,-265.918 1108.04,-250.272 1166,-234 1172.09,-232.29 1178.41,-230.415 1184.71,-228.478\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1186.05,-231.726 1194.55,-225.401 1183.96,-225.045 1186.05,-231.726\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2 -->\n", | |
"<g class=\"node\" id=\"node19\"><title>Nbkg_cat2</title>\n", | |
"<ellipse cx=\"712\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"712\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"712\" y=\"-195.8\">Nbkg_cat2</text>\n", | |
"</g>\n", | |
"<!-- model_cat2_model_sim_corr->Nbkg_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge35\"><title>model_cat2_model_sim_corr->Nbkg_cat2</title>\n", | |
"<path d=\"M853.28,-272.418C824.789,-259.427 789.608,-243.386 761.48,-230.561\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"762.782,-227.308 752.232,-226.344 759.878,-233.677 762.782,-227.308\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node21\"><title>Nsig_cat2_model_sim_corr</title>\n", | |
"<ellipse cx=\"518\" cy=\"-207\" fill=\"none\" rx=\"118.192\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"518\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"518\" y=\"-195.8\">Nsig_cat2_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_cat2_model_sim_corr->Nsig_cat2_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge36\"><title>model_cat2_model_sim_corr->Nsig_cat2_model_sim_corr</title>\n", | |
"<path d=\"M821.027,-276.905C758.672,-262.726 673.691,-243.403 609.589,-228.827\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"610.014,-225.334 599.487,-226.529 608.462,-232.16 610.014,-225.334\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2->lumi -->\n", | |
"<g class=\"edge\" id=\"edge15\"><title>Nbkg_cat2->lumi</title>\n", | |
"<path d=\"M677.769,-185.368C657.398,-173.089 631.353,-157.391 609.53,-144.237\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"611.147,-141.125 600.776,-138.961 607.534,-147.121 611.147,-141.125\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat2 -->\n", | |
"<g class=\"node\" id=\"node20\"><title>bkg_xsec_cat2</title>\n", | |
"<ellipse cx=\"712\" cy=\"-117\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"712\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"712\" y=\"-105.8\">bkg_xsec_cat2</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat2->bkg_xsec_cat2 -->\n", | |
"<g class=\"edge\" id=\"edge16\"><title>Nbkg_cat2->bkg_xsec_cat2</title>\n", | |
"<path d=\"M712,-180.073C712,-171.999 712,-162.943 712,-154.296\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"715.5,-154.046 712,-144.046 708.5,-154.046 715.5,-154.046\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2_model_sim_corr->lumi -->\n", | |
"<g class=\"edge\" id=\"edge29\"><title>Nsig_cat2_model_sim_corr->lumi</title>\n", | |
"<path d=\"M532.142,-180.073C536.871,-171.404 542.218,-161.601 547.242,-152.389\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"550.409,-153.893 552.124,-143.438 544.263,-150.541 550.409,-153.893\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor2 -->\n", | |
"<g class=\"node\" id=\"node22\"><title>signal_xsec_cor2</title>\n", | |
"<ellipse cx=\"411\" cy=\"-117\" fill=\"none\" rx=\"77.1743\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"411\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"411\" y=\"-105.8\">signal_xsec_cor2</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat2_model_sim_corr->signal_xsec_cor2 -->\n", | |
"<g class=\"edge\" id=\"edge30\"><title>Nsig_cat2_model_sim_corr->signal_xsec_cor2</title>\n", | |
"<path d=\"M487.624,-181.018C475.345,-170.919 461.052,-159.164 448.16,-148.562\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"450.291,-145.782 440.344,-142.134 445.845,-151.189 450.291,-145.782\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor2->signal_xsec -->\n", | |
"<g class=\"edge\" id=\"edge31\"><title>signal_xsec_cor2->signal_xsec</title>\n", | |
"<path d=\"M405.402,-90.0731C403.64,-81.9105 401.661,-72.7436 399.775,-64.0112\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"403.155,-63.0818 397.624,-54.0457 396.313,-64.5592 403.155,-63.0818\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- ksig2 -->\n", | |
"<g class=\"node\" id=\"node23\"><title>ksig2</title>\n", | |
"<ellipse cx=\"529\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"529\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"529\" y=\"-15.8\">ksig2</text>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor2->ksig2 -->\n", | |
"<g class=\"edge\" id=\"edge32\"><title>signal_xsec_cor2->ksig2</title>\n", | |
"<path d=\"M442.622,-92.4176C457.368,-81.4207 475.045,-68.2375 490.556,-56.6699\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"492.994,-59.2178 498.918,-50.4338 488.81,-53.6064 492.994,-59.2178\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3_model_sim_corr->sig -->\n", | |
"<g class=\"edge\" id=\"edge8\"><title>model_cat3_model_sim_corr->sig</title>\n", | |
"<path d=\"M1237.27,-273.907C1278.59,-259.703 1331.81,-241.409 1371.69,-227.7\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1372.95,-230.968 1381.27,-224.407 1370.67,-224.348 1372.95,-230.968\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- model_cat3_model_sim_corr->bkg -->\n", | |
"<g class=\"edge\" id=\"edge7\"><title>model_cat3_model_sim_corr->bkg</title>\n", | |
"<path d=\"M1194.51,-270.073C1202.13,-260.884 1210.81,-250.422 1218.84,-240.74\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1221.71,-242.766 1225.4,-232.835 1216.32,-238.297 1221.71,-242.766\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3 -->\n", | |
"<g class=\"node\" id=\"node25\"><title>Nbkg_cat3</title>\n", | |
"<ellipse cx=\"1100\" cy=\"-207\" fill=\"none\" rx=\"56.9149\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1100\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1100\" y=\"-195.8\">Nbkg_cat3</text>\n", | |
"</g>\n", | |
"<!-- model_cat3_model_sim_corr->Nbkg_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge9\"><title>model_cat3_model_sim_corr->Nbkg_cat3</title>\n", | |
"<path d=\"M1151.49,-270.073C1143.66,-260.632 1134.71,-249.847 1126.5,-239.945\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1129.18,-237.698 1120.1,-232.236 1123.8,-242.167 1129.18,-237.698\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3_model_sim_corr -->\n", | |
"<g class=\"node\" id=\"node27\"><title>Nsig_cat3_model_sim_corr</title>\n", | |
"<ellipse cx=\"906\" cy=\"-207\" fill=\"none\" rx=\"118.192\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"906\" y=\"-210.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"906\" y=\"-195.8\">Nsig_cat3_model_sim_corr</text>\n", | |
"</g>\n", | |
"<!-- model_cat3_model_sim_corr->Nsig_cat3_model_sim_corr -->\n", | |
"<g class=\"edge\" id=\"edge10\"><title>model_cat3_model_sim_corr->Nsig_cat3_model_sim_corr</title>\n", | |
"<path d=\"M1106.66,-274.134C1068.42,-261.531 1020.24,-245.652 980.678,-232.613\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"981.671,-229.255 971.078,-229.449 979.48,-235.903 981.671,-229.255\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3->lumi -->\n", | |
"<g class=\"edge\" id=\"edge17\"><title>Nbkg_cat3->lumi</title>\n", | |
"<path d=\"M1059.12,-188.056C1050.62,-184.92 1041.63,-182.02 1033,-180 859.638,-139.395 807.462,-184.175 634,-144 628.613,-142.752 623.081,-141.172 617.612,-139.409\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"618.472,-136.004 607.878,-136.07 616.201,-142.625 618.472,-136.004\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- bkg_xsec_cat3 -->\n", | |
"<g class=\"node\" id=\"node26\"><title>bkg_xsec_cat3</title>\n", | |
"<ellipse cx=\"1040\" cy=\"-117\" fill=\"none\" rx=\"68.3838\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1040\" y=\"-120.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"1040\" y=\"-105.8\">bkg_xsec_cat3</text>\n", | |
"</g>\n", | |
"<!-- Nbkg_cat3->bkg_xsec_cat3 -->\n", | |
"<g class=\"edge\" id=\"edge18\"><title>Nbkg_cat3->bkg_xsec_cat3</title>\n", | |
"<path d=\"M1082.97,-181.018C1076.7,-171.822 1069.49,-161.253 1062.79,-151.43\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"1065.6,-149.335 1057.08,-143.044 1059.82,-153.278 1065.6,-149.335\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3_model_sim_corr->lumi -->\n", | |
"<g class=\"edge\" id=\"edge25\"><title>Nsig_cat3_model_sim_corr->lumi</title>\n", | |
"<path d=\"M821.598,-188.124C755.296,-173.828 668.586,-154.496 634,-144 629.062,-142.501 623.97,-140.819 618.897,-139.051\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"619.809,-135.659 609.215,-135.568 617.44,-142.246 619.809,-135.659\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor3 -->\n", | |
"<g class=\"node\" id=\"node28\"><title>signal_xsec_cor3</title>\n", | |
"<ellipse cx=\"876\" cy=\"-117\" fill=\"none\" rx=\"77.1743\" ry=\"26.7407\" stroke=\"red\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"876\" y=\"-120.8\">RooProduct</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"876\" y=\"-105.8\">signal_xsec_cor3</text>\n", | |
"</g>\n", | |
"<!-- Nsig_cat3_model_sim_corr->signal_xsec_cor3 -->\n", | |
"<g class=\"edge\" id=\"edge26\"><title>Nsig_cat3_model_sim_corr->signal_xsec_cor3</title>\n", | |
"<path d=\"M897.161,-180.073C894.323,-171.748 891.129,-162.378 888.099,-153.49\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"891.315,-152.077 884.776,-143.742 884.69,-154.336 891.315,-152.077\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor3->signal_xsec -->\n", | |
"<g class=\"edge\" id=\"edge27\"><title>signal_xsec_cor3->signal_xsec</title>\n", | |
"<path d=\"M821.153,-97.9721C810.57,-94.9603 799.506,-92.1282 789,-90 645.266,-60.8846 603.628,-88.1241 461,-54 455.553,-52.6968 449.953,-51.0797 444.41,-49.294\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"445.137,-45.8439 434.543,-45.9291 442.878,-52.4693 445.137,-45.8439\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"<!-- ksig3 -->\n", | |
"<g class=\"node\" id=\"node29\"><title>ksig3</title>\n", | |
"<ellipse cx=\"876\" cy=\"-27\" fill=\"none\" rx=\"59.096\" ry=\"26.7407\" stroke=\"blue\"/>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"876\" y=\"-30.8\">RooRealVar</text>\n", | |
"<text font-family=\"Times,serif\" font-size=\"14.00\" text-anchor=\"middle\" x=\"876\" y=\"-15.8\">ksig3</text>\n", | |
"</g>\n", | |
"<!-- signal_xsec_cor3->ksig3 -->\n", | |
"<g class=\"edge\" id=\"edge28\"><title>signal_xsec_cor3->ksig3</title>\n", | |
"<path d=\"M876,-90.0731C876,-81.9993 876,-72.9428 876,-64.2961\" fill=\"none\" stroke=\"black\"/>\n", | |
"<polygon fill=\"black\" points=\"879.5,-64.0457 876,-54.0457 872.5,-64.0458 879.5,-64.0457\" stroke=\"black\"/>\n", | |
"</g>\n", | |
"</g>\n", | |
"</svg>" | |
], | |
"text/plain": [ | |
"<IPython.core.display.SVG object>" | |
] | |
}, | |
"execution_count": 13, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"model_sim_corr.graphVizTree(\"model_sim_corr.dot\")\n", | |
"!dot -Tsvg model_sim_corr.dot > model_sim_corr.svg; rm model_sim_corr.dot\n", | |
"s = SVG(\"model_sim_corr.svg\")\n", | |
"s.data = re.sub(r'width=\"[0-9]+pt\"', r'width=\"90%\"', s.data)\n", | |
"s.data = re.sub(r'height=\"[0-9]+pt\"', r'height=\"\"', s.data)\n", | |
"s" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Set prefit values" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"True" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ws.loadSnapshot('prefit')\n", | |
"# bkg xsection is uncorrelated for both\n", | |
"ws.var('bkg_xsec_cat1').setVal(ws.var('bkg_xsec').getVal() * kbkg1)\n", | |
"ws.var('bkg_xsec_cat2').setVal(ws.var('bkg_xsec').getVal() * kbkg2)\n", | |
"ws.var('bkg_xsec_cat3').setVal(ws.var('bkg_xsec').getVal() * kbkg3)\n", | |
"ws.saveSnapshot('prefit_sim_corr', ws.allVars())\n", | |
"\n", | |
"ws.var('signal_xsec_cat1').setVal(ws.function('signal_xsec_cor1').getVal())\n", | |
"ws.var('signal_xsec_cat2').setVal(ws.function('signal_xsec_cor2').getVal())\n", | |
"ws.var('signal_xsec_cat3').setVal(ws.function('signal_xsec_cor3').getVal())\n", | |
"\n", | |
"ws.saveSnapshot('prefit_sim_uncorr', ws.allVars())" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Generate data, from the correlated model, use them everywhere" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"12059.9172402\n" | |
] | |
} | |
], | |
"source": [ | |
"ws.loadSnapshot('prefit_sim_corr')\n", | |
"data_simul = model_sim_corr.generate(ROOT.RooArgSet(mgg, cat), ROOT.RooFit.ExpectedData())\n", | |
"print data_simul.sumEntries()\n", | |
"data_simul.table(cat).Print(\"v\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Expected significance with uncorrelated model\n", | |
"\n", | |
"Null hypothesis: $\\sigma_1 = \\sigma_2 = \\sigma_3 = 0$ (3 degrees of freedom)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"1.67394616802\n" | |
] | |
} | |
], | |
"source": [ | |
"ws.loadSnapshot('prefit_sim_uncorr')\n", | |
"qvalue = compute_qvalue(ws, model_sim_uncorr, {'signal_xsec_cat1': 0, 'signal_xsec_cat2': 0, 'signal_xsec_cat3':0}, data_simul)\n", | |
"pvalue = stats.chi2(3).sf(qvalue) / 2. # 3 degree of freedom\n", | |
"zvalue_uncor = stats.norm(0, 1).isf(pvalue) \n", | |
"print zvalue_uncor" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Is correct? How many degrees of freedom are there? I am using three, since the likelihood ratio is\n", | |
"\n", | |
"$$\\frac{L_1(\\sigma_{s,1}=0) L_2(\\sigma_{s,2}=0) L_3(\\sigma_{s,3}=0)}{L_1(\\hat\\sigma_{s,1}) L_2(\\hat\\sigma_{s,2}) L_3(\\hat\\sigma_{s,3})}$$\n", | |
"\n", | |
"but what if I define a model where I profile the fractions between categories:\n", | |
"\n", | |
"$$\\frac{L_1(\\sigma_S=0) L_2(\\sigma_S=0) L_3(\\sigma_S=0)}{\\max_{\\vec k_S, \\sigma_S}L_1(k_{S,1}\\sigma_S) L_2(k_{S,2}\\sigma_S) L_3(k_{S,3}\\sigma_S)}$$\n", | |
"\n", | |
"*how many degrees of freedom do I have?*" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Null hypothesis: $\\sigma_i = 0$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"[2.3567863960450954, 0.94975924760511654, 0.22558159309235346]\n" | |
] | |
} | |
], | |
"source": [ | |
"zvalues_uncor_cat = []\n", | |
"for poi in 'signal_xsec_cat1', 'signal_xsec_cat2', 'signal_xsec_cat3':\n", | |
" ws.loadSnapshot('prefit_sim_uncorr')\n", | |
" qvalue = compute_qvalue(ws, model_sim_uncorr, {poi: 0}, data_simul)\n", | |
" pvalue = stats.chi2(1).sf(qvalue) / 2. \n", | |
" zvalue_uncor_cat = stats.norm(0, 1).isf(pvalue) \n", | |
" zvalues_uncor_cat += [zvalue_uncor_cat]\n", | |
"print zvalues_uncor_cat " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Expected significance with correlated model\n", | |
"Null hypothesis $\\sigma=0$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"2.51273741769\n" | |
] | |
} | |
], | |
"source": [ | |
"ws.loadSnapshot('prefit_sim_corr')\n", | |
"data_simul_cor = model_sim_corr.generate(ROOT.RooArgSet(mgg, cat), ROOT.RooFit.ExpectedData())\n", | |
"qvalue = compute_qvalue(ws, model_sim_corr, {'signal_xsec': 0}, data_simul)\n", | |
"pvalue = stats.chi2(1).sf(qvalue) / 2.\n", | |
"zvalue_corr = stats.norm(0, 1).isf(pvalue) \n", | |
"print zvalue_corr" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Summary of significances" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"inclusive 1.93\n", | |
"each category separately 2.43 0.71 0.31\n", | |
"uncorrelated (bkg correlated) 1.67\n", | |
"uncorrelated (bkg correlated) each category 2.36 0.95 0.23\n", | |
"correlated 2.51\n" | |
] | |
} | |
], | |
"source": [ | |
"print \"inclusive {:.2f}\".format(zvalue_inclusive)\n", | |
"print \"each category separately {}\".format(' '.join('%.2f' % x for x in zvalues_cat))\n", | |
"print \"uncorrelated (bkg correlated) {:.2f}\".format(zvalue_uncor)\n", | |
"print \"uncorrelated (bkg correlated) each category {}\".format(' '.join('%.2f' % x for x in zvalues_uncor_cat))\n", | |
"print \"correlated {:.2f}\".format(zvalue_corr)" | |
] | |
} | |
], | |
"metadata": { | |
"hide_input": false, | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment