File: CombineTools/test/PostFitShapesFromWorkspace.cpp
The program PostFitShapesFromWorkspace
is used to dump a set of pre- and post-fit distributions from a datacard. There is no need to specify which categories or processes to extract, this will be done automatically and so should work for any shape-based analysis. The effect of all normalisation and shape uncertainties is evaluated. In addition, there is an option to calculate post-fit/pre-fit scale factors for each background and the total background uncertainty in each category. This numbers can then be used as input for producing post-fit control distributions.
The following options are available:
Configuration: -w [ --workspace ] arg The input workspace-containing file [REQUIRED] --dataset arg (=data_obs) The input dataset name -d [ --datacard ] arg The input datacard, only used for rebinning -o [ --output ] arg Name of the output root file to create [REQUIRED] -f [ --fitresult ] arg Path to a RooFitResult, only needed for postfit -m [ --mass ] arg Signal mass point of the input datacard --postfit [=arg(=1)] (=0) Create post-fit histograms in addition to pre-fit --sampling [=arg(=1)] (=0) Use the cov. matrix sampling method for the post-fit uncertainty --samples arg (=500) Number of samples to make in each evaluate call --print [=arg(=1)] (=0) Print tables of background shifts and relative uncertainties --freeze arg Format PARAM1,PARAM2=X,PARAM3=Y where the values X and Y are optional --covariance [=arg(=1)] (=0) Save the covariance and correlation matrices of the process yields --skip-prefit [=arg(=1)] (=0) Skip the pre-fit evaluation --skip-proc-errs [=arg(=1)] (=0) Skip evaluation of errors on individual processes --total-shapes [=arg(=1)] (=0) Save signal- and background shapes added for all channels/categories --reverse-bins arg List of bins to reverse the order for Example usage: PostFitShapesFromWorkspace -d htt_mt_125.txt -w htt_mt_125.root -o htt_mt_125_shapes.root \ -m 125 -f mlfit.root:fit_s --postfit --sampling --print
--sampling
is not used by default, but you should probably use it if you are producing post-fit distributions. Without this the uncertainty will be calculated assuming no correlations between nuisance parameters - this would be extremely rare in an typical fit.The output root file will have the following directory structure:
output.root: bin_1_prefit/ TH1F data_obs TH1F process_1 TH1F process_2 ... TH1F process_i TH1F TotalBkg TH1F TotalSig bin_1_postfit/ TH1F data_obs TH1F process_1 TH1F process_2 ... TH1F process_i TH1F TotalBkg TH1F TotalSig ... bin_i_prefit/ ... bin_i_postfit/ ...