Jupyter notebooks preview is available here.
To run the tutorial, just click on:
- Fitting basics: Minmize a cost function using
scipy.optimize.minimize
- Fitting polynomials to points using
np.polyfit
- Fitting arbitrary functions to points using
scipy.optimize.curve_fit
- Template fits using
pyroofit
- Histogram template fits using
pyhf
- Hypothesis tests with
pyhf
If you want to use what you learned in the tutorial on your projects later, here are some examples how you can setup the nescessary software:
If you don't have anything setup and need both ROOT and the python packages, the easiest way is through Anaconda or Miniconda. After installing, create your environment using
conda env create -f environment.yml
and activate it via
conda activate HEPFittingTutorial
Most tutorials should run on top of the latest Belle II release which you can set up with
source ~/setup_belle2.sh
You can then install the additional packages used in this tutorial on top with
pip3 install --user pyroofit pyhf iminuit mplhep
You should then be able to run the examples in a jupyter notebook or in jupyter hub (on Jupyter hub, make sure you use the Belle II Kernel with the latest version).
Note: Some of the packages have stopped supporting python3.6
, so if you need the latest versions, maybe go for the Generic installation with conda, e.g install Miniconda into your home directory.
You can install the packages on top of the ROOT + python3.7 setup:
module load root/6.20.04_py3.7
To give newer versions of python packages you install as a user priority over the system environment, reset the PYTHONPATH
to just contain ROOT
export PYTHONPATH=/software/opt/bionic/x86_64/root/6.20.04_py3.7/lib
Then you can install what is used in the tutorial with
pip install --user --upgrade pyroofit pyhf iminuit mplhep
Then you should be able to run the examples in a jupyter notebook.
Thanks goes to these wonderful people (emoji key):
Nikolai Hartmann 💻 |
ThomasLueck 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!