CombineHarvester May 2015 Updates
ajgilbert
released this
30 May 15:54
·
148 commits
to master
since this release
Interface-breaking changes
CombineHarvester::ExtractPdfs
andCombineHarvester::AddWorkspace
arguments have changed (e9b672a) as part of a larger re-write of the RooFit workspace, pdf and parameter import code (see below). See the new arguments here.- The functions
ParseTable
andScaleProcessRate
used for scaling processes to the SM cross sections have been removed in favour of a simpler workflow using a newTGraphFromTable
function that is also usable in python. SeeCombineTools/test/SMLegacyExample.cpp
for the new usage.
New features
- Now possible to add systematics in the python interface (aa72444). Interface is similar to the C++ version, see docs here for details.
- With this, and a few other changes, the python interface is now mostly feature-complete. A version of SMLegacyExample.cpp is available as a python script in CombineTools/scripts/SMLegacyExample.py.
- Moved bin-by-bin and merging code to a standalone class: ch::BinByBinFactory, to make it easier to extend in the future without having to mess around with CombineHarvester internals (fea10a7). Existing class methods will be removed in the future.
- New CopyTools.h provides functions for cloning processes and systematics (e07aac2). Also available in the python interface.
- Function
ch::ParseCombineWorkspace
can populate a CombineHarvester instance directly from a combine workspace (1ef74e5). - Added CombineHarvester methods to insert new objects directly (41f7fce)
InsertObservation
,InsertProcess
andInsertSystematic
make a copy of the supplied object and adds it to the appropriate collection. The main purpose of the these functions is for building high-level tools such as BinByBinFactory that can create new entries.
- Can now parse (and then write) datacards containing
param
lines that give a fixed parameter range (19d8499) - Better support for importing multiple workspaces with the same name, e.g. in the hzz cards (eb8b964, e9b672a).
AddWorkspace
now has an optional second argument,bool can_rename
that allows CombineHarvester to rename the workspace on-the-fly if another with the same name has already been imported.
Bug fixes
- Internal RooFit parameter<->pdf mapping was broken when the data and pdf were in separate workspaces, causing a large memory leak. This is now fixed by avoiding the RooAbsPdf::getParameters method (19d8499)
CombineHarvester::ParseDatacard
is now smarter about opening the input root files, making it less likely to run into os limits on the number of open files (e9b672a)