{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "927eef74",
   "metadata": {},
   "source": [
    "# rf212_plottingInRanges_blinding\n",
    "Plot a PDF in disjunct ranges, and get normalisation right.\n",
    "\n",
    "Usually, when comparing a fit to data, one should first plot the data, and then the PDF.\n",
    "In this case, the PDF is automatically normalised to match the number of data events in the plot.\n",
    "However, when plotting only a sub-range, when e.g. a signal region has to be blinded,\n",
    "one has to exclude the blinded region from the computation of the normalisation.\n",
    "\n",
    "In this tutorial, we show how to explicitly choose the normalisation when plotting using `NormRange()`.\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:** Harshal Shende, Stephan Hageboeck (C++ version)  \n",
    "<i><small>This notebook tutorial was automatically generated with <a href= \"https://github.com/root-project/root/blob/master/documentation/doxygen/converttonotebook.py\">ROOTBOOK-izer</a> from the macro found in the ROOT repository  on Tuesday, May 19, 2026 at 08:30 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "038e4593",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:24.197044Z",
     "iopub.status.busy": "2026-05-19T20:30:24.196925Z",
     "iopub.status.idle": "2026-05-19T20:30:25.192174Z",
     "shell.execute_reply": "2026-05-19T20:30:25.191540Z"
    }
   },
   "outputs": [],
   "source": [
    "import ROOT"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09691ade",
   "metadata": {},
   "source": [
    "Make a fit model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "351b5c87",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.193912Z",
     "iopub.status.busy": "2026-05-19T20:30:25.193773Z",
     "iopub.status.idle": "2026-05-19T20:30:25.374245Z",
     "shell.execute_reply": "2026-05-19T20:30:25.373642Z"
    }
   },
   "outputs": [],
   "source": [
    "x = ROOT.RooRealVar(\"x\", \"The observable\", 1, 30)\n",
    "tau = ROOT.RooRealVar(\"tau\", \"The exponent\", -0.1337, -10.0, -0.1)\n",
    "expo = ROOT.RooExponential(\"expo\", \"A falling exponential function\", x, tau)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7606980",
   "metadata": {},
   "source": [
    "Define the sidebands (e.g. background regions)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a3b2f622",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.375977Z",
     "iopub.status.busy": "2026-05-19T20:30:25.375853Z",
     "iopub.status.idle": "2026-05-19T20:30:25.485212Z",
     "shell.execute_reply": "2026-05-19T20:30:25.484643Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'full' created with bounds [1,30]\n",
      "[#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'left' created with bounds [1,10]\n",
      "[#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'right' created with bounds [20,30]\n"
     ]
    }
   ],
   "source": [
    "x.setRange(\"full\", 1, 30)\n",
    "x.setRange(\"left\", 1, 10)\n",
    "x.setRange(\"right\", 20, 30)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3fd7e58b",
   "metadata": {},
   "source": [
    "Generate toy data, and cut out the blinded region."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7df96a42",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.496047Z",
     "iopub.status.busy": "2026-05-19T20:30:25.495919Z",
     "iopub.status.idle": "2026-05-19T20:30:25.669469Z",
     "shell.execute_reply": "2026-05-19T20:30:25.668858Z"
    }
   },
   "outputs": [],
   "source": [
    "data = expo.generate(x, 1000)\n",
    "blindedData = data.reduce(CutRange=\"left,right\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "83614615",
   "metadata": {},
   "source": [
    "Kick tau a bit, and run an unbinned fit where the blinded data are missing.\n",
    "----------------------------------------------------------------------------------------------------------\n",
    "The fit should be done only in the unblinded regions, otherwise it would try\n",
    "to make the model adapt to the empty bins in the blinded region."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d8526409",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.690283Z",
     "iopub.status.busy": "2026-05-19T20:30:25.690141Z",
     "iopub.status.idle": "2026-05-19T20:30:25.877130Z",
     "shell.execute_reply": "2026-05-19T20:30:25.876538Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'fit_nll_expo_expoData_left' created with bounds [1,10]\n",
      "[#1] INFO:Eval -- RooRealVar::setRange(x) new range named 'fit_nll_expo_expoData_right' created with bounds [20,30]\n",
      "[#1] INFO:Fitting -- RooAbsPdf::fitTo(expo_over_expo_Int[x|left,right]) fixing normalization set for coefficient determination to observables in data\n",
      "[#1] INFO:Fitting -- using generic CPU library compiled with no vectorizations\n",
      "[#1] INFO:Fitting -- Creation of NLL object took 834.593 μs\n",
      "[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_expo_over_expo_Int[x|left,right]_expoData) Summation contains a RooNLLVar, using its error level\n",
      "[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<cppyy.gbl.RooFitResult object at 0x(nil)>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tau.setVal(-2.0)\n",
    "expo.fitTo(blindedData, Range=\"left,right\", PrintLevel=-1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8ad6410e",
   "metadata": {},
   "source": [
    "Clear the \"fitrange\" attribute of the PDF. Otherwise, the fitrange would be\n",
    "automatically taken as the NormRange() for plotting. We want to avoid this,\n",
    "because the point of this tutorial is to show what can go wrong when the\n",
    "NormRange() is not specified."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "034624f5",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.878850Z",
     "iopub.status.busy": "2026-05-19T20:30:25.878726Z",
     "iopub.status.idle": "2026-05-19T20:30:25.986119Z",
     "shell.execute_reply": "2026-05-19T20:30:25.985515Z"
    }
   },
   "outputs": [],
   "source": [
    "expo.removeStringAttribute(\"fitrange\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94977308",
   "metadata": {},
   "source": [
    "Here we will plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b3a18e7a",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:25.987798Z",
     "iopub.status.busy": "2026-05-19T20:30:25.987674Z",
     "iopub.status.idle": "2026-05-19T20:30:26.127369Z",
     "shell.execute_reply": "2026-05-19T20:30:26.126782Z"
    }
   },
   "outputs": [],
   "source": [
    "canvas = ROOT.TCanvas(\"canvas\", \"canvas\", 800, 600)\n",
    "canvas.Divide(2, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67a97d73",
   "metadata": {},
   "source": [
    "Wrong:\n",
    "----------------------------------------------------------------------------------------------------------\n",
    "Plotting each slice on its own normalises the PDF over its plotting range. For the full curve, that means\n",
    "that the blinded region where data is missing is included in the normalisation calculation. The PDF therefore\n",
    "comes out too low, and doesn't match up with the slices in the side bands, which are normalised to \"their\" data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "312038a8",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:26.129029Z",
     "iopub.status.busy": "2026-05-19T20:30:26.128907Z",
     "iopub.status.idle": "2026-05-19T20:30:26.259054Z",
     "shell.execute_reply": "2026-05-19T20:30:26.258431Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Now plotting with unique normalisation for each slice.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(\"Now plotting with unique normalisation for each slice.\\n\")\n",
    "canvas.cd(1)\n",
    "plotFrame = x.frame(Title=\"Wrong: Each slice normalised over its plotting range\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d79cb07b",
   "metadata": {},
   "source": [
    "Plot only the blinded data, and then plot the PDF over the full range as well as both sidebands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "692c2035",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:26.260393Z",
     "iopub.status.busy": "2026-05-19T20:30:26.260273Z",
     "iopub.status.idle": "2026-05-19T20:30:26.426223Z",
     "shell.execute_reply": "2026-05-19T20:30:26.425643Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'full', curve is normalized to data in given range\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'left', curve is normalized to data in given range\n",
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'right', curve is normalized to data in given range\n"
     ]
    }
   ],
   "source": [
    "blindedData.plotOn(plotFrame)\n",
    "expo.plotOn(plotFrame, LineColor=\"r\", Range=\"full\")\n",
    "expo.plotOn(plotFrame, LineColor=\"b\", Range=\"left\")\n",
    "expo.plotOn(plotFrame, LineColor=\"g\", Range=\"right\")\n",
    "\n",
    "plotFrame.Draw()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a1dde02",
   "metadata": {},
   "source": [
    "Right:\n",
    "----------------------------------------------------------------------------------------------------------\n",
    "Make the same plot, but normalise each piece with respect to the regions \"left\" AND \"right\". This requires setting\n",
    "a \"NormRange\", which tells RooFit over which range the PDF has to be integrated to normalise.\n",
    "This means that the normalisation of the blue and green curves is slightly different from the left plot,\n",
    "because they get a common scale factor."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "f09f6c58",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:26.427595Z",
     "iopub.status.busy": "2026-05-19T20:30:26.427474Z",
     "iopub.status.idle": "2026-05-19T20:30:26.530915Z",
     "shell.execute_reply": "2026-05-19T20:30:26.530321Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "Now plotting with correct norm ranges:\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(\"\\n\\nNow plotting with correct norm ranges:\\n\")\n",
    "canvas.cd(2)\n",
    "plotFrameWithNormRange = x.frame(Title=\"Right: All slices have common normalisation\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b78c8dba",
   "metadata": {},
   "source": [
    "Plot only the blinded data, and then plot the PDF over the full range as well as both sidebands"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "edc547a0",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:26.539841Z",
     "iopub.status.busy": "2026-05-19T20:30:26.539714Z",
     "iopub.status.idle": "2026-05-19T20:30:26.820346Z",
     "shell.execute_reply": "2026-05-19T20:30:26.819799Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'left'\n",
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) p.d.f. curve is normalized using explicit choice of ranges 'left,right'\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'right'\n",
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) p.d.f. curve is normalized using explicit choice of ranges 'left,right'\n",
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) only plotting range 'full'\n",
      "[#1] INFO:Plotting -- RooAbsPdf::plotOn(expo) p.d.f. curve is normalized using explicit choice of ranges 'left,right'\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Info in <TCanvas::Print>: png file rf212_plottingInRanges_blinding.png has been created\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779222626811\" style=\"width: 800px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779222626811() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(53610,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779222626811', obj, '');\n",
       "});\n",
       "\n",
       "      }\n",
       "      const servers = ['/static/', 'https://root.cern/js/7.11.0/', 'https://jsroot.gsi.de/7.11.0/'],\n",
       "            path = 'build/jsroot';\n",
       "      if (typeof JSROOT !== 'undefined')\n",
       "         execCode(JSROOT);\n",
       "      else if (typeof requirejs !== 'undefined') {\n",
       "         servers.forEach((s,i) => { servers[i] = s + path; });\n",
       "         requirejs.config({ paths: { 'jsroot' : servers } })(['jsroot'],  execCode);\n",
       "      } else {\n",
       "         const config = document.getElementById('jupyter-config-data');\n",
       "         if (config)\n",
       "            servers[0] = (JSON.parse(config.innerHTML || '{}')?.baseUrl || '/') + 'static/';\n",
       "         else\n",
       "            servers.shift();\n",
       "         function loadJsroot() {\n",
       "            return !servers.length ? 0 : import(servers.shift() + path + '.js').catch(loadJsroot).then(() => execCode(JSROOT));\n",
       "         }\n",
       "         loadJsroot();\n",
       "      }\n",
       "   }\n",
       "   process_root_plot_1779222626811();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "blindedData.plotOn(plotFrameWithNormRange)\n",
    "expo.plotOn(plotFrameWithNormRange, LineColor=\"b\", Range=\"left\", NormRange=\"left,right\")\n",
    "expo.plotOn(plotFrameWithNormRange, LineColor=\"g\", Range=\"right\", NormRange=\"left,right\")\n",
    "expo.plotOn(plotFrameWithNormRange, LineColor=\"r\", Range=\"full\", NormRange=\"left,right\", LineStyle=10)\n",
    "\n",
    "plotFrameWithNormRange.Draw()\n",
    "\n",
    "canvas.Draw()\n",
    "\n",
    "canvas.SaveAs(\"rf212_plottingInRanges_blinding.png\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5d9f8c42",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e59fdcd6",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:30:26.821753Z",
     "iopub.status.busy": "2026-05-19T20:30:26.821623Z",
     "iopub.status.idle": "2026-05-19T20:30:26.945502Z",
     "shell.execute_reply": "2026-05-19T20:30:26.944945Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779222626936\" style=\"width: 800px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779222626936() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(53610,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779222626936', obj, '');\n",
       "});\n",
       "\n",
       "      }\n",
       "      const servers = ['/static/', 'https://root.cern/js/7.11.0/', 'https://jsroot.gsi.de/7.11.0/'],\n",
       "            path = 'build/jsroot';\n",
       "      if (typeof JSROOT !== 'undefined')\n",
       "         execCode(JSROOT);\n",
       "      else if (typeof requirejs !== 'undefined') {\n",
       "         servers.forEach((s,i) => { servers[i] = s + path; });\n",
       "         requirejs.config({ paths: { 'jsroot' : servers } })(['jsroot'],  execCode);\n",
       "      } else {\n",
       "         const config = document.getElementById('jupyter-config-data');\n",
       "         if (config)\n",
       "            servers[0] = (JSON.parse(config.innerHTML || '{}')?.baseUrl || '/') + 'static/';\n",
       "         else\n",
       "            servers.shift();\n",
       "         function loadJsroot() {\n",
       "            return !servers.length ? 0 : import(servers.shift() + path + '.js').catch(loadJsroot).then(() => execCode(JSROOT));\n",
       "         }\n",
       "         loadJsroot();\n",
       "      }\n",
       "   }\n",
       "   process_root_plot_1779222626936();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ROOT import gROOT \n",
    "gROOT.GetListOfCanvases().Draw()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
