{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2c976926",
   "metadata": {},
   "source": [
    "# gr009_bent_err\n",
    "Graph with bent error bars. Inspired from work of Olivier Couet.\n",
    "\n",
    "See the [TGraphBentErrors documentation](https://root.cern/doc/master/classTGraphBentErrors.html)\n",
    "\n",
    "exl / exh: low and high (left/right) errors in x; similar for y\n",
    "e*d: delta, in axis units, to be added/subtracted (if >0 or <0) in x or y from\n",
    "the data point's position to use as end point of the corresponding error\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:** Alberto Ferro  \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:37 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "40e05875",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:53.098400Z",
     "iopub.status.busy": "2026-05-19T20:37:53.098255Z",
     "iopub.status.idle": "2026-05-19T20:37:54.210842Z",
     "shell.execute_reply": "2026-05-19T20:37:54.206680Z"
    }
   },
   "outputs": [],
   "source": [
    "import ROOT\n",
    "\n",
    "c1 = ROOT.TCanvas()\n",
    "n = 10\n",
    "x = ROOT.std.vector(\"double\")()  # The equivalent is also achieveable with numpy arrays\n",
    "for i in [-0.22, 0.05, 0.25, 0.35, 0.5, 0.61, 0.7, 0.85, 0.89, 0.95]:\n",
    "    x.push_back(i)\n",
    "y = ROOT.std.vector(\"double\")()\n",
    "for i in [1, 2.9, 5.6, 7.4, 9, 9.6, 8.7, 6.3, 4.5, 1]:\n",
    "    y.push_back(i)\n",
    "exl = ROOT.std.vector(\"double\")()\n",
    "for i in [0.05, 0.1, 0.07, 0.07, 0.04, 0.05, 0.06, 0.07, 0.08, 0.05]:\n",
    "    exl.push_back(i)\n",
    "eyl = ROOT.std.vector(\"double\")()\n",
    "for i in [0.8, 0.7, 0.6, 0.5, 0.4, 0.4, 0.5, 0.6, 0.7, 0.8]:\n",
    "    eyl.push_back(i)\n",
    "exh = ROOT.std.vector(\"double\")()\n",
    "for i in [0.02, 0.08, 0.05, 0.05, 0.03, 0.03, 0.04, 0.05, 0.06, 0.03]:\n",
    "    exh.push_back(i)\n",
    "eyh = ROOT.std.vector(\"double\")()\n",
    "for i in [0.6, 0.5, 0.4, 0.3, 0.2, 0.2, 0.3, 0.4, 0.5, 0.6]:\n",
    "    eyh.push_back(i)\n",
    "exld = ROOT.std.vector(\"double\")()\n",
    "for i in [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]:\n",
    "    exld.push_back(i)\n",
    "eyld = ROOT.std.vector(\"double\")()\n",
    "for i in [0.0, 0.0, 0.05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]:\n",
    "    eyld.push_back(i)\n",
    "exhd = ROOT.std.vector(\"double\")()\n",
    "for i in [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]:\n",
    "    exhd.push_back(i)\n",
    "eyhd = ROOT.std.vector(\"double\")()\n",
    "for i in [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.0]:\n",
    "    eyhd.push_back(i)\n",
    "\n",
    "gr = ROOT.TGraphBentErrors(\n",
    "    n,\n",
    "    x.data(),\n",
    "    y.data(),\n",
    "    exl.data(),\n",
    "    exh.data(),\n",
    "    eyl.data(),\n",
    "    eyh.data(),\n",
    "    exld.data(),\n",
    "    exhd.data(),\n",
    "    eyld.data(),\n",
    "    eyhd.data(),\n",
    ")\n",
    "\n",
    "gr.SetTitle(\"TGraphBentErrors Example\")\n",
    "gr.SetMarkerColor(4)\n",
    "gr.SetMarkerStyle(21)\n",
    "gr.Draw(\"ALP\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b43b774",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f235cb13",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:37:54.225581Z",
     "iopub.status.busy": "2026-05-19T20:37:54.225407Z",
     "iopub.status.idle": "2026-05-19T20:37:54.473559Z",
     "shell.execute_reply": "2026-05-19T20:37:54.473052Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779223074463\" style=\"width: 700px; height: 500px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779223074463() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(20924,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779223074463', 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_1779223074463();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%jsroot on\n",
    "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
}
