hist2workspace man page

hist2workspace — utility to create RooFit/RooStats workspace from histograms


hist2workspace [option] input.xml


hist2workspace is a utility to create RooFit/RooStats workspace from histograms


-standard_form default model, which creates an extended PDF that interpolates between RooHistFuncs.  This is much faster for models with many bins and uses significantly less memory.

-number_counting_form this was the original model in 5.28 (without patches). It uses a Poisson for each bin of the histogram.  This can become slow and memory intensive when there are many bins.

Prepare working area

The ROOT release ships with a script prepareHistFactory in the $ROOTSYS/bin directory that prepares a working area. It creates a results/, data/, and config/ directory. It also copies the HistFactorySchema.dtd and example XML files into the config/ directory.  Additionally, it copies a root file into the data/ directory for use with the examples.


This file is located in $ROOTSYS/etc/ specifies the XML schema. It is typically placed in the config/ directory of a working area together with the top-level XML file and the individual channel XML files. The user should not modify this file.
The HistFactorySchema.dtd is commented to specify exactly the meaning of the various options.

Top-Level XML File

(see for example $ROOTSYS/tutorials/histfactory/example.xml) This file is edited by the user.  It specifies
- A top level 'Combination' that is composed of:
   - several 'Channels', which are described in separate XML files.
   - several 'Measurements' (corresponding to a full fit of the model) each of which specifies
     - a name for this measurement to be used in tables and files
     - what is the luminosity associated to the measurement in picobarns
     - which bins of the histogram should be used
     - what is the relative uncertainty on the luminosity
     - what is (are) the parameter(s) of interest that will be measured
     - which parameters should be fixed/floating (eg. nuisance parameters)
     - which type of constriants are desired
  - Gaussian by default
  - Gamma, LogNormal, and Uniform are also supported
     - if the tool should export the model only and skip the default fit

Channel XML Files

(see for example $ROOTSYS/tutorials/histfactory/example_channel.xml) This file is edited by the user.  It specifies for each channel
- observed data
  - if absent the tool will use the expectation, which is useful for expected sensitivity
- several 'Samples' (eg. signal, bkg1, bkg2, ...), each of which has:
  - a name
  - if the sample is normalized by theory (eg N = L*sigma) or not (eg. data driven)
  - a nominal expectation histogram
  - a named 'Normalization Factor' (which can be fixed or allowed to float in a fit)
  - several 'Overall Systematics' in normalization with:
    - a name
    - +/- 1 sigma variations (eg. 1.05 and 0.95 for a 5% uncertainty)
  - several 'Histogram Systematics' in shape with:
    - a name (which can be shared with the OverallSyst if correlated)
    - +/- 1 sigma variational histograms

Original Authors

Kyle Cranmer , Akira Shibata , and Dominique Tardif


DEC. 2010