{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7e7b6a8c-747b-4169-906e-dad81bde5f61",
   "metadata": {},
   "outputs": [],
   "source": [
    "# start by importing root\n",
    "import ROOT"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "81568129-ec6f-4fa0-8825-860690970500",
   "metadata": {},
   "outputs": [],
   "source": [
    "def RooConvolution():\n",
    "   w = ROOT.RooWorkspace(\"w\")\n",
    "\n",
    "   w.factory(\"Landau::landau(t[-10,30],ml[5,-20,20],sl[1,0.1,10])\")\n",
    "   w.factory(\"Gaussian::gauss(t,mg[0],sg[2,0.1,10])\")\n",
    "   t = w.var(\"t\")\n",
    "   landau = w.pdf(\"landau\")\n",
    "   gauss = w.pdf(\"gauss\")\n",
    "\n",
    "   #  Construct convoluted pdf lxg(x) = landau(x) (*) gauss(x)\n",
    "   lxg = ROOT.RooFFTConvPdf (\"lxg\", \"landau (X) gauss\", t, landau, gauss)\n",
    "\n",
    "   data = lxg.generate(t, 20000)\n",
    "\n",
    "   tframe = t.frame()\n",
    "   data.plotOn(tframe)\n",
    "   lxg.plotOn(tframe)\n",
    "\n",
    "   # Let's plot\n",
    "   c1 = ROOT.TCanvas(\"c1\",\"\",1000,600)\n",
    "   tframe.Draw()\n",
    "   c1.Draw()\n",
    "   return c1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "dfa40c1a-9ac3-4ff1-aa0e-6a6e6de470e7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[#1] INFO:Caching -- Changing internal binning of variable 't' in FFT 'lxg' from 100 to 930 to improve the precision of the numerical FFT. This can be done manually by setting an additional binning named 'cache'.\n",
      "[#1] INFO:Eval -- RooRealVar::setRange(t) new range named 'refrange_fft_lxg' created with bounds [-10,30]\n",
      "[#1] INFO:Caching -- RooAbsCachedPdf::getCache(lxg) creating new cache 0x55cf801d8ac0 with pdf landau_CONV_gauss_CACHE_Obs[t]_NORM_t for nset (t) with code 0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1780676435350\" style=\"width: 1000px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "<script>\n",
       "   function process_root_plot_1780676435350() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(28238,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1780676435350', 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_1780676435350();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "c1 = RooConvolution()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "fd95cfaa-c3b2-496d-a5dc-e379ae9f216f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1780676447831\" style=\"width: 1000px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "<script>\n",
       "   function process_root_plot_1780676447831() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(28238,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1780676447831', 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_1780676447831();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%jsroot on\n",
    "c1.Draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c650cbf6-1e75-4731-bb91-4408a396ec26",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.13.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
