{
"cells": [
{
"cell_type": "markdown",
"id": "26a5f0c1",
"metadata": {},
"source": [
"# rf712_lagrangianmorphfit\n",
"Performing a simple fit with RooLagrangianMorphFunc.\n",
"a morphing function is setup as a function of three variables and\n",
"a fit is performed on a pseudo-dataset.\n",
"\n",
"\n",
"\n",
"\n",
"**Author:** Rahul Balasubramanian \n",
"This notebook tutorial was automatically generated with ROOTBOOK-izer from the macro found in the ROOT repository on Tuesday, May 19, 2026 at 08:35 PM."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "5c69dc05",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:10.207040Z",
"iopub.status.busy": "2026-05-19T20:35:10.206928Z",
"iopub.status.idle": "2026-05-19T20:35:10.222510Z",
"shell.execute_reply": "2026-05-19T20:35:10.221980Z"
}
},
"outputs": [],
"source": [
"%%cpp -d\n",
"#include \n",
"#include \n",
"#include \n",
"#include \n",
"#include \n",
"\n",
"#include \n",
"#include \n",
"#include \n",
"#include \n",
"\n",
"using namespace RooFit;"
]
},
{
"cell_type": "markdown",
"id": "a34c0ee9",
"metadata": {},
"source": [
"Create variables for\n",
"morphing function\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "2c6d9e09",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:10.224015Z",
"iopub.status.busy": "2026-05-19T20:35:10.223899Z",
"iopub.status.idle": "2026-05-19T20:35:10.577657Z",
"shell.execute_reply": "2026-05-19T20:35:10.576872Z"
}
},
"outputs": [],
"source": [
"std::string observablename = \"pTV\";\n",
"RooRealVar obsvar(observablename.c_str(), \"observable of pTV\", 10, 600);\n",
"RooRealVar kSM(\"kSM\", \"sm modifier\", 1.0);\n",
"RooRealVar cHq3(\"cHq3\", \"EFT modifier\", -10.0, 10.0);\n",
"cHq3.setAttribute(\"NewPhysics\", true);\n",
"RooRealVar cHl3(\"cHl3\", \"EFT modifier\", -10.0, 10.0);\n",
"cHl3.setAttribute(\"NewPhysics\", true);\n",
"RooRealVar cHDD(\"cHDD\", \"EFT modifier\", -10.0, 10.0);\n",
"cHDD.setAttribute(\"NewPhysics\", true);"
]
},
{
"cell_type": "markdown",
"id": "00b00cf0",
"metadata": {},
"source": [
"Inputs needed for config\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "a1a3fae0",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:10.579326Z",
"iopub.status.busy": "2026-05-19T20:35:10.579208Z",
"iopub.status.idle": "2026-05-19T20:35:10.803149Z",
"shell.execute_reply": "2026-05-19T20:35:10.802312Z"
}
},
"outputs": [],
"source": [
"std::string infilename = std::string(gROOT->GetTutorialDir()) + \"/roofit/roofit/input_histos_rf_lagrangianmorph.root\";\n",
"std::vector samplelist = {\"SM_NPsq0\", \"cHq3_NPsq1\", \"cHq3_NPsq2\", \"cHl3_NPsq1\",\n",
" \"cHl3_NPsq2\", \"cHDD_NPsq1\", \"cHDD_NPsq2\", \"cHl3_cHDD_NPsq2\",\n",
" \"cHq3_cHDD_NPsq2\", \"cHl3_cHq3_NPsq2\"};"
]
},
{
"cell_type": "markdown",
"id": "921deef1",
"metadata": {},
"source": [
"Setup Config\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "60a1c990",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:10.805298Z",
"iopub.status.busy": "2026-05-19T20:35:10.805177Z",
"iopub.status.idle": "2026-05-19T20:35:11.136668Z",
"shell.execute_reply": "2026-05-19T20:35:11.136018Z"
}
},
"outputs": [],
"source": [
"RooLagrangianMorphFunc::Config config;\n",
"config.fileName = infilename;\n",
"config.observableName = observablename;\n",
"config.folderNames = samplelist;\n",
"config.couplings.add(cHq3);\n",
"config.couplings.add(cHl3);\n",
"config.couplings.add(cHDD);\n",
"config.couplings.add(kSM);"
]
},
{
"cell_type": "markdown",
"id": "0b0134ed",
"metadata": {},
"source": [
"Create morphing function\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "72e3ac15",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:11.138803Z",
"iopub.status.busy": "2026-05-19T20:35:11.138678Z",
"iopub.status.idle": "2026-05-19T20:35:11.348019Z",
"shell.execute_reply": "2026-05-19T20:35:11.347367Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#0] PROGRESS:InputArguments -- initializing physics inputs from file /github/home/ROOT-CI/build/tutorials/roofit/roofit/input_histos_rf_lagrangianmorph.root with object name(s) 'pTV'\n"
]
}
],
"source": [
"RooLagrangianMorphFunc morphfunc(\"morphfunc\", \"morphed dist. of pTV\", config);"
]
},
{
"cell_type": "markdown",
"id": "c8c99348",
"metadata": {},
"source": [
"Create pseudo data histogram\n",
"for fit\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c84974cd",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:11.349655Z",
"iopub.status.busy": "2026-05-19T20:35:11.349524Z",
"iopub.status.idle": "2026-05-19T20:35:11.559107Z",
"shell.execute_reply": "2026-05-19T20:35:11.558478Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#0] PROGRESS:Caching -- creating cache from getCache function for 0x7fa67d14e000\n",
"[#0] PROGRESS:Caching -- current storage has size 10\n",
"[#0] PROGRESS:ObjectHandling -- observable: pTV\n",
"[#0] PROGRESS:ObjectHandling -- binWidth: binWidth_pTV\n",
"[#1] INFO:DataHandling -- RooDataHist::adjustBinning(pseudo_dh): fit range of variable pTV expanded to nearest bin boundaries: [10,600] --> [0,600]\n"
]
}
],
"source": [
"morphfunc.setParameter(\"cHq3\", 0.01);\n",
"morphfunc.setParameter(\"cHl3\", 1.0);\n",
"morphfunc.setParameter(\"cHDD\", 0.2);\n",
"\n",
"auto pseudo_hist = morphfunc.createTH1(\"pseudo_hist\");\n",
"auto pseudo_dh = new RooDataHist(\"pseudo_dh\", \"pseudo_dh\", RooArgList(obsvar), pseudo_hist);"
]
},
{
"cell_type": "markdown",
"id": "b1d77398",
"metadata": {},
"source": [
"reset parameters to zeros before fit"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "fc936e72",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:11.560875Z",
"iopub.status.busy": "2026-05-19T20:35:11.560755Z",
"iopub.status.idle": "2026-05-19T20:35:11.769779Z",
"shell.execute_reply": "2026-05-19T20:35:11.769059Z"
}
},
"outputs": [],
"source": [
"morphfunc.setParameter(\"cHq3\", 0.0);\n",
"morphfunc.setParameter(\"cHl3\", 0.0);\n",
"morphfunc.setParameter(\"cHDD\", 0.0);"
]
},
{
"cell_type": "markdown",
"id": "4b312346",
"metadata": {},
"source": [
"error set used as initial step size"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "a760b019",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:11.771813Z",
"iopub.status.busy": "2026-05-19T20:35:11.771683Z",
"iopub.status.idle": "2026-05-19T20:35:11.980723Z",
"shell.execute_reply": "2026-05-19T20:35:11.979978Z"
}
},
"outputs": [],
"source": [
"cHq3.setError(0.1);\n",
"cHl3.setError(0.1);\n",
"cHDD.setError(0.1);"
]
},
{
"cell_type": "markdown",
"id": "08bcbf35",
"metadata": {},
"source": [
"Wrap pdf on morphfunc and\n",
"fit to data histogram\n",
"---------------------------------------------\n",
"wrapper pdf to normalise morphing function to a morphing pdf"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "e0b6b8e5",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:11.982542Z",
"iopub.status.busy": "2026-05-19T20:35:11.982420Z",
"iopub.status.idle": "2026-05-19T20:35:12.204397Z",
"shell.execute_reply": "2026-05-19T20:35:12.203735Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#0] PROGRESS:Caching -- creating cache from getCache function for 0x7fa62e1f58e0\n",
"[#0] PROGRESS:Caching -- current storage has size 10\n",
"[#0] PROGRESS:ObjectHandling -- observable: pTV\n",
"[#0] PROGRESS:ObjectHandling -- binWidth: binWidth_pTV\n",
"\n",
"[#1] INFO:Fitting -- RooAbsPdf::fitTo(wrap_pdf_over_wrap_pdf_Int[pTV]) fixing normalization set for coefficient determination to observables in data\n",
"[#1] INFO:Fitting -- using generic CPU library compiled with no vectorizations\n",
"[#1] INFO:Fitting -- Creation of NLL object took 7.36155 ms\n",
"[#1] INFO:Fitting -- RooAddition::defaultErrorLevel(nll_wrap_pdf_over_wrap_pdf_Int[pTV]_pseudo_dh) Summation contains a RooNLLVar, using its error level\n",
"[#1] INFO:Minimization -- [fitFCN] No discrete parameters, performing continuous minimization only\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.22238\tcHl3=2.00088\tcHq3=0.00780325\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.0889525, denominator=wrap_pdf_Int[pTV]=4479.59\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.0889525, denominator=wrap_pdf_Int[pTV]=4479.59\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0889525, denominator=wrap_pdf_Int[pTV]=4479.59\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0889525, denominator=wrap_pdf_Int[pTV]=4479.59\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=1.16153\tcHl3=8.6965\tcHq3=0.0408466\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.894368, denominator=wrap_pdf_Int[pTV]=3980.01\n",
" ... (remaining 4 messages suppressed)\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.607791\tcHl3=5.23432\tcHq3=0.0213386\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.315769, denominator=wrap_pdf_Int[pTV]=237.773\n",
" ... (remaining 16 messages suppressed)\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.330108\tcHl3=2.94627\tcHq3=0.0115846\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.131032, denominator=wrap_pdf_Int[pTV]=2465.37\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.191157\tcHl3=1.72296\tcHq3=0.00670752\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.0801556, denominator=wrap_pdf_Int[pTV]=5193.38\n",
" p.d.f value is less than zero, trying to recover @ numerator=wrap_pdf=0.0801556, denominator=wrap_pdf_Int[pTV]=5193.38\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0801556, denominator=wrap_pdf_Int[pTV]=5193.38\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0801556, denominator=wrap_pdf_Int[pTV]=5193.38\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.138238\tcHl3=1.24892\tcHq3=0.00485049\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0688277, denominator=wrap_pdf_Int[pTV]=6538.46\n",
"\n",
"RooAbsMinimizerFcn: Minimized function has error status.\n",
"Returning maximum FCN so far (39620.3) to force MIGRAD to back out of this region. Error log follows.\n",
"Parameter values: \tcHDD=0.121667\tcHl3=1.24299\tcHq3=0.004269\n",
"RooFit::Detail::RooNormalizedPdf::wrap_pdf_over_wrap_pdf_Int[pTV][ numerator=wrap_pdf denominator=wrap_pdf_Int[pTV] ]\n",
" getLogVal() top-level p.d.f evaluates to NaN @ numerator=wrap_pdf=0.0667251, denominator=wrap_pdf_Int[pTV]=6553.34\n",
"\n",
"[#1] INFO:Fitting -- RooAbsPdf::fitTo(wrap_pdf) Calculating sum-of-weights-squared correction matrix for covariance matrix\n"
]
}
],
"source": [
"RooWrapperPdf model(\"wrap_pdf\", \"wrap_pdf\", morphfunc);\n",
"auto fitres = model.fitTo(*pseudo_dh, SumW2Error(true), Save(), PrintLevel(-1));\n",
"auto hcorr = fitres->correlationHist();"
]
},
{
"cell_type": "markdown",
"id": "c1021400",
"metadata": {},
"source": [
"Extract postfit distribution\n",
"and plot with initial\n",
"histogram\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b7a2b405",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:12.206226Z",
"iopub.status.busy": "2026-05-19T20:35:12.206097Z",
"iopub.status.idle": "2026-05-19T20:35:12.412228Z",
"shell.execute_reply": "2026-05-19T20:35:12.411891Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[#1] INFO:InputArguments -- RooAbsData::plotOn(pseudo_dh) INFO: dataset has non-integer weights, auto-selecting SumW2 errors instead of Poisson errors\n",
"[#1] INFO:Plotting -- RooPlot::updateFitRangeNorm: New event count of 7389.24 will supersede previous event count of 7388.38 for normalization of PDF projections\n"
]
}
],
"source": [
"auto postfit_hist = morphfunc.createTH1(\"morphing_postfit_hist\");\n",
"RooDataHist postfit_dh(\"morphing_postfit_dh\", \"morphing_postfit_dh\", RooArgList(obsvar), postfit_hist);\n",
"\n",
"auto frame0 = obsvar.frame(Title(\"Fitted histogram of p_{T}^{V}\"));\n",
"postfit_dh.plotOn(frame0, Name(\"postfit_dist\"), DrawOption(\"C\"), LineColor(kBlue), DataError(RooAbsData::None),\n",
" XErrorSize(0));\n",
"pseudo_dh->plotOn(frame0, Name(\"input\"));"
]
},
{
"cell_type": "markdown",
"id": "7c2fb079",
"metadata": {},
"source": [
"Draw plots on canvas\n",
"---------------------------------------------"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "d1f9d560",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:12.418446Z",
"iopub.status.busy": "2026-05-19T20:35:12.418315Z",
"iopub.status.idle": "2026-05-19T20:35:12.624322Z",
"shell.execute_reply": "2026-05-19T20:35:12.623828Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Info in : png file rf712_lagrangianmorphfit.png has been created\n"
]
}
],
"source": [
"TCanvas *c1 = new TCanvas(\"fig3\", \"fig3\", 800, 400);\n",
"c1->Divide(2, 1);\n",
"\n",
"c1->cd(1);\n",
"gPad->SetLeftMargin(0.15);\n",
"gPad->SetRightMargin(0.05);\n",
"\n",
"model.paramOn(frame0, Layout(0.50, 0.75, 0.9), Parameters(config.couplings));\n",
"frame0->GetXaxis()->SetTitle(\"p_{T}^{V}\");\n",
"frame0->Draw();\n",
"\n",
"c1->cd(2);\n",
"gPad->SetLeftMargin(0.15);\n",
"gPad->SetRightMargin(0.15);\n",
"gStyle->SetPaintTextFormat(\"4.1f\");\n",
"gStyle->SetOptStat(0);\n",
"hcorr->SetMarkerSize(3.);\n",
"hcorr->SetTitle(\"correlation matrix\");\n",
"hcorr->GetYaxis()->SetTitleOffset(1.4);\n",
"hcorr->GetYaxis()->SetLabelSize(0.1);\n",
"hcorr->GetXaxis()->SetLabelSize(0.1);\n",
"hcorr->GetYaxis()->SetBinLabel(1, \"c_{HDD}\");\n",
"hcorr->GetYaxis()->SetBinLabel(2, \"c_{Hl^{(3)}}\");\n",
"hcorr->GetYaxis()->SetBinLabel(3, \"c_{Hq^{(3)}}\");\n",
"hcorr->GetXaxis()->SetBinLabel(3, \"c_{HDD}\");\n",
"hcorr->GetXaxis()->SetBinLabel(2, \"c_{Hl^{(3)}}\");\n",
"hcorr->GetXaxis()->SetBinLabel(1, \"c_{Hq^{(3)}}\");\n",
"hcorr->Draw(\"colz text\");\n",
"c1->SaveAs(\"rf712_lagrangianmorphfit.png\");"
]
},
{
"cell_type": "markdown",
"id": "3e16a3d7",
"metadata": {},
"source": [
"Draw all canvases "
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "17ce9610",
"metadata": {
"collapsed": false,
"execution": {
"iopub.execute_input": "2026-05-19T20:35:12.625945Z",
"iopub.status.busy": "2026-05-19T20:35:12.625824Z",
"iopub.status.idle": "2026-05-19T20:35:12.841193Z",
"shell.execute_reply": "2026-05-19T20:35:12.840621Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
"
\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"%jsroot on\n",
"gROOT->GetListOfCanvases()->Draw()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "ROOT C++",
"language": "c++",
"name": "root"
},
"language_info": {
"codemirror_mode": "text/x-c++src",
"file_extension": ".C",
"mimetype": " text/x-c++src",
"name": "c++"
}
},
"nbformat": 4,
"nbformat_minor": 5
}