Add 'Comparison tool'
parent
d9e06ae40c
commit
847ea8f546
84
Comparison-tool.md
Normal file
84
Comparison-tool.md
Normal file
@ -0,0 +1,84 @@
|
||||
# What is this tool good for
|
||||
When performing various checks, it is useful to compare distributions of two different distributions. An example would be a check of the sWeighted data compared to MC sample or checking that variable distributions for B+ agree with B-. This tool allows the user to run a script that takes as an input
|
||||
* data type (MC?, year, polarity,...)
|
||||
* variables to be compared
|
||||
* Selection status of the data (sWeighted, how sWeighted, after the MVA cut, ...)
|
||||
|
||||
The tool then plots the normalized distributions and their ratio. The `.eps` and `.root` files are saved.
|
||||
|
||||
# Code structure
|
||||
**Note that this tool was written when python2 was the default almost everywhere. Most functionalities are not rewritten to be compatible with python3.**
|
||||
|
||||
The code is executed using `compareUltimate.py`, where the commnads are parsed and the comparison is executed.
|
||||
|
||||
Helper functions that allow the user to quickly compare for instance different MC samples or MC to sWeighted data are defined in `compareUltimateSelection.py`.
|
||||
|
||||
The main body of this tool is in `compareUltimateSource.py`. In this file, the function `compareUltimate() `is defined.
|
||||
|
||||
Helper functions are defined in `Utils.py`.
|
||||
|
||||
The actuall plotting (creating of nice histograms and getting their path) is defined in `Plots.py`.
|
||||
|
||||
`LHCbStyle.py` is a one-to-one copy of `LHCbStyle.h`. This file defines a reasonable style for (black-and-white) "publication quality" ROOT plots. The default settings contain many features that are either not desirable for printing on white
|
||||
paper or impair the general readability of plots.
|
||||
|
||||
The constants used are defined in `Globals.py`. On top of this, the ranges for each variable are **hardcoded**. The file also contains lists of most used variables for each particle.
|
||||
|
||||
The paths for the input files are taken from the selection code in `getPathForPython.cc`. Note that the correct include of Paths.hpp is required for proper running of the code.
|
||||
|
||||
# Usage
|
||||
|
||||
## Prerequisities
|
||||
|
||||
First, we need to compile `getPathForPython.cc`. Before the first use, make sure the include of `Paths.hpp` has the correct path! The compilation is done using
|
||||
```
|
||||
g++ getPathForPython.cc `root-config --libs --cflags` -o getPathForPython
|
||||
```
|
||||
|
||||
## Plotting
|
||||
|
||||
The code is executed as
|
||||
```
|
||||
python compareUltimate.py -arguments
|
||||
```
|
||||
|
||||
For the arguments, look inside compareUltimate.py or print all the possible arguments by executing
|
||||
|
||||
```
|
||||
python compareUltimate.py -h
|
||||
```
|
||||
|
||||
|
||||
## LHCbStyle.py
|
||||
Simply add the line from LHCbStyle import LHCbStyle at the beginning of your root program (and make sure LHCbStyle.py is in a location accessible to the compiler). Then add the line lhcbStyle()somewhere at the beginning of your program.
|
||||
|
||||
|
||||
### Statistics and fit boxes:
|
||||
|
||||
"Decorative" items around the histogram are kept to a minimum. In particular there is no box with statistics or fit information.
|
||||
You can easily change this either by editing your private copy of this style file or by calls to "gStyle" in your macro. For example,
|
||||
```
|
||||
gStyle->SetOptFit(1011);
|
||||
```
|
||||
will add fit information.
|
||||
|
||||
### Font:
|
||||
|
||||
The font is chosen to be 62, i.e.helvetica-bold-r-normal with precision 2. Font is of course a matter of taste, but most people will probably agree that Helvetica bold gives close to optimal readibility in presentations. It appears to be the ROOT default, and since there are still some features in ROOT that simply won't respond to any font requests, it is the wise choice to avoid ugly font mixtures on the same plot... The precision of the font (2) is chosen in order to have a rotatable and scalable font. Be sure to use true-type fonts! I.e.`Unix.*.Root.UseTTFonts: true ` in your `.rootrc` file.
|
||||
|
||||
### "Landscape histograms"
|
||||
|
||||
The style here is designed for more or less quadratic plots. For very long histograms, adjustements are needed. For instance, for a canvas with 1x5 histograms:
|
||||
```
|
||||
TCanvas* c1 = new TCanvas("c1", "L0 muons", 600, 800);
|
||||
c1->Divide(1,5);
|
||||
```
|
||||
adaptions like the following will be needed:
|
||||
```
|
||||
gStyle->SetTickLength(0.05,"x");
|
||||
gStyle->SetTickLength(0.01,"y");
|
||||
gStyle->SetLabelSize(0.15,"x");
|
||||
gStyle->SetLabelSize(0.1,"y");
|
||||
gStyle->SetStatW(0.15);
|
||||
gStyle->SetStatH(0.5);
|
||||
```
|
Loading…
Reference in New Issue
Block a user