-
Notifications
You must be signed in to change notification settings - Fork 18
Post processing
The postprocessing is done based on HarryPlotter. You can find a nice tutorial on this wiki, here. A general HarryPlotter command looks like this:
higgsplot.py [--plot-modules PlotRootHtt] [-h] ...
HarryPlotter does not only offer the possibility to create plots but also centralises the functions to read in (and scale/re-weight) histograms from Artus (or any other) outputs. It can also write out ROOT histograms for further processing.
All pipelines are listed by the script artusPipelines.py:
artusPipelines.py <ROOT file|JSON config>
They usually correspond to possible folders in HarryPlotter. The possible quantities and modules are printed using higgsplot.py:
higgsplot.py -i <ROOT file> -f <pipeline>[/<ntuple name>] --quantities
higgsplot.py --list-available-modules
The modules have to be registered centrally in case they are not located in the usual places (python/plotting or (Artus/HarryPlotter/python).
Sets of plots are created by the scripts
makePlots_*.py [-h]
Example for control plots:
makePlots_controlPlots.py -i <Artus project directory>/[merged|output]
It is recommended to produce sets of plots following the structure in these scripts.
The standard tool used for statistical inference everywhere in CMS is called "combine".
Inputs for combine are created by the plotting script makePlots_limitInputs.py using the --plot-modules ExportRoot
:
makePlots_limitInputs.py -i <Artus project directory>/[merged|output] [-o <limit inputs>.root]
Prefit plots are created by makePlots_limitInputsPrefitPlots.py:
makePlots_limitInputsPrefitPlots.py -i <limit inputs>.root
Datacards are created by SMLegacyDatacards.cc or SMDatacards.cc:
SMLegacyDatacards [--help]
SMDatacards [--help]
These tools are based on CombineHarvester/CombineTools and require scram b
after changes. Migration to Python is possible but not done yet. These scripts provide the configuration for the datacards.
The statistics tools (e.g. combine) of the HiggsToTauTau repository are then applied on the datacards. Take sm-protocol.txt as a starting point.
Postfit (and prefit) plots are created by makePlots_datacardsPostfitPlots.py after the max-likelihood fit has been run:
makePlots_datacardsPostfitPlots.py -d <datacards> [-f <ml fit results>] [-m 125]
JSON configurations for further plots can be found in plots/configs/combine.