diff --git a/docs/source/_templates/page.html b/docs/source/_templates/page.html
index 62f56c7..a6fff8e 100644
--- a/docs/source/_templates/page.html
+++ b/docs/source/_templates/page.html
@@ -16,8 +16,8 @@
{% endblock %}
diff --git a/docs/source/docs-roofit1.rst b/docs/source/docs-roofit1.rst
index 02469e4..94bd172 100644
--- a/docs/source/docs-roofit1.rst
+++ b/docs/source/docs-roofit1.rst
@@ -1,26 +1,247 @@
-Statistical Modeling with RooFit
-================================
-
-The first step in any statistical method is to specify the statistical model being used to describe the
-data - schematically :math:`f` (data|parameters). This statistical model can be used to generate pseudo-data (toy
-Monte Carlo) for a specific parameter point and with specific observed data it defines the likelihood
-function :math:`L` (parameters) :math:`\equiv f` (observed data|parameters). A properly defined statistical model can be used
-in conjunction with any statistical method; however, several tools (`BAT`, `MCLimit`, `Collie`, `BILL`, etc.)
-provide both the modeling stage and a specific statistical method. The `RooFit` and `RooStats` projects
-are designed to separate these two distinct stages; where RooFit provides the modeling language and
-`RooStats` provides the statistical tests.
-
-Statistical models implemented within the RooFit framework can be serialized (written) to `ROOT`
-files – often referred to as workspaces – for subsequent use by RooStats tools or other packages such as
-BAT. Given the successful use of `RooFit` for the Higgs discovery and wide use within the SUSY group,
-we see it as the primary tool for statistical modeling.
-
-In addition to the low-level classes that RooFit provides for statistical modeling, there are higher-level
-tools (factories) such as `RooWorkspace::factory`, `HistFactory`, `HistFitter`, and other analysis-specific tools that produce RooFit models as an output. Analysis specific tools that produce `RooFit`
-workspaces are comparable with these recommendations, though if the statistical model can be implemented with one a more general-purpose high-level tool that is encouraged. For example, `HistFactory`
-is a fairly general purpose tool for histogram-based analyses that is well optimized and widely used.
-`The HistFitter tool`, which uses HistFactory for modeling and provides additional functionality,
-is similarly encouraged.
+RooFit as a model building language
+===================================
+
+The main feature of the design of the RooFit/RooStats suite of statistical analysis tools is that the tools
+to build statistical models and the tools to perform statistical inference are separate, but interoperable.
+This interoperability is universally possible because all statistical inference is based on the likelihood function.
+
+The goal is that all tools in the RooStats suite can analyse any model built in RooFit. The interoperability
+is facilitated in practice by the concept of the workspace (RooFit class RooWorkspace) that allows to
+persist statistical models of arbitrary complexity into ROOT files and thus allow to separate the model building
+phase and the statistical inference phase of a data analysis project both in space and time
+
+RooFit language basics and the RooFit workspace
+===============================================
+
+RooFit basics
+-------------
+
+This section will cover the essentials of the RooFit modelling language, which wil aid in the understanding
+of the role of higher level modelling tools and model manipulation.
+
+The key concept of RooFit probability models is that all components that form the mathematical expression
+of a probability model or probability density function are expressed in separate C++ objects. Base classes exist
+to represent e.g. variables, functions, normalised probability density functions, integrals of function, datasets,
+and implementations of many concrete functions and probability density functions are provided.
+
+The examples below show how a Gaussian and Poisson probability model are built by constructing first
+the component objects (the parameters and observables), and the the probability (density) functions.
+
+
++--------------------------------------------------------------+-----------------------------------------------------------------------+
+|.. code-block:: c |.. code-block:: python |
+| | |
+| // Construct a Gaussian probability density model | # Construct a Gaussian probability density model |
+| RooRealVar x("x","x",0,-10,10) ; | x = ROOT.RooRealVar("x","x",0,-10,10) |
+| RooRealVar mean("mean","Mean of Gaussian",0,-10,10) ; | mean = ROOT.RooRealVar("mean","Mean of Gaussian",0,-10,10) |
+| RooRealVar width("width","With of Gaussian",3,0.1,10) ; | width = ROOT.RooRealVar("width","With of Gaussian",3,0.1,10) |
+| RooGaussian g("g","Gaussian",x, mean,width) ; | g = ROOT.RooGaussian("g","Gaussian",ROOT.RooArgSet(x), mean,width) |
+| | |
+| // Construct a Poisson probability model | # Construct a Poisson probability model |
+| RooRealVar n("n","Observed event cont",0,0,100) ; | n = ROOT.RooRealVar("n","Observed event cont",0,0,100) |
+| RooRealVar mu("mu","Expected event count",10,0,100) ; | mu = ROOT.RooRealVar("mu","Expected event count",10,0,100) |
+| RooPoisson p("p","Poisson",n, mu) ; | p = ROOT.RooPoisson("p","Poisson",n, mu) |
++--------------------------------------------------------------+-----------------------------------------------------------------------+
+
+RooFit implements all basic functionality of statistical models: toy data generation, plotting, and fitting (interfacing ROOTs minimisers for the actual -logL minimisation process).
+
+
++---------------------------------------------------------------------------------------+-------------------------------------------------------------+
+|.. code-block:: c |.. code-block:: python |
+| | |
+| // generate unbnined dataset of 10k events | # generate unbnined dataset of 10k events |
+| RooDataSet* toyData = g.generate(x,10000) ; | toyData = g.generate(ROOT.RooArgSet(x),10000) |
+| | |
+| // Perform unbinned ML fit to toy data | # Perform unbinned ML fit to toy data |
+| g.fitTo(*toyData) ; | g.fitTo(toyData) |
+| | |
+| // Plot toy data and pdf in observable x | # Plot toy data and pdf in observable x |
+| RooPlot* frame = x.frame() ; | frame = x.frame() |
+| toyData->plotOn(frame) ; | toyData.plotOn(frame) |
+| g.plotOn(frame) ; | g.plotOn(frame) |
+| frame->Draw() ; | frame.Draw() |
+| | |
+|.. image:: http://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png |.. image:: http://swanserver.web.cern.ch/ |
+| :target: https://cern.ch/swanserver/cgi-bin/go/?projurl= | swanserver/images/badge_swan_white_150.png |
+| https://raw.githubusercontent.com/roofit-dev/ | :target: https://cern.ch/swanserver/cgi-bin/ |
+| RooStatsWorkbook/master/misc_notebooks/RooFitBasics.ipynb | go/?projurl=https://raw.githubusercontent.com |
+| :alt: ROOT C++ | /roofit-dev/RooStatsWorkbook/master/ |
+| | misc_notebooks/RooFitBasics.ipynb |
+| | :alt: pyROOT |
++---------------------------------------------------------------------------------------+-------------------------------------------------------------+
+
+|docs-gauss|
+
+.. |docs-gauss| raw:: html
+
+
+
+As the likelihood function plays an important role in many statistical techniques, it can also be explicitly constructed
+as a RooFit function object for more detailed control
+
+
++----------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+
+|.. code-block:: c |.. code-block:: c |
+| | |
+| // Create Likelihood function L(x|mu,sigma) for all x in toy data | # Create Likelihood function L(x|mu,sigma) for all x in toy data |
+| RooAbsReal* nll = g.createNLL(*toyData) ; | nll = g.createNLL(toyData) |
+| | |
+| // ML estimation of model parameters mean,width | # ML estimation of model parameters mean,width |
+| RooMinimizer m(*nll) ; | m = ROOT.RooMinimizer(nll) |
+| m.migrad() ; // Minimization | m.migrad() # Minimization |
+| m.hesse() ; // Hessian error analysis | m.hesse() # Hessian error analysis |
+| | |
+| // Result of minimisation and error analysis is propagated | # Result of minimisation and error analysis is propagated |
+| // to variable objects representing model parameters | # to variable objects representing model parameters |
+| mean.Print() ; | mean.Print() |
+| width.Print() ; | width.Print() |
+| | |
+| // Visualize likelihood L(mu, sigma) | # Visualize likelihood L(mu, sigma) |
+| // at sigma = sigma_hat in range 2.9plotOn(frame2) ; | nll.plotOn(frame2) |
+| frame2->Draw() ; | frame2.Draw() |
+| | |
+|.. image:: http://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png |.. image:: http://swanserver.web.cern.ch/ |
+| :target: https://cern.ch/swanserver/cgi-bin/go/?projurl= | swanserver/images/badge_swan_white_150.png |
+| https://raw.githubusercontent.com/roofit-dev/ | :target: https://cern.ch/swanserver/cgi-bin/ |
+| RooStatsWorkbook/master/misc_notebooks/RooFitBasics.ipynb | go/?projurl=https://raw.githubusercontent.com |
+| :alt: ROOT C++ | /roofit-dev/RooStatsWorkbook/master/ |
+| | misc_notebooks/RooFitBasics.ipynb |
+| | :alt: pyROOT |
++----------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------+
+
+|docs-mean|
+
+.. |docs-mean| raw:: html
+
+
+
+
+RooFit implements a very wide range of options to tailor models and their use that are not discussed here in the interest of brevity, but
+are discussed in detail here . RooFit also automatically performs an optimisation of the computation strategy of each likelihood
+before each use, so that users that build models generally do not need to worry about specific performance considerations when
+expression the model. Example optimisations include automatic detection of unused dataset variables in a likelihood, automatic detection
+of expression that only depend on (presently) constant parameters and caching and lazy evaluation of expensive objects such as
+numerical integrals. The following links provide further information on a number of RooFit related topics
+
+* Guide to the RooFit workspace and factory language
+* Guide to (automatic) computational optimizations in RooFit
+* Guide to writing your own RooFit PDF classes
+
+RooFit workspace essentials
+---------------------------
+
+The key to the RooFit/RooStats approach of separating model building and statistical inference is the ability
+to persist built models into ROOT files and the ability to revive these with minimal effort in a later ROOT session.
+This ability is powered by the RooFit workspace class, in which built models can be important, which organises the persistence
+of these models, regardless of their complexity
+
++----------------------------------------------------------+-------------------------------------------------------------+
+| .. code-block:: c | .. code-block:: python |
+| | |
+| // Saving a model to the workspace | # Saving a model to the workspace |
+| RooWorkspace w("w") ; | w = ROOT.RooWorkspace("w") |
+| w.import(g) ; | getattr(w,'import')(g) |
+| w.import(p) ; | getattr(w,'import')(p) |
+| w.import(*toyData,RooFit::Rename("toyData")) ; | getattr(w,'import')(toyData,ROOT.RooFit.Rename("toyData"))|
+| w.Print() ; | w.Print() |
+| w.writeToFile("model.root") ; | w.writeToFile("model.root") |
+| | |
+| // ———————————————— | # ———————————————— |
+| | |
+| // Reviving a model from a workspace | # Reviving a model from a workspace |
+| TFile* f = TFile::Open("model.root") ; | f = ROOT.TFile.Open("model.root") |
+| RooWorkspace * w = (RooWorkspace*) f->Get("w") ; | w = f.Get("w") |
+| RooAbsPdf* g = w->pdf("g") ; | g = w.pdf("g") |
+| RooAbsPdf* p = w->pdf("p") ; | p = w.pdf("p") |
+| RooDataSet* toyDatata = w->data("toyData") ; | toyDatata = w.data("toyData") |
+| | |
++----------------------------------------------------------+-------------------------------------------------------------+
+
+The code example above, while straightforward highlights a couple of important points
+
+* Reviving a model or dataset is always trivial, typically 3-4 lines of code depending on the number of objects that must be retrieved from the workspace, even for large workspaces e.g. full Higgs combinations that can contain over ten thousand component objects.
+
+* Retrieval of objects (functions, datasets) is indexed by their internal object, as giving to them in the first C++ constructor argument (all RooFit object inherit from ROOT class TNamed, which identical behaviour).
+
+* For objects where the model building user did not explicitly specify the objects intrinsic name, like the toyData object in the example above, it is possible to rename the object to a given name after the fact. The most convenient path to do this is to do this upon import in the workspace, as shown in the code example above.
+
+The ModelConfig interface object
+--------------------------------
+
+Since model and data names do not need to conform to any specific convention, the automatic operation
+of statistical tools in RooStats need some guidance from the user to point the tool the correct model and dataset.
+The interface between RooFit probability models and RooStats tools is the **RooStats::ModelConfig** object.
+The ModelConfig object has two clarifying roles
+
+1. Identifying which pdf in the workspace is to be used for the calculation. The workspace content
+does not need to follow any particular naming convention. The ModelConfig object will guide the calculator
+the desired model
+
+2. Specifying information on the statistical inference problem that is not intrinsic to the probability model:
+ i.e. which parameters are "of interest", which ones are "nuisance", what are the observables to be considered,
+and (often) a set of parameter values that fully define a specific hypothesis (e.g. the null or alternate hypothesis)
+
+Here is a code example that construct a ModelConfig for the Poisson probability model created earlier
+
++-----------------------------------------------------------------------+-----------------------------------------------------------------------+
+|.. code-block:: c |.. code-block:: python |
+| | |
+| // Create an empty ModelConfig | # Create an empty ModelConfig |
+| RooStats::ModelConfig mc("ModelConfig",&w); | mc = ROOT.RooStats.ModelConfig("ModelConfig",w) |
+| | |
+| // Define the pdf, the parameter of interest and the observables | # Define the pdf, the parameter of interest and the observables |
+| mc.SetPdf(*w.pdf("p")); | mc.SetPdf(w.pdf("p")) |
+| mc.SetParametersOfInterest(*w.var("mu")); | mc.SetParametersOfInterest(w.var("mu")) |
+| mc.SetObservables(*w.var("n")); | mc.SetObservables(w.var("n")) |
+| | |
+| // Define the value mu=1 as | # Define the value mu=1 as |
+| // a fully-specified hypothesis to be tested later | # a fully-specified hypothesis to be tested later |
+| w->var("mu")->setVal(1) ; | w.var("mu").setVal(1) |
+| mc.SetSnapshot(*w.var("mu")); | mc.SetSnapshot(*w.var("mu")) |
+| | |
+| // import model in the workspace | # import model in the workspace |
+| w.import(mc); | getattr(w,'import')(mc) |
++-----------------------------------------------------------------------+-----------------------------------------------------------------------+
+
+
+When the intent is to use RooStats tools on a model, it is common practice to insert a ModelConfig in the workspace in the
+model building phase so that the persistent workspace is fully self-guiding when the RooStats tools are run. More details on
+this are given in Section 4 on statistical inference tools. The presence of a ModelConfig object can of course also used to
+simply the use of workspace files outside the RooStats tools.
+
+For example the code fragment below will perform a maximum likelihood fit on any workspace with a model and
+dataset and valid ModelConfig object
+
++----------------------------------------------------------------------------------------+------------------------------------------------------------+
+|.. code-block:: c |.. code-block:: python |
+| | |
+| void run_fit(const char* workspaceName, const char* datasetName) { | def run_fit(workspaceName, datasetName): |
+| | |
+| // Reviving a model from a workspace | # Reviving a model from a workspace |
+| TFile* f = TFile::Open("model.root") ; | f = ROOT.TFile.Open("model.root") |
+| RooWorkspace* w = (RooWorkspace*) f->Get("w") ; | w = f.Get(workspaceName) |
+| RooStats:::ModelConfig* mc = (RooStats::ModelConfig*) w->genobj("ModelConfig") ; | mc = w.genobj("ModelConfig") |
+| RooAbsPdf* pdf = w->pdf(mc->GetPdf()->GetName()) ; | pdf = w.pdf(mc.GetPdf().GetName()) |
+| | |
+| // Load data from workspace | # Load data from workspace |
+| RooAbsData* data = w->data(datasetName) ; | data = w.data(datasetName) |
+| | |
+| if (!pdf || !data) return ; | if pdf is None or data is None: return None |
+| pdf->fitTo(*data) ; | pdf.fitTo(data) |
+| } | |
+|.. image:: http://swanserver.web.cern.ch/swanserver/images/badge_swan_white_150.png |.. image:: http://swanserver.web.cern.ch/ |
+| :target: https://cern.ch/swanserver/cgi-bin/go/?projurl= | swanserver/images/badge_swan_white_150.png |
+| https://raw.githubusercontent.com/roofit-dev/ | :target: https://cern.ch/swanserver/cgi-bin/ |
+| RooStatsWorkbook/master/misc_notebooks/RooFitBasics.ipynb | go/?projurl=https://raw.githubusercontent.com |
+| :alt: ROOT C++ | /roofit-dev/RooStatsWorkbook/master/ |
+| | misc_notebooks/RooFitBasics.ipynb |
+| | :alt: pyROOT |
++----------------------------------------------------------------------------------------+------------------------------------------------------------+
+
+The example above is not completely universal, because it does not deal with ‘global observables’, this issue is
+explained further in later sections.
.. toctree::
:maxdepth: 1
diff --git a/docs/source/modelbuilding.rst b/docs/source/modelbuilding.rst
index 5e0626b..5c10dea 100644
--- a/docs/source/modelbuilding.rst
+++ b/docs/source/modelbuilding.rst
@@ -2,11 +2,9 @@
Tools for Model Building and Good Practices
*******************************************
-This section discusses the specific tools for recommended for common statistical tasks. In addition, the document identifies requirements that the tools need to meet regarding documentation, testing, deployment and other current short comings that will become goals/deliverables for the (ATLAS) statistics forum.
-
-The RooFit Philosophy
-=====================
+This section discusses the specific tools for recommended for building valid and robust statistical models. The RooFit pacakge is core to data modeling in ROOT.
+We begin with a discussion of the RooFit philosophy - we want a single language for all measurements: common tools & joint model building (other tools) followed by a description of the RooFit language basics, and the workspace. A series of tools for building & manipulating models built using RooFit as a foundation are described with some links and general usage. Finally a list of good practices are presented regarding issues such as modeling systematics, uncertainties, and model cleaning among others.
.. include:: docs-roofit1.rst
.. include:: docs-roofit3.rst
diff --git a/docs/source/statisticaltests.rst b/docs/source/statisticaltests.rst
index 24d6c76..dcf235c 100644
--- a/docs/source/statisticaltests.rst
+++ b/docs/source/statisticaltests.rst
@@ -219,7 +219,7 @@ in Figures binnedPdf.
.. |composite-model| raw:: html
-
+
While the histograms with simulated signal and background events effectively
describe a distribution, the statistical model for such a binned distribution
diff --git a/misc_notebooks/RooFitBasics.ipynb b/misc_notebooks/RooFitBasics.ipynb
new file mode 100644
index 0000000..422a434
--- /dev/null
+++ b/misc_notebooks/RooFitBasics.ipynb
@@ -0,0 +1,325 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001b[1mRooFit v3.60 -- Developed by Wouter Verkerke and David Kirkby\u001b[0m \n",
+ " Copyright (C) 2000-2013 NIKHEF, University of California & Stanford University\n",
+ " All rights reserved, please read http://roofit.sourceforge.net/license.txt\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "// Construct a Gaussian probability density model\n",
+ "RooRealVar x(\"x\",\"x\",0,-10,10) ;\n",
+ "RooRealVar mean(\"mean\",\"Mean of Gaussian\",0,-10,10) ;\n",
+ "RooRealVar width(\"width\",\"With of Gaussian\",3,0.1,10) ;\n",
+ "RooGaussian g(\"g\",\"Gaussian\",x, mean,width) ;\n",
+ "\n",
+ "// Construct a Poisson probability model\n",
+ "RooRealVar n(\"n\",\"Observed event cont\",0,0,100) ;\n",
+ "RooRealVar mu(\"mu\",\"Expected event count\",10,0,100) ;\n",
+ "RooPoisson p(\"p\",\"Poisson\",n, mu) ;"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization\n",
+ " **********\n",
+ " ** 1 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 2 **SET NOGRAD\n",
+ " **********\n",
+ " PARAMETER DEFINITIONS:\n",
+ " NO. NAME VALUE STEP SIZE LIMITS\n",
+ " 1 mean 0.00000e+00 2.00000e+00 -1.00000e+01 1.00000e+01\n",
+ " 2 width 3.00000e+00 9.90000e-01 1.00000e-01 1.00000e+01\n",
+ " **********\n",
+ " ** 3 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 4 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 5 **SET STR 1\n",
+ " **********\n",
+ " NOW USING STRATEGY 1: TRY TO BALANCE SPEED AGAINST RELIABILITY\n",
+ " **********\n",
+ " ** 6 **MIGRAD 1000 1\n",
+ " **********\n",
+ " FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.\n",
+ " START MIGRAD MINIMIZATION. STRATEGY 1. CONVERGENCE WHEN EDM .LT. 1.00e-03\n",
+ " FCN=25056.1 FROM MIGRAD STATUS=INITIATE 10 CALLS 11 TOTAL\n",
+ " EDM= unknown STRATEGY= 1 NO ERROR MATRIX \n",
+ " EXT PARAMETER CURRENT GUESS STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 0.00000e+00 2.00000e+00 2.01358e-01 -1.89633e+02\n",
+ " 2 width 3.00000e+00 9.90000e-01 2.22742e-01 1.78222e+02\n",
+ " ERR DEF= 0.5\n",
+ " MIGRAD MINIMIZATION HAS CONVERGED.\n",
+ " MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=CONVERGED 32 CALLS 33 TOTAL\n",
+ " EDM=7.27011e-08 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 3.27389e-04 3.36763e-03\n",
+ " 2 width 2.98094e+00 2.17308e-02 5.28118e-04 5.57540e-02\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 8.173e-07 \n",
+ " 8.173e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00126 1.000 0.001\n",
+ " 2 0.00126 0.001 1.000\n",
+ " **********\n",
+ " ** 7 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 8 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 9 **HESSE 1000\n",
+ " **********\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n1v8HPLq7iZBZ+A4AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM HESSE STATUS=OK 10 CALLS 43 TOTAL\n",
+ " EDM=7.27522e-08 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER INTERNAL INTERNAL \n",
+ " NO. NAME VALUE ERROR STEP SIZE VALUE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 6.54778e-05 1.72335e-03\n",
+ " 2 width 2.98094e+00 2.17307e-02 2.11247e-05 -4.31233e-01\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 3.819e-07 \n",
+ " 3.819e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00059 1.000 0.001\n",
+ " 2 0.00059 0.001 1.000\n",
+ "[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization\n"
+ ]
+ }
+ ],
+ "source": [
+ "TCanvas* c1 = new TCanvas();\n",
+ "// generate unbnined dataset of 10k events\n",
+ "RooDataSet* toyData = g.generate(x,10000) ;\n",
+ "\n",
+ "// Perform unbinned ML fit to toy data\n",
+ "g.fitTo(*toyData) ;\n",
+ "\n",
+ "// Plot toy data and pdf in observable x\n",
+ "RooPlot* frame = x.frame() ;\n",
+ "toyData->plotOn(frame) ;\n",
+ "g.plotOn(frame) ;\n",
+ "frame->Draw() ;\n",
+ "c1->Draw() ;"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Info in : png file ../docs/source/docs-fig01.png has been created\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1->SaveAs(\"../docs/source/docs-fig01.png\");"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " **********\n",
+ " ** 10 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 11 **SET NOGRAD\n",
+ " **********\n",
+ " PARAMETER DEFINITIONS:\n",
+ " NO. NAME VALUE STEP SIZE LIMITS\n",
+ " 1 mean 1.72335e-02 2.99542e-02 -1.00000e+01 1.00000e+01\n",
+ " 2 width 2.98094e+00 2.17307e-02 1.00000e-01 1.00000e+01\n",
+ " **********\n",
+ " ** 12 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 13 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 14 **SET STR 1\n",
+ " **********\n",
+ " NOW USING STRATEGY 1: TRY TO BALANCE SPEED AGAINST RELIABILITY\n",
+ " **********\n",
+ " ** 15 **MIGRAD 1000 1\n",
+ " **********\n",
+ " FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.\n",
+ " START MIGRAD MINIMIZATION. STRATEGY 1. CONVERGENCE WHEN EDM .LT. 1.00e-03\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=INITIATE 4 CALLS 5 TOTAL\n",
+ " EDM= unknown STRATEGY= 1 NO ERROR MATRIX \n",
+ " EXT PARAMETER CURRENT GUESS STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 2.99543e-03 3.35475e-03\n",
+ " 2 width 2.98094e+00 2.17307e-02 4.83249e-03 4.19125e-02\n",
+ " ERR DEF= 0.5\n",
+ " MIGRAD MINIMIZATION HAS CONVERGED.\n",
+ " MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=CONVERGED 23 CALLS 24 TOTAL\n",
+ " EDM=1.62928e-11 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72331e-02 2.99541e-02 3.27416e-04 -1.05623e-03\n",
+ " 2 width 2.98094e+00 2.17306e-02 5.28215e-04 -5.17873e-04\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 8.172e-07 \n",
+ " 8.172e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00126 1.000 0.001\n",
+ " 2 0.00126 0.001 1.000\n",
+ " **********\n",
+ " ** 16 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 17 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 18 **HESSE 1000\n",
+ " **********\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM HESSE STATUS=OK 12 CALLS 36 TOTAL\n",
+ " EDM=1.00298e-11 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER INTERNAL INTERNAL \n",
+ " NO. NAME VALUE ERROR STEP SIZE VALUE \n",
+ " 1 mean 1.72331e-02 2.99541e-02 6.54833e-05 1.72331e-03\n",
+ " 2 width 2.98094e+00 2.17306e-02 1.05643e-04 -4.31234e-01\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 3.818e-07 \n",
+ " 3.818e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00059 1.000 0.001\n",
+ " 2 0.00059 0.001 1.000\n",
+ "RooRealVar::mean = 0.0172331 +/- 0.0299541 L(-10 - 10) \n",
+ "RooRealVar::width = 2.98094 +/- 0.0217306 L(0.1 - 10) \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "// Create Likelihood function L(x|mu,sigma) for all x in toy data\n",
+ "RooAbsReal* nll = g.createNLL(*toyData) ;\n",
+ "\n",
+ "// ML estimation of model parameters mean,width\n",
+ "RooMinimizer m(*nll) ;\n",
+ "m.migrad() ; // Minimization\n",
+ "m.hesse() ; // Hessian error analysis\n",
+ "\n",
+ "// Result of minimisation and error analysis is propagated to variabel objects representing model parameters\n",
+ "mean.Print() ;\n",
+ "width.Print() ;\n",
+ "\n",
+ "// Visualize likelihood L(mu, sigma) at sigma = sigma_hat in range 2.9plotOn(frame2) ;\n",
+ "frame2->Draw() ;\n",
+ "c1->Draw()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Info in : png file ../docs/source/docs-fig02.png has been created\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1->SaveAs(\"../docs/source/docs-fig02.png\");"
+ ]
+ }
+ ],
+ "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": 2
+}
diff --git a/misc_notebooks/RooFitBasics_PY.ipynb b/misc_notebooks/RooFitBasics_PY.ipynb
new file mode 100644
index 0000000..0b6bd72
--- /dev/null
+++ b/misc_notebooks/RooFitBasics_PY.ipynb
@@ -0,0 +1,345 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Welcome to JupyROOT 6.12/06\n"
+ ]
+ }
+ ],
+ "source": [
+ "import ROOT"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001b[1mRooFit v3.60 -- Developed by Wouter Verkerke and David Kirkby\u001b[0m \n",
+ " Copyright (C) 2000-2013 NIKHEF, University of California & Stanford University\n",
+ " All rights reserved, please read http://roofit.sourceforge.net/license.txt\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Construct a Gaussian probability density model\n",
+ "x = ROOT.RooRealVar(\"x\",\"x\",0,-10,10)\n",
+ "mean = ROOT.RooRealVar(\"mean\",\"Mean of Gaussian\",0,-10,10)\n",
+ "width = ROOT.RooRealVar(\"width\",\"With of Gaussian\",3,0.1,10)\n",
+ "g = ROOT.RooGaussian(\"g\",\"Gaussian\",x, mean,width)\n",
+ "\n",
+ "# Construct a Poisson probability model\n",
+ "n = ROOT.RooRealVar(\"n\",\"Observed event cont\",0,0,100)\n",
+ "mu = ROOT.RooRealVar(\"mu\",\"Expected event count\",10,0,100)\n",
+ "p = ROOT.RooPoisson(\"p\",\"Poisson\",n, mu)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[#1] INFO:Minization -- RooMinimizer::optimizeConst: activating const optimization\n",
+ " **********\n",
+ " ** 1 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 2 **SET NOGRAD\n",
+ " **********\n",
+ " PARAMETER DEFINITIONS:\n",
+ " NO. NAME VALUE STEP SIZE LIMITS\n",
+ " 1 mean 0.00000e+00 2.00000e+00 -1.00000e+01 1.00000e+01\n",
+ " 2 width 3.00000e+00 9.90000e-01 1.00000e-01 1.00000e+01\n",
+ " **********\n",
+ " ** 3 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 4 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 5 **SET STR 1\n",
+ " **********\n",
+ " NOW USING STRATEGY 1: TRY TO BALANCE SPEED AGAINST RELIABILITY\n",
+ " **********\n",
+ " ** 6 **MIGRAD 1000 1\n",
+ " **********\n",
+ " FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.\n",
+ " START MIGRAD MINIMIZATION. STRATEGY 1. CONVERGENCE WHEN EDM .LT. 1.00e-03\n",
+ " FCN=25056.1 FROM MIGRAD STATUS=INITIATE 10 CALLS 11 TOTAL\n",
+ " EDM= unknown STRATEGY= 1 NO ERROR MATRIX \n",
+ " EXT PARAMETER CURRENT GUESS STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 0.00000e+00 2.00000e+00 2.01358e-01 -1.89633e+02\n",
+ " 2 width 3.00000e+00 9.90000e-01 2.22742e-01 1.78222e+02\n",
+ " ERR DEF= 0.5\n",
+ " MIGRAD MINIMIZATION HAS CONVERGED.\n",
+ " MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=CONVERGED 32 CALLS 33 TOTAL\n",
+ " EDM=7.27011e-08 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 3.27389e-04 3.36763e-03\n",
+ " 2 width 2.98094e+00 2.17308e-02 5.28118e-04 5.57540e-02\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 8.173e-07 \n",
+ " 8.173e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00126 1.000 0.001\n",
+ " 2 0.00126 0.001 1.000\n",
+ " **********\n",
+ " ** 7 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 8 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 9 **HESSE 1000\n",
+ " **********\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM HESSE STATUS=OK 10 CALLS 43 TOTAL\n",
+ " EDM=7.27522e-08 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER INTERNAL INTERNAL \n",
+ " NO. NAME VALUE ERROR STEP SIZE VALUE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 6.54778e-05 1.72335e-03\n",
+ " 2 width 2.98094e+00 2.17307e-02 2.11247e-05 -4.31233e-01\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 3.819e-07 \n",
+ " 3.819e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00059 1.000 0.001\n",
+ " 2 0.00059 0.001 1.000\n",
+ "[#1] INFO:Minization -- RooMinimizer::optimizeConst: deactivating const optimization\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n1v8HPLq7iZBZ+A4AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "c1 = ROOT.TCanvas()\n",
+ "# generate unbnined dataset of 10k events\n",
+ "toyData = g.generate(ROOT.RooArgSet(x),10000)\n",
+ "\n",
+ "# Perform unbinned ML fit to toy data\n",
+ "g.fitTo(toyData)\n",
+ "\n",
+ "# Plot toy data and pdf in observable x\n",
+ "frame = x.frame()\n",
+ "toyData.plotOn(frame)\n",
+ "g.plotOn(frame)\n",
+ "frame.Draw()\n",
+ "c1.Draw()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Info in : png file ../docs/source/docs-fig02.png has been created\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1.SaveAs(\"../docs/source/docs-fig02.png\");"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " **********\n",
+ " ** 10 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 11 **SET NOGRAD\n",
+ " **********\n",
+ " PARAMETER DEFINITIONS:\n",
+ " NO. NAME VALUE STEP SIZE LIMITS\n",
+ " 1 mean 1.72335e-02 2.99542e-02 -1.00000e+01 1.00000e+01\n",
+ " 2 width 2.98094e+00 2.17307e-02 1.00000e-01 1.00000e+01\n",
+ " **********\n",
+ " ** 12 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 13 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 14 **SET STR 1\n",
+ " **********\n",
+ " NOW USING STRATEGY 1: TRY TO BALANCE SPEED AGAINST RELIABILITY\n",
+ " **********\n",
+ " ** 15 **MIGRAD 1000 1\n",
+ " **********\n",
+ " FIRST CALL TO USER FUNCTION AT NEW START POINT, WITH IFLAG=4.\n",
+ " START MIGRAD MINIMIZATION. STRATEGY 1. CONVERGENCE WHEN EDM .LT. 1.00e-03\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=INITIATE 4 CALLS 5 TOTAL\n",
+ " EDM= unknown STRATEGY= 1 NO ERROR MATRIX \n",
+ " EXT PARAMETER CURRENT GUESS STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72335e-02 2.99542e-02 2.99543e-03 3.35475e-03\n",
+ " 2 width 2.98094e+00 2.17307e-02 4.83249e-03 4.19125e-02\n",
+ " ERR DEF= 0.5\n",
+ " MIGRAD MINIMIZATION HAS CONVERGED.\n",
+ " MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM MIGRAD STATUS=CONVERGED 23 CALLS 24 TOTAL\n",
+ " EDM=1.62928e-11 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER STEP FIRST \n",
+ " NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
+ " 1 mean 1.72331e-02 2.99541e-02 3.27416e-04 -1.05623e-03\n",
+ " 2 width 2.98094e+00 2.17306e-02 5.28215e-04 -5.17873e-04\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 8.172e-07 \n",
+ " 8.172e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00126 1.000 0.001\n",
+ " 2 0.00126 0.001 1.000\n",
+ " **********\n",
+ " ** 16 **SET ERR 0.5\n",
+ " **********\n",
+ " **********\n",
+ " ** 17 **SET PRINT 1\n",
+ " **********\n",
+ " **********\n",
+ " ** 18 **HESSE 1000\n",
+ " **********\n",
+ " COVARIANCE MATRIX CALCULATED SUCCESSFULLY\n",
+ " FCN=25055.6 FROM HESSE STATUS=OK 12 CALLS 36 TOTAL\n",
+ " EDM=1.00298e-11 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
+ " EXT PARAMETER INTERNAL INTERNAL \n",
+ " NO. NAME VALUE ERROR STEP SIZE VALUE \n",
+ " 1 mean 1.72331e-02 2.99541e-02 6.54833e-05 1.72331e-03\n",
+ " 2 width 2.98094e+00 2.17306e-02 1.05643e-04 -4.31234e-01\n",
+ " ERR DEF= 0.5\n",
+ " EXTERNAL ERROR MATRIX. NDIM= 25 NPAR= 2 ERR DEF=0.5\n",
+ " 8.973e-04 3.818e-07 \n",
+ " 3.818e-07 4.722e-04 \n",
+ " PARAMETER CORRELATION COEFFICIENTS \n",
+ " NO. GLOBAL 1 2\n",
+ " 1 0.00059 1.000 0.001\n",
+ " 2 0.00059 0.001 1.000\n",
+ "RooRealVar::mean = 0.0172331 +/- 0.0299541 L(-10 - 10) \n",
+ "RooRealVar::width = 2.98094 +/- 0.0217306 L(0.1 - 10) \n"
+ ]
+ }
+ ],
+ "source": [
+ "# Create Likelihood function L(x|mu,sigma) for all x in toy data\n",
+ "nll = g.createNLL(toyData)\n",
+ "\n",
+ "# ML estimation of model parameters mean,width\n",
+ "m = ROOT.RooMinimizer(nll)\n",
+ "m.migrad() # Minimization\n",
+ "m.hesse() # Hessian error analysis\n",
+ "\n",
+ "# Result of minimisation and error analysis is propagated to variabel objects representing model parameters\n",
+ "mean.Print()\n",
+ "width.Print()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "c1.Clear()\n",
+ "# Visualize likelihood L(mu, sigma) at sigma = sigma_hat in range 2.9: png file ../docs/source/docs-fig02.png has been created\n"
+ ]
+ }
+ ],
+ "source": [
+ "c1.SaveAs(\"../docs/source/docs-fig02.png\");"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}