{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "385e5a32",
   "metadata": {},
   "source": [
    "# pdf012_tStudent\n",
    "Example macro describing the student t distribution\n",
    "\n",
    "```cpp\n",
    "root[0]: .x tStudent.C\n",
    "```\n",
    "\n",
    "It draws the pdf, the cdf and then 10 quantiles of the t Student distribution\n",
    "\n",
    "based on Magdalena Slawinska's tStudent.C\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "**Author:** Juan Fernando Jaramillo Botero  \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:26 PM.</small></i>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3c316762",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:01.622406Z",
     "iopub.status.busy": "2026-05-19T20:27:01.622292Z",
     "iopub.status.idle": "2026-05-19T20:27:02.759621Z",
     "shell.execute_reply": "2026-05-19T20:27:02.758974Z"
    }
   },
   "outputs": [],
   "source": [
    "from ROOT import TH1D, TF1, TCanvas, kRed, kBlue\n",
    "import ROOT\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4a4a6b02",
   "metadata": {},
   "source": [
    "This is the way to force load of MathMore in Cling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4dd64e40",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:02.761742Z",
     "iopub.status.busy": "2026-05-19T20:27:02.761526Z",
     "iopub.status.idle": "2026-05-19T20:27:02.898046Z",
     "shell.execute_reply": "2026-05-19T20:27:02.897173Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Info in <ROOT::Math::MathMoreLibrary>: libMathMore has been loaded.\n"
     ]
    }
   ],
   "source": [
    "ROOT.Math.MathMoreLibrary.Load()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62107aee",
   "metadata": {},
   "source": [
    "Create the pdf and the cumulative distributions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ba788437",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:02.899626Z",
     "iopub.status.busy": "2026-05-19T20:27:02.899484Z",
     "iopub.status.idle": "2026-05-19T20:27:03.022991Z",
     "shell.execute_reply": "2026-05-19T20:27:03.021909Z"
    }
   },
   "outputs": [],
   "source": [
    "n = 100\n",
    "a = -5.\n",
    "b = 5.\n",
    "pdf = TF1(\"pdf\", \"ROOT::Math::tdistribution_pdf(x,3.0)\", a, b)\n",
    "cum = TF1(\"cum\", \"ROOT::Math::tdistribution_cdf(x,3.0)\", a, b)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "73da9222",
   "metadata": {},
   "source": [
    "Create the histogram and fill it with the quantiles"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "7bfa432e",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:03.024666Z",
     "iopub.status.busy": "2026-05-19T20:27:03.024516Z",
     "iopub.status.idle": "2026-05-19T20:27:03.145553Z",
     "shell.execute_reply": "2026-05-19T20:27:03.144468Z"
    }
   },
   "outputs": [],
   "source": [
    "quant = TH1D(\"quant\", \"\", 9, 0, 0.9)\n",
    "\n",
    "quant.Fill(\n",
    "    np.array([(i - 0.5) / 10.0 for i in range(1, 10)]),\n",
    "    np.array([ROOT.Math.tdistribution_quantile(0.1 * i, 3.0) for i in range(1, 10)]),\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7accd606",
   "metadata": {},
   "source": [
    "For each quantile fill with the pdf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8434e308",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:03.147225Z",
     "iopub.status.busy": "2026-05-19T20:27:03.147098Z",
     "iopub.status.idle": "2026-05-19T20:27:03.277788Z",
     "shell.execute_reply": "2026-05-19T20:27:03.276610Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Warning in <TH1::TH1>: nbins is <=0 - set to nbins = 1\n"
     ]
    }
   ],
   "source": [
    "xx = []\n",
    "xx.append(-1.5)\n",
    "for i in range(1, 9):\n",
    "    xx.append(quant.GetBinContent(i))\n",
    "xx.append(1.5)\n",
    "\n",
    "pdfq = []\n",
    "for i in range(9):\n",
    "    nbin = int(n * (xx[i+1] - xx[i]) / 3.0 + 1.0)\n",
    "    name = \"pdf%d\" % i\n",
    "    pdfq.append(TH1D(name, \"\", nbin, xx[i], xx[i+1]))\n",
    "    for j in range(1, nbin):\n",
    "        x = j * (xx[i+1] - xx[i]) / nbin + xx[i]\n",
    "        pdfq[i].SetBinContent(j, ROOT.Math.tdistribution_pdf(x, 3))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c55f09d5",
   "metadata": {},
   "source": [
    "Create the Canvas and divide in four draws, for every draw set the line width\n",
    "the title, and the line color."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "a827a6bd",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:03.279432Z",
     "iopub.status.busy": "2026-05-19T20:27:03.279304Z",
     "iopub.status.idle": "2026-05-19T20:27:03.439501Z",
     "shell.execute_reply": "2026-05-19T20:27:03.430360Z"
    }
   },
   "outputs": [],
   "source": [
    "Canvas = TCanvas(\"DistCanvas\", \"Student Distribution graphs\", 10, 10, 800, 700)\n",
    "pdf.SetTitle(\"Student t distribution function\")\n",
    "cum.SetTitle(\"Cumulative for Student t\")\n",
    "quant.SetTitle(\"10-quantiles  for Student t\")\n",
    "Canvas.Divide(2, 2)\n",
    "Canvas.cd(1)\n",
    "pdf.SetLineWidth(2)\n",
    "pdf.DrawCopy()\n",
    "Canvas.cd(2)\n",
    "cum.SetLineWidth(2)\n",
    "cum.SetLineColor(kRed)\n",
    "cum.Draw()\n",
    "Canvas.cd(3)\n",
    "quant.Draw()\n",
    "quant.SetLineWidth(2)\n",
    "quant.SetLineColor(kBlue)\n",
    "quant.SetStats(0)\n",
    "Canvas.cd(4)\n",
    "pdfq[0].SetTitle(\"Student t & its quantiles\")\n",
    "pdf.SetTitle(\"\")\n",
    "pdf.Draw()\n",
    "pdfq[0].SetTitle(\"Student t & its quantiles\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bb87ed3b",
   "metadata": {},
   "source": [
    "Set the colors in every quantile."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9235c32c",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:03.446872Z",
     "iopub.status.busy": "2026-05-19T20:27:03.446735Z",
     "iopub.status.idle": "2026-05-19T20:27:03.555836Z",
     "shell.execute_reply": "2026-05-19T20:27:03.555105Z"
    }
   },
   "outputs": [],
   "source": [
    "i = 1\n",
    "for pd in pdfq[1:]:\n",
    "    pd.SetStats(0)\n",
    "    i += 1\n",
    "    pd.SetFillColor(i)\n",
    "    pd.Draw(\"same\")\n",
    "Canvas.Modified()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7126f86e",
   "metadata": {},
   "source": [
    "Draw all canvases "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "1a9653c9",
   "metadata": {
    "collapsed": false,
    "execution": {
     "iopub.execute_input": "2026-05-19T20:27:03.557205Z",
     "iopub.status.busy": "2026-05-19T20:27:03.557081Z",
     "iopub.status.idle": "2026-05-19T20:27:03.787793Z",
     "shell.execute_reply": "2026-05-19T20:27:03.787252Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "\n",
       "<div id=\"root_plot_1779222423777\" style=\"width: 800px; height: 700px; position: relative\">\n",
       "</div>\n",
       "\n",
       "</div>\n",
       "<script>\n",
       "   function process_root_plot_1779222423777() {\n",
       "      function execCode(Core) {\n",
       "         Core.settings.HandleKeys = false;\n",
       "         \n",
       "Core.unzipJSON(69030,'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').then(json => {\n",
       "   const obj = Core.parse(json);\n",
       "   Core.draw('root_plot_1779222423777', 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_1779222423777();\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
}
