Make combine v9.1.0 the default, customize workspace performance flags

Marcel Rieger requested to merge feature/combine910 into master

This PR contains two things:

  • It makes combine v9.1.0 the default version as it is the recommended version since recently.
  • Certain flags added to the workspace creation for performance reasons are optional now. More details below.

Details on performance flags

CreateWorkspace is running with 5 flags that increase the performance of limit and likelihood computations:

--optimize-simpdf-constraints cms, --X-pack-asympows, --X-optimizeMHDependency fixed, --use-histsum, and --no-wrappers`.


  • There are two things that make the limits fast: --optimize-simpdf-constraints cms and --use-histsum --no-wrappers. Each of them accounts for about 50% of the performance boost.
  • There is no issue with --optimize-simpdf-constraints cms whatsoever, so it should be always safe to use that one.
  • --use-histsum and --no-wrappers always have to be used together. When used alone, each of them leads to failures (either already in or Segfaults in combine).
  • --X-optimizeMHDependency fixed only works when both --use-histsum and --no-wrappers are enabled, but it doesn't increase the performance on top of these two any further.
  • --X-pack-asympows works when used alone, but not when --optimize-simpdf-constraints cms is enabled, unless --use-histsum is set.
  • But most importantly: when --use-histsum --no-wrappers is set, the result of FitDiagnostics is unusable as it's missing all per-channel info and postfit histograms are collapsed to single bins.


  • We can safely add --optimize-simpdf-constraints cms. It makes things faster and doesn't break anything.
  • Per default, none any of the other flags should be enabled as users will run into issues with FitDiagnostics, which they will most likely always need.
  • However, there is an --optimize-limits flag in CreateWorkspace now that adds the additional four flags.
  • In the combination, we can always set this flag to True by default. This can also be done conveniently with an env variable DHI_WORKSPACE_OPTIMIZE_LIMITS=1 so that nothing changes for the workflows there.
  • One should just keep in mind that FitDiagnostics won't work and in case it's needed, one needs to have a second set of workspaces created with --optimize-limits False.

Merge request reports