{
 "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 0x60000381bd00 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_1780607367252\" style=\"width: 1000px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1780607367252() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(28293,'WkwImywAhW4AeAHtnWmTG0eSYP8Kraw/zJiBWOSdWfhE8Rhql6JoItUqjlpGA0mQxKpYqEWhJKrH9N/3PY9IFOrg0TPqsW6zoYhUelzuEeHhV0Qk/+Pgxfa30+XJ4v3y4PDg2d3FyS+Lsx+WL5+eLE7P3q23B5ODN9+frP7f+fLreweHM6CvVtuz9Pbty/+7fLU1/cBi355uV+uTDPyf1cnrg8OK5F1Lh/9xE66PIaiquqzqmgYerU6Wd9fH683BYZHBp9vfjqF3BH9Yvd6+S+CD1fFxLiyxgmPh2SzKL99sv1ls3q6gdDY15bvV23dXkr5ab7fr95eLPVufXk44erOSiJImnl+83kmvNnx0tl1sxTIMlrkE3UmQlR9sGHwJ3afbtCsd35W73KFItuiYPDZp2v7I2ORX683r5ebp6q959KJySvxm/ZpEB+2oODi8XTTTWfypurIpB/vzPNKreloMQ1+1s6EsYoKOSmb6huIkF+Wsm3ZDX9d1Xw1Da+vb9Z2XZ09WH5bHPzN6Qz/txVMObV8VjgcFviCXtofpACXD0M2qou1jjC+13RQ1uPnTNsOsLeSl5xdtfyKX7s+mddmW1WzW1EXfNn1P5e8vte5IkTKSug8eHKau/vlShaazd6SNVS4ngDQljKOzXR8xQDdNRDTw+WxZb9bMytmsn1UD8zUrOii4aP857d8wQ7l5c28X16d7zCa3nFZ1WzSzvp51w8wBPjpe//r43t3ESM/3gaPvTyMjOGnv/Ydd6sPdGyReagj4UlvAF9UALmp+/+G9K/t2EfPxWwDx+uH94gNsmpN9L2ZdNW2Gvp31Xd31Ts6zd8vtIpd68m6V3+6cnSLnvlsg3lK/Hp+/f7lEHNnYs9Wrn2lsfP0tvT5av82JvF2k/TXlPlm8frJYnSgbaOHuZn129m6xyg3uwCfrLGf3F61UXl2vrNzVm9USeftmcXy2pMS/bVavwb8PQsQIMmB31wiCi5T7r1fbxUul2XZzbgMPWJ6vL/V7rPxks3q/2q5+WULcFYH+aHWmvhh1SQYXGzr240+Tg/UpHf7xp99p/v6H5Svqn5wfHwM9TsrnVaEueLbaSkdoFMb5yeJ4ud2O8t/herz8sL2eeu/rp08e3XlOxT+Nr5S9tz6nV1+dv3kzTtd3TDBykb7nnh6dIQy/Pxvzn18GI/e75eIYSSXyyE5wyKofUHPrX1ENR2kudzCUWD7BWQpfJDxcqnPy9P86iou76LAkAu4utuReGd47221Szw7T0VfL7a/LJawuRzy/BMUQPtis30MXbD61xNHrxVbxHsDzEVA/30lAwbz8/M36l+W3pwu0/Tg+P3+3dEQuJ755CPmP7EJWWcGVi+0rOpCG9een79a/3v9lebJ9ig48Z64z//x853y7dvp3Jb9Znpx/tYBHrClz3Hkle+1qvGG4X397cgwD5yn7YbV9tz7f7nPiyJ0PF2eZt8aU/VI/XhnRP8zOUfJ91M4BS6z21cnbjxk7csbd48XZWV4KlkvW1X7CqUx6MDssm2aSf/MCNuO/eRmpvlWkmDub15HH+7zZ1ZnN21zS9C6X9b0/RIWWRTHp6/nge18DtvNChLym37woULzlpEBeFl05L8rDrp3E33lRIVNJTr95UaNcukn+zYvmsGiqSf7Ni/aw6HraiN+86FhgYEm/edEfliXkpN+8GA7Lupzk37yEJAoWg3Xpe3EZLKEQRNgsmAXzEqr6FoIFq3kJVeJsG0ihLlT1FG6lrJmXUpWJrMntoJmC4C4qwP6wqADpYN/Oy4GyzMSMxod+Xs3IpJyowVMxThW9b8XFrEAUyqdoAGm4gijxYFdEXYeKuuJpqAtRqOqoXzfzCqLsbtSnLkTNBsZVosp5BVEluYxtORvmFVSNo06HaqjqwGt3h2JeM1RMcdBckQvblIyL4yPoUEGRRNLdGqocYmetrOc1VDmmklEM8xpGoutDPRnaeQ1NorEDdTevoUmMRZA5r6Gppj92oijnDdMnn8li84Zxqlt4OPiUUaJbGagOwZ7f68OuHt+bw6YY3yGiG987/I1cvJex8/vAO3aq7bcz3pmReHfp0J94L3kvilhW89YVVFRwnzVcRHJHAI1A3yWgBSixMyInVlKVsQT2WKTFvBU9ReDlbt6JP4BZPe8kQKDoZ/NOCgJo2nk3rmHnt5OCyJn1804KBHoWbxDAe1vMu3ElVyAZ0RfVvGPkU4XZvJ8dJgIRDX2BpomGeC8PWRs2yrtLOEkXALkyhsGctHxzMZdJO9Zx6e6QuHBjGKzjso3RBhiy4KqY0/kAH4IQB0IgCa9iUHwNVeQULTwxH+oEwFYASYrJVABJjA0SPUAAjXUwxXwAP+9wG++gFwlcgRRjIcB0NcONUChmsB0cSsM1QmwG3ykUoAA5AVwdMst6N/g+gJBBP4qmnTAhDBB97Ces7qYGYiya2QT2hGcAFRksJ39MTDFzeZaTCg4qBR2SSeuoAoVsbVxDNItkLXFRK+ZCiEFhVBUSLc0qW333VzbAzI2z6cDbLtI1KE78XChdaQvHk46T2x0q4OxPQeeVrgwMDZMGCJOwGEFMQ8jWwr629KeFDoRrQY7j1gsyUlabdaxfQGaLXPCARdHaUw4/x2UOnQw5aBVlpYUhiqUOCYlmpeueCqDzh6zH+IuIT6IgpBzjUTIlIagV1j1i3DmBe/IPGGTKW/Ajxp0USioCENvMCbEEGaQrgOg9qzvIKjpguk+tqIwuUbeIImoyJ9RKlcmDJjqTawNDk/isDARF4kv0MSGBz8rkQY/DkGoD03URjkhhktSxhBUmcXKD5nmpulMcJaKBs2rJeJ2S1Ff+R65TEp0NzEzK2Fv+T7brOCGWaOYkdzdV7sb+psrQlTts5Wpcw64qJFg1LmOZSb3lSk4aPMNpMQezzVBVrucxP+AkVELDBJxWteVZHpULOxcPEGqyBRGgsg1W4wdYs8BjtVMX1QUvjVWFGKJcU0ghlyoK1aoTNQrvjgYDn/uHVxv1gn76V7uYQ8+GvgVOJEQ+9Ncwjy3bBv8HZqbEJO6AS3FZXIphHyEKBxR0WDSgUHJWDmgU9dAI68hlCk5CE7xbxXcVjRV4h2NmVIzXPCV2SXtAc8gu7GAWrbDdZkpr+cMu7PKVJKlLKZ8hAbYOP8r3Y5dS88PYpyiNUQQZu8IYRYLWdzgwiujKiAmbKHUs1QzFO2LBIkqdS/UcDhpiaIjs7CZaAhpYMqOL/jaw5A6mfw36JePP+fQ/0RP9b9AyI2z/GhRNYMqluxGKtqLvqYOUjK6n/mFpOAXRO96TlW6/WljRdNtuYcR4Zyxa2NB3utTKhQ6KUxJGS9JvdiPBCDDyAo4mk56T7MgPERYcGF1q5UIHMk3bvFW10D6UpuIsUpoTtDU1C6Vzr4juxHiM3UKQWTd3LFvtMW3UTKsjd06tAsaYtnkLR9JE6h8Cyzaif2JUYgEHjQ6LIiv3jzTgrPjTNAGnVZqnCTit0gs4qTfwOZqY6bl7QlrpqXcBpfWZS8KOqW84STCjtZgS3tOIpPc0HOk9WMPXbhSEiWzgtOqiS8xuJ9flKQBvhxwcQSvTv9zfyLyYfrpE9sX0Wzh1LnUJMPXO1rC3Rhko5UDJyDKPdns4L9A4KUBpHTgpALs5F8jkUC6qJXIyvWRncnIziRzHPgrvBpuGsnWTUGQmdIAtqCqlTowxUEhCE6y2E4QCWRzRo6iGNKI7wS6MTa8etRlZEggGzFAU3ski8hID5oLZY4xm4LBeFWqzzoLNKiRpaBw5DZsM2hIk5cJiydy4Iylz44gprVWhKKytkRDREswoylxUjzH3jVRyL4aIdOA0SBQJGuHKWGkZCn0RHYiyWWqDNrU1+gep6oXMDkThoth3q+IxxupOFXEYmb/oXGSGxB6HCX8xlnd0DW8x0WM/8RWttit4QU7CsSMnGt2RE9ThLYZAiVbxFRM1tqqvmEcPioDTCOU04B0bBZZGiiAjATuFGgPSJIqiajQlRU5yajgougClKPVnTrg4A1Zrk0JL0wbo8EQ1xzUcSfHLUsmRTFwElKhJnQHM45OYATio2bWaxmeXGYp+rJpcyjEPnzLzQOoIbqVd3JGEZ+n7OCj4loIxb/Me59LCY0fxL/ME5raSmI3poHBibAs7EDqa1I2Jm/e4mlbNRXE2x3Ytir+ZkMZE4HHSRowaWbH0Mzl6nInWVJAxGrsSzaSlP+JIS38kB88zWo2amAgJsFqW1CTQGmASihl/Ng5CTfVZSGcgCUWrOZvZ/ZS+1EwSimMzSSjuCiehGA0NWURn4EJCS+mwJ6JtdlBIpxkRKzsseZATdEFSlM1yGpJSWzuSIjdNVxraQS80JFIqmgV1ztTdkJ/SD+88TZ+EBFEKS/udfuTHDNJZluiAqKScYSDcngFRSTpupw7SgKTEUdaTJAI2ICfrQUe9qOkpZiRep45n3QINhziKFMYVJSIwO6SSoykGxCQNBjFgQEjWsKzWAxgQkaAO1xsMSMiacdaZZfAwIXGgGhy/tgFqDwlEtLRJNGAgpIYnpouMgzgQUSPKpwPciWEwbEI4gogHAQmCKNWkhepuACoOCfnpD+MbD0TT8IXx+vCCgbAghom+cA9lSEdCBgYJBihDPBK2InhItBCImSOGSptE0gZCaUQIOtocxMC8VZPedQVliEZiCYReY4YjjjYJ1w8MCkciagj8AgyKxp4oJRAYEIy4cYT2SpzjAblYELijTYIBQ+Oqj0AYcYRBuQgEhoBc8hGewI0eGu27CSEXPFIgVzyxvwQhFYVwjs1DLArp5wtBC/jwYAkbDkhFIMISGQxiZKaUCzXmoiOjMOQIwo7SilwM0E4KQhCjRhQygVAkCBHmIhkDFC/jg2gUNBwWIEQJIr8CjBEibJFBqDJXMpgTJSNsFPEGQagSlAxBqBIUryBUCebRVjIKSgaDj2gUNFIQIFQJSoa5UMXMM8kJhCpByYAVDcgJilcQqgTtviBUCUqGIFQJSgYs0EOVoGQIQhUgsdwAEZGSAfsS5CBwlqiCtxOYxsqQRAGPKCUZHNZIAtMMVpJhbppB1lMwIpKScSpYbAkMjoroqmyKNWsuy9TYNVv1RIgAIQMQHoEsYegg+AkMXSxSVnyGIUwYSlI+lLHgDDLNOstDmjC0JBjahCEmwRDHckUOETGyPNQpZiQnYMhTKkoPQbdZ+PvA0iOM4GQQkUUZJIAFGLLTXAKrgBJnnBAjV1BaAqwDlJTKXOJF5EpJgK1gKyFE0ti4P2QZIK4y2AcoGZGLtiNXMgwxIsCtKxkGPpHf4FWcIVAAS4mM/QCHNExdYJofHDJtXYYoYLuotcsQK/EGyUaIOyUBS2iYu8CgGKTFPRKxg4P9BuDE/iEjRa8DRp6bBb34EecGoAIWv04Y+EOKOgU6Yspl0pCqwAhS8AcsPYh11kPaTBE/gt3tj9hcET+inSWAJKe+o4FwZw24caMEB0a8i19YehTw4mc8kPfAiHjxC4tfIS9+cYgfMe+WUMQxHQ8EvUG9gKUHUQ/vg4uf+BH2xvGQ6BHXnSHu4f4EB34UoX1VMzkeiHzYPcHSg9BXn7r9hh4DRh2C3+ghu07AKETwBSz+bBMH7Hgg/GHQyG/sP+IflizY7GPbRxglLX3CgQ/Okx7hwAfriU/Y/qMGnHvjvhEqRxEkDQgsPlRBzAX5tfhQBo6l5dHtwNWhY+MOFJofmGUhPmHxYSmLK2DxYSob6A7Y/qESImpPWh34+kN34CwT4Xj2X9BRCRYfWsE9rch3fFULRMpj34stMBKQKeiblCDGsJlFSbUI/2s1KxYiQZyqBxcNQXT3zUhQrjhKJJSBVcEiWhMCLcskdt5MCLSsExnbzrDZxr4BCwXRnhKcWc1oWTdKiFZlETuOVhGtuzcyo7t0aEASoFRutApajgRXc24jJbicIT1KOP6qDRksEiRMxYFATQlBmEKavkQJCVN5aJ1FgnMyxuAiQUojCJfHA7FPApRqmDkeIek1tpF2KUHSQ43kMQ1ZrSIJzrOKlBIXCTEUbUipyiTJGUpIqeokmBFMJiDASchzq5hl5kmQPSwB6TxIkDATIB0BgWbM/BFbKeoUVxMllKesAGD7Bgzh0AacWlCgwgwIPHvWuVEKDJWxgQ4M1VAJLE3A0ohOQRInWBINnLiPY74UGr0Lhh3hFKmKfAmObQi7pIknrJsgPW3s2Lg1hCaO9hTA8EXsxlqfTW1gBGQwM+aj9Ln3rsSnT2zXgh73IHgbWPqMpSjxmQa3ztwhwvxKsPiN7inhGQMFrrtE2JYJFr/RPSU+TNs5XsZTYiEAix8Fw6ZFyg/80KeEZwy7wK9NDD5hx8egSiyTaqLAxaZBgYgPs138KphYNRj14g8FI8MDi18FE4tIo18Y+rBtCuzeVvwqGCW6sPhVMLGk2on7ZVg6KCjxATseKBjPLTinClxsHWDxAYvfLXkluLD43ZOP9dbjyAgzfrHcgB0PPQkMFnkCxw5YBSg+YPHrTYSBEi4mMPSFhQLseOhRBMzWZ9ADfQHjtolfryJZNBMFMis7wy2umzD0RT7umuOBgkn4cOakBwUTsJut0oOCSTDtOx4omATXEwU0BlGG2Vx1PPAyUn7HDquw9GmIskMpPSgY+ytPKa8xijLMJqv0oGBSPu1LDwomwQ07nMLSZ33adzxQMAnGEpMeFEypAahpLD0omARTR3pwOhKMuRX0SJ/lsfOkBwWTYIxQ8RuSiXzadzzQLwnWEhd2fnkPo1c4zW/iGWHoi3zXoDD0BQxPSg/eR4JZE9JjYCby4ZHag0Qcf/Ms2Z/iIN7Bg+P1YluVZBzH6THM04NfOJeH5458wWlD5+Cb80OesY7wvvmxLcuawb/mRzn6igfNj3KsBXxkZBfl6ANeMD/KweP4ufwohwGOJ8uPcowFvio/ysFHeKP8KIfXPmCJ4GXyoxzaAD+SH+UwbQcMWA7y8qMc1ifOHz/KYTni2/GjHJbGgHzHX+NHOaw03DF+lMPiGhDkuFj8KIdVgQfFj3LK1pDflENO4f/woxwyY/CAC2vdE70cNeZHe8pjnBMfrDwOL/tAJ+Bw+GA1zzwVhD/hA2GB58BDsTvTwcA18GENRSvGvw9rKElnis+ZVjKmvA9rKCIx1n1YQ4mILe7DGgpATG0eGrMY1T6soe2KzezDGgoyTGIf1lBuYfH6sIZiCoPWhzWUStirPqyhEMIc5cEU8rAGk8jDGhqVGJM+rKFNOVPDYyDyULVjCvqwhpEWLD0f1tDZwJDzYQ11OHaaD2to6mOE+bCGljoGlg9rqKw5fMxDkxojyYc11NEYQD6socGIcePDGsnwsIbGEgaKD2uoijE+fFiDGedhDeecefRBDUbbBzUYEx/UgHIf1KB9H9ZwzvnjwxrOOTLYhzWcc5asD2s454YGeFjDOdf552EN5zxMwjjgpWcPaA3nXN+dhzWccw+H8LCGcx5WoE44b9ZwznWzeVjDOQ+rT1eaN2s452Hn6R5DrTWcc71fHtZwzuN8XJx20bUFFIdzHuacLitv1nDOwwsNKy4czDDfwnUMuy2cwDDY0hES5zzMtfDOwk4LvwsR99Pvv/8++Xud5kQifvw059O4ekKJj92KySc2vU6xOVH+jieaU8qtXQNXrndcucJx9fbGxf0QmOSmiy1cTvl5udm7KJMSErq4KpMTdpc/nnGS+s7JW49bewBVMN0M8dpATrhzvHrLIWMYOBXYa9/yD9aeYmd+OWG8+LC6fiacQ8t3TKfA49erX1ZnXBGiVMOy4KQvOXsNPlq8XI6XYMQXcMIAl2b42zdvzpYeneZ6ikRGoR3ZMLwD/urnR8uTt94JopiHnGMOxqrRF4+ZX61G0h456Rh1dLAuPZj8/J+mhzGd/4ke/vs/TQ//s3PISfO9O1FAI1PEEWxvmblMj588TWvi3mbxa7pukWDuuF1c7UgA59Ktm4B8wQPgXjpvn3I8BO8iimVEZhYJdgKIu195CQYgc5Nx7QT9LpHLGl6GG+Fn6/VxHKA3IV1NuQvXrs83LDSUCetsm8m5IjFJdxGHkPqELEDvpMX/hcLAtWL3vRMxRVkmyBsRCbp/8vr+ZrPO19Bc2QFGcVE9OD95ldehmYJ7UkwwT6G5XnXJhe2qYC7suhfcm+9Hy7fLk9f792mkLqVeuYF3kTjiHu8P2sS+VIo294QnLT70LsTy7IoMz6lPTxevvAsQMnl3qW+vD7sbfXvCaFfuMjW7omMyyHdpex2PtKv93kuU6RNHPeQSz5WhMGlPWXGEyS7mciPiNDpj0TE1F7w6ENT9ZnWyen/+/t+XGy5VjZc1rH7pnmWI+HTr5clmyS2ef3t0UTql7w1cStjvppTup170M6XeW755iDbCrBvLkfLDwWF3OQXWDIW1qwQzRwI3ufbwA11Fvku6wBxJ1++Xknyp63ImaY+u3Vcl8YYrq6TK7FA6DmZOgdS9FHWjCy01LuS6DIjrJSpEckNoPFnkBArgaCCQXm24cPRg8Sqkj+Qp1va6L+g62GNbk/aHZKy1t34sIpiVcW52ZKDEVqnM5r1S9KCd1nGRxkS7MsU8T7TYlanOaQKZx3TfyZJMM9d9ox/bzer03vLV6j235XaXikIkZwGHyZ1Nhr3eRYEr3Yu0/f45kpG418EdvDM3kpGiAZLuMe9qRXd2uak7+CK5Tfszvtsd3pFS669PTpab7+yeJV1q0Sxd+9FbdLdu+ShK/vpS3+pHuAUoWqFyZgGgKHIBRdJ+ejm7XHyX189oxDxeav7yEArcf6fHT/T2IXfDlhu1dVwYjKHeQQ9WMFZmmiYzTdzEchZ3OcFLMWqvuGtoZWf/f69XJyaOhsDdxek++Gz1fjlaDl3PoRKOTTkfX79fvF0+paGdgEdkvD5e/vBudYZ1/t3i5C1y1lWQ0r9af8hpafZSqg3sX+f882pNg2NqvgWXit5dbV4dx03xPWmfs7xXKtF7OUea3Pc/nB6NxEv0mPh8P/H5TSXHxEslLfjN4sO91dv4MoBM+O2GG3p3uda54TZtSJ+/o7sWMmX8XMHVS5Oh4+DEG9015YYDtCewBEfZk3P3hu+KYhQcCydBla7OO6helo/BLfMt4ue8EBy4euV4X3rYkwRnbfGHj9qD7x/fdTTS5xk+OXIPi3sfG7cmFER2dN/4XYEX2xeceCYGNpu95IiTFWMtsi7v3PpuvX5yvN7eWr+59ZeD7V9ipe4Ne7In/osD/7d7v49fLY+V/0ZyPuq9Ztf1M77+h3Cb9vocJvU/tb9LZx6/XOmqG/NifPau1R9dXKU/SmW83s2d8Q33v5NaWoxvfi0ExrcJZea91dnp8eK3C5PExJ0olm3CnwdtvhvOQiAlw59wwr9son67OlFxRfns1l/+161/ucUnH279qyT8w0xcGrW/LVAh/XnieE3TliYwvnlg2n/7nH0krPBlc/bXq3P2DzVFitCQdDvjLoegPhFL+kecoiuRkL0wifsceOgnWM1+8yE6fHb+nq8WBHv6Oi5w3z/spX/IGVgH+no36r/sB/rJjhQeeYzJNjoZYsixjPQNiTdPE7oQOERLLj44ZFhAEBKvRDm+/LMU6UMRF47I+OGIwPYVFhh+BKEK8KZOCn/7y3Lzhu+cgFc9cmezUbxd3m5r3YeL7bZQNn6UITbdrpoDf3xQ+9TF8nllj4bW9bbwTaqOfQ77lhX+uxfHH94S31lYfNTyVl+/xRRQy+f8F6do/Rcvotk9fS8H/Re0vTzxaW2vWXc11v34FIPeD1dldfapKQKDO6K3h2k/4VHzmNzup62PcnK7M7kzuZvcbk1uTW5Mxs3gMbldm1ybXJlcmVxN+F4OyaXJhcmFycWEjw1xeWz/j0ls6O//meDKamHt/nBofho2114Kmy00adsiEVs1EbdESI1kcZKaFKmVbOnnJDIpdsv+2VG2QUmx/4UeNA93hPhLKg+SbZ8HyWzSiIIHySLhQTL7SOLhQbKYeJDMFpHIeJAsOh4ks18kRh6ehySZh+dJ+UsyDzfPTRYl7nkpSh4ki5IHyW7AmyzKUpQ8SObApSh5kCxKHiSz5S5KHuwmwTF42x9ftbCEqxbfRs7wvgLbYQylPeHYgYfa3Y+mO+7tsTvpFdwKHFwh5dgFuezvtWwtcylr0rs1za5hbEO7je72tXkewWEbr2NfrWMvsWUnlfuNHAPhKAVqhWudHInwGATzCp6S9JLNPo/HeBE89srck3Ovzg26tDlI2yNl7Jiye0ezvLAly3YtxdjoY7uXbUG2B+mHiMADyIEKXhgv3sHi9IArniBgMJ01U6DLjcz0XsRo/hHieCdTLqzBFDS8UBY7zTJqj0s64b4fkfrMtDKfESRyk2s2kxHuH73j0zZ/ezW/UPWZWns8NJv2ZcdBH86xcFSBmZClriWWU/ZS2wGuqrmc7F433zyrKy5ec9eIY08ua7a7OZDWc1iBu8EubA4MlMQjCITV7ISzBmAqbiDWdcN2eyzykg+aVWyYD7CJ67zp4C3YhUMfcXaNxdeyUcy5CI4DyNHVlDM/XJbh5BgHE5AEzbTk8lPFSYPKVl3G1Gf7uGwb9u5ZAEbboJ3TgR33wkkop3Vbd11VVxwHgNVZtNzgIngC6o6rzLFmuX7KyRDOGlQsDFcrLUB31zeN0gBSB5rtuLXduklcsaXQsgPPljN74TJqwSfJOiqUHDihqCXorN2p666MlcOYNg2tMETui1OlbrjRw3g4UPL7tOtaDrRQkaNuQQcvJZct2abngIDyhG/icRWy4bYi+/AImqatq67j8DZHeWmiQTY3nD1hU7xmXSmlGHHo5FN4rV2rpkxnxTSA2s/rMV59zS2xhsMWTcv6JKHuG7rCrai+84QD4orry7TBwY/a/f2BMefsGTKBD5i5zc+39jiEwA49p6Uaz3C0U6aEXXx6whf7EAnMW1NVtMs5G/qgsObkS9/UjFDJdJkQ08osc93dwwfVlA13PhTAxDSeLELs8zU5ztv1DTzj3j6SuaoIg7V1D3GIeEo0oKCM0xKKw2nnEmYLq8cZkikzzQV/pp/bsByvIW7L+NQ1qb3nAj7PlP20a5q+5Q4ofzvEfDflECMDCtNyxoU2mCb5j8M3fsEQAX1DFdYgkw6DlQ33tKnCeDo6MDLHmDhTyIDBzwxix9EEVmA7hUtgk4q1AJJYYBxAYbVw3Mh21KscGYWpMWgrmiEBPuMAhCdJuC9aXF+TrFq0ArPYwXR8ctA24C8WG5zIZEfC5UbhsLJj9UE9woBdbnRf3TL1NSPs1xlJuFaC4hzmgle5S4nob+CXpuLkkYNYqWamTCKcAB/LHmiGacUdAw5PdrRdwx9o2gYmhe1gsJRwrQTMyWLjpBUHRzn1Au9zQKnvuB7CKlMhwh6X6PgSLFcaraacFkObcuqJ2ebYz5e0AeU9x4sQlTBsHYrq/vMvk/YFK6njQ4HIMLqtPazG0CAg0PcjK4BDYsg+xBNHYJCHV4tfS7hWpZpWfamMQtLVfs+ShccEOsGsPg8msXhhbCajh48qDjjBiz2cxgkshoClBrd2MK8SE1kTx+qU08hhEjmFF6et4Ar6UJWIPLFgz3UIPlQRJ9Uaz9wwX6wWJAoKxONuSBGkGpdSOfNX1R6pQvAgo2rXVIvxgn3G8V441VlGXCndkFlIcUaMLywizGDwroJrCJNz+g97hXXFTfMaWkuuOYbQRZd0SEm62mAhIbgRyY2SG/EFGchpcSgTq55RwDSZShApITpCkiN1OT7HokbDYMugP+HwDuuLAcIOIqHuELMNT5RqKBC6xbRyHK3n/qXCn6FtqQ/bw8MqIZY+94X4OilrAiOnQ6Ow+ivEAvrSY6AMKRoFAQCDI2boLRNCgxyXaxpUjPap/IEMQERSA4OWiXZC+DoDFhcJHIlhEXacbYwSIf05RsenBCCENtGnrNqW+WehemoLYYb+oHvo29J5Q/7RU/UL6xKbU7MbJc2s0WLnqb92yjlCTprWTG8cT2tU0rIckgZNE3PPmS2WrgrTI3nMZAVbown4DqynwzAFkAU9Ag/5AGEkoA7gJsYYVkODMC3OD0KRz7DEyTXNCXjU8eri5B1KB1aoQqXGicDPMSWzgn3RIehKesP3rxTLVc3Uwj58WpYEyGH40CBYRjowVyuAGQZEP3YI5ZoKCDp6z+cn+OIEllOPqGP5yi1YIBwG7KZyp/YJS9KzjZ2mFPPEucSSc6yY0UppBgZRyRJDWZKAhlepo8Y9unptQbZTCmJ5YInJIzaq3dBqS1BD2/xqo61SGqZn7aBxEMpYGxUI4AUMGiqRcK0EAhhLra055wzbKCk4M0ppLAyYGcdiCqsixxgOOBAlhfqgbyh2WAh1YAIjga+BrUUJOO6GEtgN1GG8ET74EfC9FiIDzBF5G2Wv9jIdN7RxDcu1RplgpgCthaZikL+kDYqjLlmQ3JRqGiX9i9/uEHCM8DK7EjcFfl/sPhfLW/pCrEbrhbygkROiU39eHPuBTHxCQOLii2NiQ3mXiGVr8tPV2/dsfRHqeME3MFPkLNx3EjhStIum4f0fvFhv2DqjlR/iq6ARwNo/rL0fPfofP/Rv8UN//6PPiB5/cTjt7vmGb5jiTd4UT0NasPDIzBE14mUvDHv+uP1pP6b2ZLP2A+sENSOoxkby4vzWvxz96623i/OzOFK5F1VDe9Pgx+Nqbmp/cvvS6p+Oqxm4+3hcDTOfvYVPOMAWiLga4SREmaEvV4ufaibKRmBsIDZDiI3AGLKZh1E2kpGHhtgAkSY8jLLFg2TsVR8k8xeXygfJpcksXR5G2Uj2K7gE1eJz4BdhNZM03Pf+3BR6a6ZIE11M1Adqp1/exrG8KR6nhL74c1OEDi/vogBv+EbYimhziJXQiHQRucOGog92xl5F/E47mh/BJlLsuJG8kMr8X4GOb4LA1f/g6hIpjplOkFqIy19qPH6EqUhxwBn4mAEeqPGgIkgIjw5ypEB170PHUOsgHiSLmQfJ/jVZbJggJItNw0B8PHgTIw/cXi80k6y3q9GDvSVKY0jRZ1FiPAKKEtsByykeYVSRLEqDCaLkQbIoeZAGIEoevImSh3Zk+ksOJqWMF3b/p8J9cuouSI9tb7yAey0dVgDKipm5koDxhmVDUKXFKsBeZxbxdXH1MGRxjLFG4DyyMRIwS7Ed6AGkaLbhVeM2anTIUHicnT5ihwtKM5h82H+YasQ7iIkI49rq/aNyMc9IIMjAZYMa4wD3lSiJSYRO6pY7PFhgmLp83gWrj9P43DrDTsbMwDQ0CV+c+BDGMgqfg/1REVVfYa9jM4LCJAwGQjHoc4jyWoRWKIYylEI0d2/4zia2Lug08PQiI4XPfXW97oGeiPcepkYkSgxT7OwIbmAoYLPSc4j0Ohy8bQCFT9QTB+iwMzGy+VgXlpGOit497IhVi8VM/wlUhdeBhYpdxs9U4rCYUsQw8FVoFUu9gZOwQogEMQ1cX2m1HDAHMPgwbGiiI9KDAYnTjimEFciNIgwWXAV8Am7mxJUPOA6PBEKxMr1YUkEZHW8ZJj4uJ+Nr79IpPGYcOAgdGCTMZW0v4gMwpNyOM2AgBscXTm1qLDgswJYwHUEY3K0pg8sVKIIq3k9hnnCRDWzh4GC2EfYtnQsaJA7FeHM1D4lBXMCIR8vXyojlQihOvI4ed9Gw+BoYSuePqcOiorMVQZYWvFwFko3xMxB+Rl9gD3gUcwkz0rgXbTIHXP9kQPVi8Nv5j8+Q9IbssOxgOQw9hgvRgUuG94AJTCiMm2AIMK5r6OVgqBPGqbGAYTDScDQMdDesUS6FERgn2OHlsJYQphY2obaGqIUwQ8ndMPrnlSQGhjYpgm2PcU8NekbwoYKjeGDLMndTrXSmDBfDNukKY8iygjodZfxHfGdYATMalwxp2IEVVq6wxLn6iXCEUMQ7V8iYa1YBw4FDEOuuY13hMNADZgkeNsaHy2M8n95j/KIT/OcruP8ZBjAuVoQmsIfhDTz2StcRH4odg1mp7c6QG7/FQ8U8JhBMP2AF3BOYGErhWaxqllIrLzALrBzYK2JM8AJy14kngyaQvzihrMqW8lxSoin4i5ll0457VjhhLhUJwxWDheiRDjp0YPgTBaWMpGMmE4HDMdZLI5QAW2P/4wURjOPqG3zPoMNKxAgikkUNFgIVBPUw8D9BwmgQgeROo2OMxpziOjDkTIEbGMyVy5zwFEUQFHQVX4TxJt7GikUzuVCMfuJWwX2woFEdyGbxGD2AZyNWS5AFMMSEQRI4GbRwqb4RwweVesYQgRCQvVh1WFz4BPxh4wPpjKPDeLH6oJN5JebKnCHzlKzKDTxpBgZxArXMGhKf6qxC4hNEHpg0Fgg985/UkKtrFobchp8EV3NprEadYTTQtdqbiDVrkdgGPreLAS6vdGDhP8Q8oRyYCRYGG2LC+I9harQ8S5/YD2IaPwyZwDJhsepU05cUt2bc4FPEESJa9Ybawe8hXIyzEeqwQwTDaXiNYjV0gSBmDao3lERgZe+R3hLsoKdMIU27ypAarBvj1khpymKwpsAOEwjz6lZFrBzhBxe4mYAcVTMbTWcYmQ8GGxrc3CRghiCDY1IYm8GGmbnVK/toIqjDCCUjOQx1kEAUhzgPIT+EArxIZMNVY9wLvqcKfMRgGGxGUxlRIJDBbKh/evxi2iCMzZpwu4E077J9LiGsgn+EbavLjupnnYBrXus1AXrZa/3DnaI7R18/fXrnm/sf943+xNF9g6V/OOqXx/6TMfgdnz/i8OzJ4pelB38/5pR5q27Pn9Kb+bg3Ze7HvSldKU+CEqN27bAQEKmKr3QslC0RdI1bWtg2GFeW9nBoROfc7kGr1XGoPc6Msj3Gujb0iBTFMrLt+JdysBHcqCA0V6J3tZFsP2chJuIP31zmc3weiTgqcxbWGYqU7QbkqoFDao1ZiIaoRWTSuBZZ++dT7dfXJytOv9j/p+8W/Nsne2dn7643nkRfvF75D35YeLcbu5uo7PFu4195oYQzcvMdxDEzXUBEKqfCe/jSMW4vIGIlMFteH8wHwR+tOWjtGUTUYzit+d/7ivskTmtEWS7902efOiZ09UQRl5s+fIyP7HfupUXGAzI3H4P90u7bqGX37yPEIfbxHxHy5gBl8Gr83xfzcYyb/6BPOnGVjj7JEd9GTGp3qA1JKmNgLii3699/Gv85H49pehmXBC+IrE49YxMnfP03Ypg7/40YLii8Yi7GayjxjwulptPZ8P8PHoDGBw==').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1780607367252', 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_1780607367252();\n",
       "</script>\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "c1 = RooConvolution()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fd95cfaa-c3b2-496d-a5dc-e379ae9f216f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1780607387431\" style=\"width: 1000px; height: 600px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1780607387431() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(28293,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1780607387431', 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_1780607387431();\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.14.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
