{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d9300f5f",
   "metadata": {},
   "source": [
    "# distrdf003_live_visualization\n",
    "Configure a Dask connection and visualize the filling of a 1D and 2D\n",
    "histograms distributedly.\n",
    "\n",
    "This tutorial showcases the process of setting up real-time data representation\n",
    "for distributed computations.\n",
    "By calling the LiveVisualize function, you can observe the canvas updating\n",
    "with the intermediate results of the histograms as the\n",
    "distributed computation progresses.\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:** Silia Taider  \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:10 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "11a7afdb",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:10:56.441409Z",
     "iopub.status.busy": "2026-05-19T20:10:56.441265Z",
     "iopub.status.idle": "2026-05-19T20:10:58.811053Z",
     "shell.execute_reply": "2026-05-19T20:10:58.807962Z"
    }
   },
   "outputs": [],
   "source": [
    "import ROOT\n",
    "from dask.distributed import Client, LocalCluster"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "010094f2",
   "metadata": {},
   "source": [
    "Import the live visualization function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "74f43742",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:10:58.826008Z",
     "iopub.status.busy": "2026-05-19T20:10:58.825695Z",
     "iopub.status.idle": "2026-05-19T20:10:58.959903Z",
     "shell.execute_reply": "2026-05-19T20:10:58.953560Z"
    }
   },
   "outputs": [],
   "source": [
    "LiveVisualize = ROOT.RDF.Distributed.LiveVisualize"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fb742322",
   "metadata": {},
   "source": [
    "Point RDataFrame calls to Dask RDataFrame object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a95ce491",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:10:58.983550Z",
     "iopub.status.busy": "2026-05-19T20:10:58.983382Z",
     "iopub.status.idle": "2026-05-19T20:10:59.089585Z",
     "shell.execute_reply": "2026-05-19T20:10:59.089064Z"
    }
   },
   "outputs": [],
   "source": [
    "RDataFrame = ROOT.RDF.Distributed.Dask.RDataFrame"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8fc9cafc",
   "metadata": {},
   "source": [
    "Function to create a Dask cluster and return the client"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5c3099d9",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:10:59.116376Z",
     "iopub.status.busy": "2026-05-19T20:10:59.116190Z",
     "iopub.status.idle": "2026-05-19T20:10:59.232006Z",
     "shell.execute_reply": "2026-05-19T20:10:59.230954Z"
    }
   },
   "outputs": [],
   "source": [
    "def create_connection():\n",
    "    cluster = LocalCluster(n_workers=4, threads_per_worker=1, processes=True, memory_limit=\"2GiB\")\n",
    "    client = Client(cluster)\n",
    "    return client"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2596ae44",
   "metadata": {},
   "source": [
    "Function to fit a Gaussian function to the plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "906af3f5",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:10:59.240219Z",
     "iopub.status.busy": "2026-05-19T20:10:59.240064Z",
     "iopub.status.idle": "2026-05-19T20:11:10.707827Z",
     "shell.execute_reply": "2026-05-19T20:11:10.682154Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/py-venv/ROOT-CI/lib64/python3.12/site-packages/distributed/node.py:188: UserWarning: Port 8787 is already in use.\n",
      "Perhaps you already have a cluster running?\n",
      "Hosting the HTTP server on port 35171 instead\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779221470649\" style=\"width: 1600px; height: 400px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779221470649() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(57996,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779221470649', 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_1779221470649();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def fit_gaus(plot):\n",
    "    plot.Fit(\"gaus\", \"Q\")\n",
    "\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    # Setup connection to a Dask cluster\n",
    "    connection = create_connection()\n",
    "\n",
    "    # Create an RDataFrame that will use Dask as a backend for computations\n",
    "    num_entries = 100000000\n",
    "    d = RDataFrame(num_entries, executor=connection, npartitions=30)\n",
    "\n",
    "    # Define a gaussean distribution with a variable mean\n",
    "    dd = d.Define(\"x\", f\"gRandom->Gaus(10*rdfentry_/{num_entries}, 2)\").Define(\n",
    "        \"y\", f\"gRandom->Gaus(10*rdfentry_/{num_entries}, 3)\"\n",
    "    )\n",
    "    # Create a 1D and a 2D histogram using the defined columns\n",
    "    h_normal_1d = dd.Histo1D((\"normal_1d\", \"1D Histogram of a Normal Distribution\", 100, -10, 20), \"x\")\n",
    "\n",
    "    h_normal_2d = dd.Histo2D(\n",
    "        (\"normal_2d\", \"2D Histogram of a Normal Distribution\", 100, -15, 25, 100, -15, 25), \"x\", \"y\"\n",
    "    )\n",
    "\n",
    "    # Apply LiveVisualize to the histograms.\n",
    "    # The `fit_gaus` function will be applied to the accumulating partial result\n",
    "    # of the 1D histogram. The 2D histogram will not be further modified, just drawn.\n",
    "    # Find more details about usage of LiveVisualize in the RDataFrame docs.\n",
    "    LiveVisualize({h_normal_1d: fit_gaus, h_normal_2d: None})\n",
    "\n",
    "    # Plot the histograms side by side on a canvas\n",
    "    c = ROOT.TCanvas(\"distrdf003\", \"distrdf003\", 1600, 400)\n",
    "    c.Divide(2, 1)\n",
    "    c.cd(1)\n",
    "    h_normal_1d.Draw()\n",
    "    c.cd(2)\n",
    "    h_normal_2d.Draw()\n",
    "\n",
    "    c.Update()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ddde52a",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4d2e91b9",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:11:10.721413Z",
     "iopub.status.busy": "2026-05-19T20:11:10.721245Z",
     "iopub.status.idle": "2026-05-19T20:11:10.855383Z",
     "shell.execute_reply": "2026-05-19T20:11:10.854849Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779221470852\" style=\"width: 1600px; height: 400px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779221470852() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(57996,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779221470852', 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_1779221470852();\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
}
