{
"cells": [
{
"cell_type": "markdown",
"id": "dc027131",
"metadata": {},
"source": [
"# rf201_composite\n",
"Addition and convolution: composite pdf with signal and background component\n",
"\n",
"```\n",
"pdf = f_bkg * bkg(x,a0,a1) + (1-fbkg) * (f_sig1 * sig1(x,m,s1 + (1-f_sig1) * sig2(x,m,s2)))\n",
"```\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:15 PM."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "0d56df36",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:13.076997Z",
"iopub.status.busy": "2024-03-19T19:15:13.076614Z",
"iopub.status.idle": "2024-03-19T19:15:15.267473Z",
"shell.execute_reply": "2024-03-19T19:15:15.266345Z"
}
},
"outputs": [],
"source": [
"import ROOT"
]
},
{
"cell_type": "markdown",
"id": "e4b0676c",
"metadata": {},
"source": [
"Setup component pdfs\n",
"---------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "09e336e3",
"metadata": {},
"source": [
"Declare observable x"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "be4a12c7",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:15.272206Z",
"iopub.status.busy": "2024-03-19T19:15:15.271864Z",
"iopub.status.idle": "2024-03-19T19:15:15.626957Z",
"shell.execute_reply": "2024-03-19T19:15:15.625802Z"
}
},
"outputs": [],
"source": [
"x = ROOT.RooRealVar(\"x\", \"x\", 0, 10)"
]
},
{
"cell_type": "markdown",
"id": "a2cbe952",
"metadata": {},
"source": [
"Create two Gaussian PDFs g1(x,mean1,sigma) anf g2(x,mean2,sigma) and\n",
"their parameters"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "00c8af37",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:15.632627Z",
"iopub.status.busy": "2024-03-19T19:15:15.632243Z",
"iopub.status.idle": "2024-03-19T19:15:15.808279Z",
"shell.execute_reply": "2024-03-19T19:15:15.807104Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#0] WARNING:InputArguments -- The parameter 'sigma1' with range [-inf, inf] of the RooGaussian 'sig1' exceeds the safe range of (0, inf). Advise to limit its range.\n",
"[#0] WARNING:InputArguments -- The parameter 'sigma2' with range [-inf, inf] of the RooGaussian 'sig2' exceeds the safe range of (0, inf). Advise to limit its range.\n"
]
}
],
"source": [
"mean = ROOT.RooRealVar(\"mean\", \"mean of gaussians\", 5)\n",
"sigma1 = ROOT.RooRealVar(\"sigma1\", \"width of gaussians\", 0.5)\n",
"sigma2 = ROOT.RooRealVar(\"sigma2\", \"width of gaussians\", 1)\n",
"\n",
"sig1 = ROOT.RooGaussian(\"sig1\", \"Signal component 1\", x, mean, sigma1)\n",
"sig2 = ROOT.RooGaussian(\"sig2\", \"Signal component 2\", x, mean, sigma2)"
]
},
{
"cell_type": "markdown",
"id": "d09c7967",
"metadata": {},
"source": [
"Build Chebychev polynomial pdf"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "97f0007b",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:15.813161Z",
"iopub.status.busy": "2024-03-19T19:15:15.812738Z",
"iopub.status.idle": "2024-03-19T19:15:16.184007Z",
"shell.execute_reply": "2024-03-19T19:15:16.165602Z"
}
},
"outputs": [],
"source": [
"a0 = ROOT.RooRealVar(\"a0\", \"a0\", 0.5, 0.0, 1.0)\n",
"a1 = ROOT.RooRealVar(\"a1\", \"a1\", -0.2, 0.0, 1.0)\n",
"bkg = ROOT.RooChebychev(\"bkg\", \"Background\", x, [a0, a1])"
]
},
{
"cell_type": "markdown",
"id": "de2da38e",
"metadata": {},
"source": [
"Method 1 - Two RooAddPdfs\n",
"------------------------------------------\n",
"Add signal components"
]
},
{
"cell_type": "markdown",
"id": "1f4e2e6b",
"metadata": {},
"source": [
"Sum the signal components into a composite signal pdf"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "81bfe1fc",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:16.190966Z",
"iopub.status.busy": "2024-03-19T19:15:16.190561Z",
"iopub.status.idle": "2024-03-19T19:15:16.329018Z",
"shell.execute_reply": "2024-03-19T19:15:16.325200Z"
}
},
"outputs": [],
"source": [
"sig1frac = ROOT.RooRealVar(\"sig1frac\", \"fraction of component 1 in signal\", 0.8, 0.0, 1.0)\n",
"sig = ROOT.RooAddPdf(\"sig\", \"Signal\", [sig1, sig2], [sig1frac])"
]
},
{
"cell_type": "markdown",
"id": "5c59d82b",
"metadata": {},
"source": [
"Add signal and background\n",
"------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "9b35e509",
"metadata": {},
"source": [
"Sum the composite signal and background"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c559ebe4",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:16.336757Z",
"iopub.status.busy": "2024-03-19T19:15:16.336401Z",
"iopub.status.idle": "2024-03-19T19:15:16.445201Z",
"shell.execute_reply": "2024-03-19T19:15:16.443382Z"
}
},
"outputs": [],
"source": [
"bkgfrac = ROOT.RooRealVar(\"bkgfrac\", \"fraction of background\", 0.5, 0.0, 1.0)\n",
"model = ROOT.RooAddPdf(\"model\", \"g1+g2+a\", [bkg, sig], [bkgfrac])"
]
},
{
"cell_type": "markdown",
"id": "06552d3a",
"metadata": {},
"source": [
"Sample, fit and plot model\n",
"---------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "e7885fc6",
"metadata": {},
"source": [
"Generate a data sample of 1000 events in x from model"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "367b50f4",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:16.452643Z",
"iopub.status.busy": "2024-03-19T19:15:16.452273Z",
"iopub.status.idle": "2024-03-19T19:15:16.689938Z",
"shell.execute_reply": "2024-03-19T19:15:16.688638Z"
}
},
"outputs": [],
"source": [
"data = model.generate({x}, 1000)"
]
},
{
"cell_type": "markdown",
"id": "6ec9eb52",
"metadata": {},
"source": [
"Fit model to data"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "f4cd0e8e",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:16.703902Z",
"iopub.status.busy": "2024-03-19T19:15:16.703488Z",
"iopub.status.idle": "2024-03-19T19:15:17.052827Z",
"shell.execute_reply": "2024-03-19T19:15:17.051712Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:Fitting -- RooAbsPdf::fitTo(model) 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_model_modelData) Summation contains a RooNLLVar, using its error level\n",
"[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: activating const optimization\n",
"[#1] INFO:Minimization -- RooAbsMinimizerFcn::setOptimizeConst: deactivating const optimization\n"
]
}
],
"source": [
"model.fitTo(data, PrintLevel=-1)"
]
},
{
"cell_type": "markdown",
"id": "f2ce341b",
"metadata": {},
"source": [
"Plot data and PDF overlaid"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "efdb0211",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:17.057573Z",
"iopub.status.busy": "2024-03-19T19:15:17.057104Z",
"iopub.status.idle": "2024-03-19T19:15:17.403180Z",
"shell.execute_reply": "2024-03-19T19:15:17.401814Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"xframe = x.frame(Title=\"Example of composite pdf=(sig1+sig2)+bkg\")\n",
"data.plotOn(xframe)\n",
"model.plotOn(xframe)"
]
},
{
"cell_type": "markdown",
"id": "8b0cad21",
"metadata": {},
"source": [
"Overlay the background component of model with a dashed line"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "e05886a3",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:17.408620Z",
"iopub.status.busy": "2024-03-19T19:15:17.408269Z",
"iopub.status.idle": "2024-03-19T19:15:17.584966Z",
"shell.execute_reply": "2024-03-19T19:15:17.583442Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) directly selected PDF components: (bkg)\n",
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) indirectly selected PDF components: ()\n"
]
}
],
"source": [
"model.plotOn(xframe, Components={bkg}, LineStyle=\"--\")"
]
},
{
"cell_type": "markdown",
"id": "cad78ee3",
"metadata": {},
"source": [
"Overlay the background+sig2 components of model with a dotted line"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "693611ce",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:17.599168Z",
"iopub.status.busy": "2024-03-19T19:15:17.598733Z",
"iopub.status.idle": "2024-03-19T19:15:17.753212Z",
"shell.execute_reply": "2024-03-19T19:15:17.751780Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) directly selected PDF components: (bkg,sig2)\n",
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) indirectly selected PDF components: (sig)\n"
]
}
],
"source": [
"model.plotOn(xframe, Components={bkg, sig2}, LineStyle=\":\")"
]
},
{
"cell_type": "markdown",
"id": "890167e4",
"metadata": {},
"source": [
"Print structure of composite pdf"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c4b6948e",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:17.757736Z",
"iopub.status.busy": "2024-03-19T19:15:17.757359Z",
"iopub.status.idle": "2024-03-19T19:15:17.876693Z",
"shell.execute_reply": "2024-03-19T19:15:17.875657Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0xa916d50 RooAddPdf::model = 0.886326/1 [Auto,Clean] \n",
" 0xa8ee120/V- RooChebychev::bkg = 0.734412 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa5f8650/V- RooRealVar::a0 = 0.506755 +/- 0.0795919\n",
" 0xa61a480/V- RooRealVar::a1 = 0.265588 +/- 0.133931\n",
" 0xa9c4280/V- RooRealVar::bkgfrac = 0.428008 +/- 0.0356013\n",
" 0xaa0ab90/V- RooAddPdf::sig = 1/1 [Auto,Clean] \n",
" 0xa64ce20/V- RooGaussian::sig1 = 1 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa164260/V- RooRealVar::mean = 5\n",
" 0xa09da70/V- RooRealVar::sigma1 = 0.5\n",
" 0xa8e9a60/V- RooRealVar::sig1frac = 0.641992 +/- 0.0969095\n",
" 0xa646e30/V- RooGaussian::sig2 = 1 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa164260/V- RooRealVar::mean = 5\n",
" 0xa54f1d0/V- RooRealVar::sigma2 = 1\n"
]
}
],
"source": [
"model.Print(\"t\")"
]
},
{
"cell_type": "markdown",
"id": "2580b70b",
"metadata": {},
"source": [
"Method 2 - One RooAddPdf with recursive fractions\n",
"---------------------------------------------------"
]
},
{
"cell_type": "markdown",
"id": "74afc9e4",
"metadata": {},
"source": [
"Construct sum of models on one go using recursive fraction interpretations\n",
"\n",
" model2 = bkg + (sig1 + sig2)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "d58a0767",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:17.886437Z",
"iopub.status.busy": "2024-03-19T19:15:17.886092Z",
"iopub.status.idle": "2024-03-19T19:15:17.994675Z",
"shell.execute_reply": "2024-03-19T19:15:17.993325Z"
}
},
"outputs": [],
"source": [
"model2 = ROOT.RooAddPdf(\"model\", \"g1+g2+a\", [bkg, sig1, sig2], [bkgfrac, sig1frac], True)"
]
},
{
"cell_type": "markdown",
"id": "761046a0",
"metadata": {},
"source": [
"NB: Each coefficient is interpreted as the fraction of the\n",
"left-hand component of the i-th recursive sum, i.e.\n",
"\n",
" sum4 = A + ( B + ( C + D) with fraction fA, and fC expands to\n",
"\n",
" sum4 = fA*A + (1-fA)*(fB*B + (1-fB)*(fC*C + (1-fC)*D))"
]
},
{
"cell_type": "markdown",
"id": "98c7cc87",
"metadata": {},
"source": [
"Plot recursive addition model\n",
"---------------------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "e97715ca",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:18.000450Z",
"iopub.status.busy": "2024-03-19T19:15:18.000058Z",
"iopub.status.idle": "2024-03-19T19:15:18.149734Z",
"shell.execute_reply": "2024-03-19T19:15:18.147067Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) directly selected PDF components: (bkg,sig2)\n",
"[#1] INFO:Plotting -- RooAbsPdf::plotOn(model) indirectly selected PDF components: ()\n",
"0xb2ab990 RooAddPdf::model = 0.886326/1 [Auto,Clean] \n",
" 0xa8ee120/V- RooChebychev::bkg = 0.734412 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa5f8650/V- RooRealVar::a0 = 0.506755 +/- 0.0795919\n",
" 0xa61a480/V- RooRealVar::a1 = 0.265588 +/- 0.133931\n",
" 0xa9c4280/V- RooRealVar::bkgfrac = 0.428008 +/- 0.0356013\n",
" 0xa64ce20/V- RooGaussian::sig1 = 1 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa164260/V- RooRealVar::mean = 5\n",
" 0xa09da70/V- RooRealVar::sigma1 = 0.5\n",
" 0xb3452f0/V- RooRecursiveFraction::model_recursive_fraction_sig1_2 = 0.367214 [Auto,Clean] \n",
" 0xa8e9a60/V- RooRealVar::sig1frac = 0.641992 +/- 0.0969095\n",
" 0xa9c4280/V- RooRealVar::bkgfrac = 0.428008 +/- 0.0356013\n",
" 0xa646e30/V- RooGaussian::sig2 = 1 [Auto,Dirty] \n",
" 0xa44f110/V- RooRealVar::x = 5\n",
" 0xa164260/V- RooRealVar::mean = 5\n",
" 0xa54f1d0/V- RooRealVar::sigma2 = 1\n",
" 0xb320ee0/V- RooRecursiveFraction::model_recursive_fraction_sig2_3 = 0.204778 [Auto,Clean] \n",
" 0xb0556b0/V- RooConstVar::1 = 1\n",
" 0xa8e9a60/V- RooRealVar::sig1frac = 0.641992 +/- 0.0969095\n",
" 0xa9c4280/V- RooRealVar::bkgfrac = 0.428008 +/- 0.0356013\n"
]
}
],
"source": [
"model2.plotOn(xframe, LineColor=\"r\", LineStyle=\"--\")\n",
"model2.plotOn(xframe, Components={bkg, sig2}, LineColor=\"r\", LineStyle=\"--\")\n",
"model2.Print(\"t\")"
]
},
{
"cell_type": "markdown",
"id": "9c530390",
"metadata": {},
"source": [
"Draw the frame on the canvas"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "3dcd8e41",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:18.156232Z",
"iopub.status.busy": "2024-03-19T19:15:18.155852Z",
"iopub.status.idle": "2024-03-19T19:15:18.570789Z",
"shell.execute_reply": "2024-03-19T19:15:18.568528Z"
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Info in : png file rf201_composite.png has been created\n"
]
}
],
"source": [
"c = ROOT.TCanvas(\"rf201_composite\", \"rf201_composite\", 600, 600)\n",
"ROOT.gPad.SetLeftMargin(0.15)\n",
"xframe.GetYaxis().SetTitleOffset(1.4)\n",
"xframe.Draw()\n",
"\n",
"c.SaveAs(\"rf201_composite.png\")"
]
},
{
"cell_type": "markdown",
"id": "10aff278",
"metadata": {},
"source": [
"Draw all canvases "
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "75d80696",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2024-03-19T19:15:18.575014Z",
"iopub.status.busy": "2024-03-19T19:15:18.574629Z",
"iopub.status.idle": "2024-03-19T19:15:18.838489Z",
"shell.execute_reply": "2024-03-19T19:15:18.837181Z"
}
},
"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
}