{
"cells": [
{
"cell_type": "markdown",
"id": "9e116758",
"metadata": {},
"source": [
"# rf105_funcbinding\n",
"'BASIC FUNCTIONALITY' RooFit tutorial macro #105\n",
"Demonstration of binding ROOT Math functions as RooFit functions\n",
"and pdfs\n",
"\n",
"\n",
"\n",
"\n",
"**Author:** Clemens Lange, Wouter Verkerke (C version) \n",
"This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Tuesday, March 19, 2024 at 07:14 PM."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b296f6f0",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:42.227646Z",
"iopub.status.busy": "2024-03-19T19:14:42.227231Z",
"iopub.status.idle": "2024-03-19T19:14:44.605684Z",
"shell.execute_reply": "2024-03-19T19:14:44.591779Z"
}
},
"outputs": [],
"source": [
"import ROOT"
]
},
{
"cell_type": "markdown",
"id": "86fcc807",
"metadata": {},
"source": [
"Bind ROOT TMath::Erf C function\n",
"---------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "5324629a",
"metadata": {},
"source": [
"Bind one-dimensional ROOT.TMath.Erf function as ROOT.RooAbsReal function"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "25f0d3b0",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:44.626576Z",
"iopub.status.busy": "2024-03-19T19:14:44.626161Z",
"iopub.status.idle": "2024-03-19T19:14:45.963400Z",
"shell.execute_reply": "2024-03-19T19:14:45.961066Z"
}
},
"outputs": [],
"source": [
"x = ROOT.RooRealVar(\"x\", \"x\", -3, 3)\n",
"erf = ROOT.RooFit.bindFunction(\"erf\", ROOT.TMath.Erf, x)"
]
},
{
"cell_type": "markdown",
"id": "d440071a",
"metadata": {},
"source": [
"Print erf definition"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d9dd1b63",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:45.979002Z",
"iopub.status.busy": "2024-03-19T19:14:45.978579Z",
"iopub.status.idle": "2024-03-19T19:14:46.137464Z",
"shell.execute_reply": "2024-03-19T19:14:46.114147Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RooCFunction1Binding::erf[ function=(0x7f9fd806a000) x=x ] = 0\n"
]
}
],
"source": [
"erf.Print()"
]
},
{
"cell_type": "markdown",
"id": "fcab1a59",
"metadata": {},
"source": [
"Plot erf on frame"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "4137107e",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:46.151815Z",
"iopub.status.busy": "2024-03-19T19:14:46.151425Z",
"iopub.status.idle": "2024-03-19T19:14:46.591904Z",
"shell.execute_reply": "2024-03-19T19:14:46.589455Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"frame1 = x.frame(Title=\"TMath.Erf bound as ROOT.RooFit function\")\n",
"erf.plotOn(frame1)"
]
},
{
"cell_type": "markdown",
"id": "2304b3a9",
"metadata": {},
"source": [
"Bind ROOT::Math::beta_pdf C function\n",
"-----------------------------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "e9ce97b9",
"metadata": {},
"source": [
"Bind pdf ROOT.Math.Beta with three variables as ROOT.RooAbsPdf function"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "cd2d55ee",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:46.600713Z",
"iopub.status.busy": "2024-03-19T19:14:46.600191Z",
"iopub.status.idle": "2024-03-19T19:14:46.913896Z",
"shell.execute_reply": "2024-03-19T19:14:46.898880Z"
}
},
"outputs": [],
"source": [
"x2 = ROOT.RooRealVar(\"x2\", \"x2\", 0, 0.999)\n",
"a = ROOT.RooRealVar(\"a\", \"a\", 5, 0, 10)\n",
"b = ROOT.RooRealVar(\"b\", \"b\", 2, 0, 10)\n",
"beta = ROOT.RooFit.bindPdf(\"beta\", ROOT.Math.beta_pdf, x2, a, b)"
]
},
{
"cell_type": "markdown",
"id": "bccdef3d",
"metadata": {},
"source": [
"Perf beta definition"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5848a86a",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:46.919435Z",
"iopub.status.busy": "2024-03-19T19:14:46.919053Z",
"iopub.status.idle": "2024-03-19T19:14:47.042546Z",
"shell.execute_reply": "2024-03-19T19:14:47.037231Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RooCFunction3PdfBinding::beta[ function=ROOT::Math::beta_pdf x=x2 a=a b=b ] = 0.934689\n"
]
}
],
"source": [
"beta.Print()"
]
},
{
"cell_type": "markdown",
"id": "89df94fd",
"metadata": {},
"source": [
"Generate some events and fit"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "2971f6a2",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:47.047665Z",
"iopub.status.busy": "2024-03-19T19:14:47.047255Z",
"iopub.status.idle": "2024-03-19T19:14:47.596821Z",
"shell.execute_reply": "2024-03-19T19:14:47.595595Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:NumericIntegration -- RooRealIntegral::init(beta_Int[x2]) using numeric integrator RooIntegrator1D to calculate Int(x2)\n",
"[#1] INFO:NumericIntegration -- RooRealIntegral::init(beta_Int[x2]) using numeric integrator RooIntegrator1D to calculate Int(x2)\n",
"[#1] INFO:Fitting -- RooAbsPdf::fitTo(beta_over_beta_Int[x2]) fixing normalization set for coefficient determination to observables in data\n",
"[#1] INFO:Fitting -- using CPU computation library compiled with -mavx2\n",
"[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_beta_over_beta_Int[x2]_betaData) Summation contains a RooNLLVar, using its error level\n",
"[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization\n",
"[#1] INFO:NumericIntegration -- RooRealIntegral::init(beta_Int[x2]) using numeric integrator RooIntegrator1D to calculate Int(x2)\n",
"[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: deactivating const optimization\n"
]
}
],
"source": [
"data = beta.generate({x2}, 10000)\n",
"beta.fitTo(data, PrintLevel=-1)"
]
},
{
"cell_type": "markdown",
"id": "0efd5b58",
"metadata": {},
"source": [
"Plot data and pdf on frame"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "1f55d7b7",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:47.607574Z",
"iopub.status.busy": "2024-03-19T19:14:47.607163Z",
"iopub.status.idle": "2024-03-19T19:14:47.933061Z",
"shell.execute_reply": "2024-03-19T19:14:47.931719Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:NumericIntegration -- RooRealIntegral::init(beta_Int[x2]) using numeric integrator RooIntegrator1D to calculate Int(x2)\n"
]
}
],
"source": [
"frame2 = x2.frame(Title=\"ROOT.Math.Beta bound as ROOT.RooFit pdf\")\n",
"data.plotOn(frame2)\n",
"beta.plotOn(frame2)"
]
},
{
"cell_type": "markdown",
"id": "8b034f92",
"metadata": {},
"source": [
"Bind ROOT TF1 as RooFit function\n",
"---------------------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "67571089",
"metadata": {},
"source": [
"Create a ROOT TF1 function"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c5bfa36b",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:47.955788Z",
"iopub.status.busy": "2024-03-19T19:14:47.955338Z",
"iopub.status.idle": "2024-03-19T19:14:48.208546Z",
"shell.execute_reply": "2024-03-19T19:14:48.193614Z"
}
},
"outputs": [],
"source": [
"fa1 = ROOT.TF1(\"fa1\", \"sin(x)/x\", 0, 10)"
]
},
{
"cell_type": "markdown",
"id": "9d8cb94e",
"metadata": {},
"source": [
"Create an observable"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0a8fbafe",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:48.226659Z",
"iopub.status.busy": "2024-03-19T19:14:48.226273Z",
"iopub.status.idle": "2024-03-19T19:14:48.335266Z",
"shell.execute_reply": "2024-03-19T19:14:48.333074Z"
}
},
"outputs": [],
"source": [
"x3 = ROOT.RooRealVar(\"x3\", \"x3\", 0.01, 20)"
]
},
{
"cell_type": "markdown",
"id": "02a5b1bd",
"metadata": {},
"source": [
"Create binding of TF1 object to above observable"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c2ccac0d",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:48.348787Z",
"iopub.status.busy": "2024-03-19T19:14:48.348170Z",
"iopub.status.idle": "2024-03-19T19:14:48.470540Z",
"shell.execute_reply": "2024-03-19T19:14:48.469554Z"
}
},
"outputs": [],
"source": [
"rfa1 = ROOT.RooFit.bindFunction(fa1, x3)"
]
},
{
"cell_type": "markdown",
"id": "0626f390",
"metadata": {},
"source": [
"Print rfa1 definition"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "7fe8a97b",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:48.482108Z",
"iopub.status.busy": "2024-03-19T19:14:48.481556Z",
"iopub.status.idle": "2024-03-19T19:14:48.601460Z",
"shell.execute_reply": "2024-03-19T19:14:48.600524Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"RooTFnBinding::fa1[ TFn={fa1=sin(x)/x} obs=(x3) ] = -0.0547936\n"
]
}
],
"source": [
"rfa1.Print()"
]
},
{
"cell_type": "markdown",
"id": "9a192d28",
"metadata": {},
"source": [
"Make plot frame in observable, TF1 binding function"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "6f2fb2cb",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:48.610920Z",
"iopub.status.busy": "2024-03-19T19:14:48.610193Z",
"iopub.status.idle": "2024-03-19T19:14:49.078849Z",
"shell.execute_reply": "2024-03-19T19:14:49.076865Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Info in : png file rf105_funcbinding.png has been created\n"
]
}
],
"source": [
"frame3 = x3.frame(Title=\"TF1 bound as ROOT.RooFit function\")\n",
"rfa1.plotOn(frame3)\n",
"\n",
"c = ROOT.TCanvas(\"rf105_funcbinding\", \"rf105_funcbinding\", 1200, 400)\n",
"c.Divide(3)\n",
"c.cd(1)\n",
"ROOT.gPad.SetLeftMargin(0.15)\n",
"frame1.GetYaxis().SetTitleOffset(1.6)\n",
"frame1.Draw()\n",
"c.cd(2)\n",
"ROOT.gPad.SetLeftMargin(0.15)\n",
"frame2.GetYaxis().SetTitleOffset(1.6)\n",
"frame2.Draw()\n",
"c.cd(3)\n",
"ROOT.gPad.SetLeftMargin(0.15)\n",
"frame3.GetYaxis().SetTitleOffset(1.6)\n",
"frame3.Draw()\n",
"\n",
"c.SaveAs(\"rf105_funcbinding.png\")"
]
},
{
"cell_type": "markdown",
"id": "7791d0de",
"metadata": {},
"source": [
"Draw all canvases "
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "1261b77f",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:14:49.084736Z",
"iopub.status.busy": "2024-03-19T19:14:49.084383Z",
"iopub.status.idle": "2024-03-19T19:14:49.381765Z",
"shell.execute_reply": "2024-03-19T19:14:49.380621Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}