These tutorials illustrate the main features of RooFit: the name of the examples and their short description help in figuring out their objective.

## Files | |

file | rf101_basics.C |

Basic functionality: fitting, plotting, toy data generation on one-dimensional PDFs. | |

file | rf101_basics.py |

This tutorial illustrates the basic features of RooFit. | |

file | rf102_dataimport.C |

Basic functionality: importing data from ROOT TTrees and THx histograms. | |

file | rf103_interprfuncs.C |

Basic functionality: interpreted functions and PDFs. | |

file | rf103_interprfuncs.py |

Basic functionality: interpreted functions and p.d.f.s. | |

file | rf104_classfactory.C |

Basic functionality: The class factory for functions and p.d.f.s. | |

file | rf104_classfactory.py |

Basic functionality: the class factory for functions and p.d.f.s. | |

file | rf105_funcbinding.C |

Basic functionality: binding ROOT math functions as RooFit functions and pdfs. | |

file | rf106_plotdecoration.C |

Basic functionality: adding boxes with parameters, statistics to RooPlots, decorating with arrows, text etc... | |

file | rf106_plotdecoration.py |

Basic functionality: adding boxes with parameters to RooPlots and decorating with arrows, etc... | |

file | rf107_plotstyles.C |

Basic functionality: various plotting styles of data, functions in a RooPlot. | |

file | rf107_plotstyles.py |

Basic functionality: demonstration of various plotting styles of data, functions in a RooPlot. | |

file | rf108_plotbinning.C |

Basic functionality: plotting unbinned data with alternate and variable binnings. | |

file | rf108_plotbinning.py |

Basic functionality: plotting unbinned data with alternate and variable binnings. | |

file | rf109_chi2residpull.C |

Basic functionality: Calculating chi^2 from histograms and curves in RooPlots, making histogram of residual and pull distributions. | |

file | rf110_normintegration.C |

Basic functionality: normalization and integration of p.d.fs, construction of cumulative distribution monodimensional functions. | |

file | rf110_normintegration.py |

Basic functionality: examples on normalization and integration of p.d.fs, construction of cumulative distribution functions from monodimensional p.d.f.s. | |

file | rf111_derivatives.C |

Basic functionality: numerical 1st,2nd and 3rd order derivatives w.r.t. observables and parameters. | |

file | rf111_derivatives.py |

Basic functionality: numerical 1st, and 3rd order derivatives w.r.t. observables and parameters. | |

file | rf201_composite.C |

Addition and convolution: composite p.d.f with signal and background component. | |

file | rf201_composite.py |

Addition and convolution: composite p.d.f with signal and background component. | |

file | rf202_extendedmlfit.C |

Setting up an extended maximum likelihood fit. | |

file | rf202_extendedmlfit.py |

Addition and convolution: setting up an extended maximum likelihood fit. | |

file | rf203_ranges.C |

Fitting and plotting in sub ranges. | |

file | rf203_ranges.py |

Addition and convolution: fitting and plotting in sub ranges. | |

file | rf204_extrangefit.py |

Addition and convolution: extended maximum likelihood fit with alternate range definition for observed number of events. | |

file | rf204a_extendedLikelihood.C |

Extended maximum likelihood fit in multiple ranges. When an extended pdf and multiple ranges are used, the RooExtendPdf cannot correctly interpret the coefficients used for extension. This can be solved by using a RooAddPdf for extending the model. | |

file | rf204b_extendedLikelihood_rangedFit.C |

This macro demonstrates how to set up a fit in two ranges such that it does not only fit the shapes in each region, but also takes into account the relative normalization of the two. | |

file | rf205_compplot.C |

Addition and convolution: options for plotting components of composite p.d.f.s. | |

file | rf205_compplot.py |

Addition and convolution: options for plotting components of composite p.d.f.s. | |

file | rf206_treevistools.C |

Addition and convolution: tools for visualization of RooAbsArg expression trees. | |

file | rf206_treevistools.py |

Addition and convolution: tools for visualization of ROOT.RooAbsArg expression trees. | |

file | rf207_comptools.C |

Addition and convolution: tools and utilities for manipulation of composite objects. | |

file | rf208_convolution.C |

Addition and convolution: one-dimensional numeric convolution. | |

file | rf209_anaconv.C |

Addition and convolution: decay function p.d.fs with optional B physics effects (mixing and CP violation) | |

file | rf209_anaconv.py |

Addition and convolution: decay function p.d.fs with optional B physics effects (mixing and CP violation) that can be analytically convolved with e.g. Gaussian resolution functions. | |

file | rf210_angularconv.C |

Addition and convolution: convolution in cyclical angular observables theta. | |

file | rf211_paramconv.C |

Addition and convolution: working with a p.d.f. with a convolution operator in terms of a parameter. | |

file | rf212_plottingInRanges_blinding.C |

Plot a PDF in disjunct ranges, and get normalisation right. | |

file | rf301_composition.C |

Multidimensional models: multi-dimensional p.d.f.s through composition e.g. substituting a p.d.f parameter with a function that depends on other observables. | |

file | rf301_composition.py |

Multidimensional models: multi-dimensional p.d.f.s through composition, e.g. substituting a p.d.f parameter with a function that depends on other observables. | |

file | rf302_utilfuncs.C |

Multidimensional models: utility functions classes available for use in tailoring of composite (multidimensional) pdfs. | |

file | rf302_utilfuncs.py |

Multidimensional models: utility functions classes available for use in tailoring of composite (multidimensional) pdfs. | |

file | rf303_conditional.C |

Multidimensional models: use of tailored p.d.f as conditional p.d.fs.s. | |

file | rf304_uncorrprod.C |

Multidimensional models: simple uncorrelated multi-dimensional p.d.f.s. | |

file | rf304_uncorrprod.py |

Multidimensional models: simple uncorrelated multi-dimensional p.d.f.s. | |

file | rf305_condcorrprod.C |

Multidimensional models: multi-dimensional p.d.f.s with conditional p.d.fs in product. | |

file | rf305_condcorrprod.py |

Multidimensional models: multi-dimensional p.d.f.s with conditional p.d.fs in product. | |

file | rf306_condpereventerrors.C |

Multidimensional models: conditional p.d.f. with per-event errors. | |

file | rf306_condpereventerrors.py |

Multidimensional models: complete example with use of conditional p.d.f. with per-event errors. | |

file | rf307_fullpereventerrors.C |

Multidimensional models: full p.d.f. with per-event errors. | |

file | rf307_fullpereventerrors.py |

Multidimensional models: usage of full p.d.f. with per-event errors. | |

file | rf308_normintegration2d.C |

Multidimensional models: normalization and integration of p.d.fs, construction of cumulative distribution functions from p.d.f.s in two dimensions. | |

file | rf308_normintegration2d.py |

Multidimensional models: normalization and integration of p.d.fs, construction of cumulative distribution functions from p.d.f.s in two dimensions. | |

file | rf309_ndimplot.C |

Multidimensional models: making 2/3 dimensional plots of p.d.f.s and datasets. | |

file | rf309_ndimplot.py |

Multidimensional models: making 2/3 dimensional plots of p.d.f.s and datasets. | |

file | rf310_sliceplot.C |

Multidimensional models: projecting p.d.f and data slices in discrete observables. | |

file | rf310_sliceplot.py |

Multidimensional models: projecting p.d.f and data slices in discrete observables. | |

file | rf311_rangeplot.C |

Multidimensional models: projecting p.d.f and data ranges in continuous observables. | |

file | rf311_rangeplot.py |

Multidimensional models: projecting p.d.f and data ranges in continuous observables. | |

file | rf312_multirangefit.C |

Multidimensional models: performing fits in multiple (disjoint) ranges in one or more dimensions. | |

file | rf312_multirangefit.py |

Multidimensional models: performing fits in multiple (disjoint) ranges in one or more dimensions. | |

file | rf313_paramranges.C |

Multidimensional models: working with parametrized ranges to define non-rectangular regions for fitting and integration. | |

file | rf313_paramranges.py |

Multidimensional models: working with parameterized ranges to define non-rectangular regions for fitting and integration. | |

file | rf314_paramfitrange.C |

Multidimensional models: working with parametrized ranges in a fit. This an example of a fit with an acceptance that changes per-event. | |

file | rf314_paramfitrange.py |

Multidimensional models: working with parameterized ranges in a fit. This an example of a fit with an acceptance that changes per-event. | |

file | rf315_projectpdf.C |

Multidimensional models: marginizalization of multi-dimensional p.d.f.s through integration. | |

file | rf315_projectpdf.py |

Multidimensional models: marginizalization of multi-dimensional p.d.f.s through integration. | |

file | rf316_llratioplot.C |

Multidimensional models: using the likelihood ratio technique to construct a signal enhanced one-dimensional projection of a multi-dimensional p.d.f. | |

file | rf316_llratioplot.py |

Multidimensional models: using the likelihood ratio techique to construct a signal enhanced one-dimensional projection of a multi-dimensional p.d.f. | |

file | rf401_importttreethx.C |

Data and categories: advanced options for importing data from ROOT TTree and THx histograms. | |

file | rf402_datahandling.C |

Data and categories: tools for manipulation of (un)binned datasets. | |

file | rf402_datahandling.py |

Data and categories: tools for manipulation of (un)binned datasets. | |

file | rf403_weightedevts.C |

Data and categories: using weights in unbinned datasets. | |

file | rf404_categories.C |

Data and categories: working with RooCategory objects to describe discrete variables. | |

file | rf404_categories.py |

Data and categories: working with ROOT.RooCategory objects to describe discrete variables. | |

file | rf405_realtocatfuncs.C |

Data and categories: demonstration of real-->discrete mapping functions. | |

file | rf405_realtocatfuncs.py |

Data and categories: demonstration of real-discrete mapping functions. | |

file | rf406_cattocatfuncs.C |

Data and categories: demonstration of discrete-->discrete (invertible) functions. | |

file | rf406_cattocatfuncs.py |

Data and categories: demonstration of discrete-discrete (invertable) functions. | |

file | rf407_latextables.C |

Data and categories: latex printing of lists and sets of RooArgSets. | |

file | rf407_latextables.py |

Data and categories: latex printing of lists and sets of RooArgSets. | |

file | rf501_simultaneouspdf.C |

Organisation and simultaneous fits: using simultaneous p.d.f.s to describe simultaneous fits to multiple datasets. | |

file | rf501_simultaneouspdf.py |

Organization and simultaneous fits: using simultaneous p.d.f.s to describe simultaneous fits to multiple datasets. | |

file | rf502_wspacewrite.C |

Organisation and simultaneous fits: creating and writing a workspace. | |

file | rf502_wspacewrite.py |

Organization and simultaneous fits: creating and writing a workspace. | |

file | rf503_wspaceread.C |

Organisation and simultaneous fits: reading and using a workspace. | |

file | rf504_simwstool.C |

Organisation and simultaneous fits: using RooSimWSTool to construct a simultaneous p.d.f that is built of variations of an input p.d.f. | |

file | rf504_simwstool.py |

Organization and simultaneous fits: using RooSimWSTool to construct a simultaneous p.d.f that is built of variations of an input p.d.f. | |

file | rf505_asciicfg.C |

Organisation and simultaneous fits: reading and writing ASCII configuration files. | |

file | rf505_asciicfg.py |

Organization and simultaneous fits: reading and writing ASCII configuration files. | |

file | rf506_msgservice.C |

Organisation and simultaneous fits: tuning and customizing the RooFit message logging facility. | |

file | rf506_msgservice.py |

Organization and simultaneous fits: tuning and customizing the ROOT.RooFit message logging facility. | |

file | rf507_debugtools.C |

Organization and simultaneous fits: RooFit memory tracing debug tool. | |

file | rf507_debugtools.py |

Organization and simultaneous fits: RooFit memory tracing debug tool. | |

file | rf508_listsetmanip.C |

Organization and simultaneous fits: RooArgSet and RooArgList tools and tricks. | |

file | rf509_wsinteractive.C |

Organization and simultaneous fits: easy interactive access to workspace contents - CINT to CLING code migration. | |

file | rf509_wsinteractive.py |

Organization and simultaneous fits: easy interactive access to workspace contents - CINT to CLING code migration. | |

file | rf510_wsnamedsets.C |

Organization and simultaneous fits: working with named parameter sets and parameter snapshots in workspaces. | |

file | rf511_wsfactory_basic.C |

Organization and simultaneous fits: basic use of the 'object factory' associated with a workspace to rapidly build p.d.f.s functions and their parameter components. | |

file | rf511_wsfactory_basic.py |

Organization and simultaneous fits: basic use of the 'object factory' associated with a workspace to rapidly build p.d.f.s functions and their parameter components. | |

file | rf512_wsfactory_oper.C |

Organization and simultaneous fits: operator expressions and expression-based basic p.d.f.s in the workspace factory syntax. | |

file | rf513_wsfactory_tools.C |

Organization and simultaneous fits: RooCustomizer and RooSimWSTool interface in factory workspace tool in a complex standalone B physics example. | |

file | rf513_wsfactory_tools.py |

Organization and simultaneous fits: illustration use of ROOT.RooCustomizer and ROOT.RooSimWSTool interface in factory workspace tool in a complex standalone B physics example. | |

file | rf514_RooCustomizer.C |

Using the RooCustomizer to create multiple PDFs that share a lot of properties, but have unique parameters for each category. As an extra complication, some of the new parameters need to be functions of a mass parameter. | |

file | rf601_intminuit.C |

Likelihood and minimization: interactive minimization with MINUIT. | |

file | rf602_chi2fit.C |

Likelihood and minimization: setting up a chi^2 fit to a binned dataset. | |

file | rf603_multicpu.C |

Likelihood and minimization: setting up a multi-core parallelized unbinned maximum likelihood fit. | |

file | rf603_multicpu.py |

Likelihood and minimization: setting up a multi-core parallelized unbinned maximum likelihood fit. | |

file | rf604_constraints.C |

Likelihood and minimization: fitting with constraints. | |

file | rf604_constraints.py |

Likelihood and minimization: fitting with constraints. | |

file | rf605_profilell.C |

Likelihood and minimization: working with the profile likelihood estimator. | |

file | rf606_nllerrorhandling.C |

Likelihood and minimization: understanding and customizing error handling in likelihood evaluations. | |

file | rf607_fitresult.C |

Likelihood and minimization: demonstration of options of the RooFitResult class. | |

file | rf607_fitresult.py |

Likelihood and minimization: demonstration of options of the RooFitResult class. | |

file | rf608_fitresultaspdf.C |

Likelihood and minimization: representing the parabolic approximation of the fit as a multi-variate Gaussian on the parameters of the fitted p.d.f. | |

file | rf608_fitresultaspdf.py |

Likelihood and minimization: representing the parabolic approximation of the fit as a multi-variate Gaussian on the parameters of the fitted p.d.f. | |

file | rf609_xychi2fit.C |

Likelihood and minimization: setting up a chi^2 fit to an unbinned dataset with X,Y,err(Y) values (and optionally err(X) values) | |

file | rf609_xychi2fit.py |

Likelihood and minimization: setting up a chi^2 fit to an unbinned dataset with X,Y,err(Y) values (and optionally err(X) values) | |

file | rf610_visualerror.C |

Likelihood and minimization: visualization of errors from a covariance matrix. | |

file | rf610_visualerror.py |

Likelihood and minimization: visualization of errors from a covariance matrix. | |

file | rf611_weightedfits.C |

Likelihood and minimization: Parameter uncertainties for weighted unbinned ML fits. | |

file | rf701_efficiencyfit.C |

Special p.d.f.'s: unbinned maximum likelihood fit of an efficiency eff(x) function. | |

file | rf701_efficiencyfit.py |

Special p.d.f.'s: unbinned maximum likelihood fit of an efficiency eff(x) function to a dataset D(x,cut), cut is a category encoding a selection, which the efficiency as function of x should be described by eff(x) | |

file | rf702_efficiencyfit_2D.C |

Special p.d.f.'s: unbinned maximum likelihood fit of an efficiency eff(x) function to a dataset D(x,cut), cut is a category encoding a selection whose efficiency as function of x should be described by eff(x) | |

file | rf702_efficiencyfit_2D.py |

Special p.d.f.'s: unbinned maximum likelihood fit of an efficiency eff(x) function to a dataset D(x,cut), cut is a category encoding a selection whose efficiency as function of x should be described by eff(x) | |

file | rf703_effpdfprod.C |

Special p.d.f.'s: using a product of an (acceptance) efficiency and a p.d.f as p.d.f. | |

file | rf703_effpdfprod.py |

Special p.d.f.'s: using a product of an (acceptance) efficiency and a p.d.f as p.d.f. | |

file | rf704_amplitudefit.C |

Special p.d.f.'s: using a p.d.f defined by a sum of real-valued amplitude components. | |

file | rf704_amplitudefit.py |

Special p.d.f.'s: using a p.d.f defined by a sum of real-valued amplitude components. | |

file | rf705_linearmorph.C |

Special p.d.f.'s: linear interpolation between p.d.f shapes using the 'Alex Read' algorithm. | |

file | rf706_histpdf.C |

Special p.d.f.'s: histogram-based p.d.f.s and functions. | |

file | rf706_histpdf.py |

Special p.d.f.'s: histogram based p.d.f.s and functions. | |

file | rf707_kernelestimation.C |

Special p.d.f.'s: using non-parametric (multi-dimensional) kernel estimation p.d.f.s. | |

file | rf707_kernelestimation.py |

Special p.d.f.'s: using non-parametric (multi-dimensional) kernel estimation p.d.f.s. | |

file | rf708_bphysics.C |

Special p.d.f.'s: special decay pdf for B physics with mixing and/or CP violation. | |

file | rf708_bphysics.py |

Special p.d.f.'s: special decay pdf for B physics with mixing and/or CP violation. | |

file | rf709_BarlowBeeston.C |

Implementing the Barlow-Beeston method for taking into account the statistical uncertainty of a Monte-Carlo fit template. | |

file | rf801_mcstudy.C |

Validation and MC studies: toy Monte Carlo study that perform cycles of event generation and fitting. | |

file | rf801_mcstudy.py |

Validation and MC studies: toy Monte Carlo study that perform cycles of event generation and fitting. | |

file | rf802_mcstudy_addons.C |

Validation and MC studies: RooMCStudy - using separate fit and generator models, using the chi^2 calculator model Running a biased fit model against an optimal fit. | |

file | rf803_mcstudy_addons2.C |

Validation and MC studies: RooMCStudy - Using the randomizer and profile likelihood add-on models. | |

file | rf804_mcstudy_constr.C |

Validation and MC studies: using RooMCStudy on models with constrains. | |

file | rf901_numintconfig.C |

Numeric algorithm tuning: configuration and customization of how numeric (partial) integrals are executed. | |

file | rf901_numintconfig.py |

Numeric algorithm tuning: configuration and customization of how numeric (partial) integrals are executed. | |

file | rf902_numgenconfig.C |

Numeric algorithm tuning: configuration and customization of how MC sampling algorithms on specific p.d.f.s are executed. | |

file | rf902_numgenconfig.py |

Numeric algorithm tuning: configuration and customization of how MC sampling algorithms on specific p.d.f.s are executed. | |

file | rf903_numintcache.C |

Numeric algorithm tuning: caching of slow numeric integrals and parameterization of slow numeric integrals. | |

file | rf903_numintcache.py |

Numeric algorithm tuning: caching of slow numeric integrals and parameterizations of slow numeric integrals. | |