Skip to content
/ ostap Public

User friendly and more intuitive interface to ROOT and PyROOT

License

Notifications You must be signed in to change notification settings

OstapHEP/ostap

Repository files navigation

Ostap Project

ostap Coverage Status Build Status pipeline status Join the chat at https://gitter.im/OstapHEP/ostap DOI Anaconda-Server Badge

Nowadays ROOT and PyROOT are de-facto standard tools for performing physics analysis. The Ostap project is a community-driven initiative aiming to provide more user friendly and more intuitive interface to ROOT and PyROOT and extending the existing functionality.

Project started in 2009 from the private collections of python functions used in Kali - framework for calibration of LHCb electromagnetic calorimeter. A lot of functionality is picked from Bender project - python based physics analysis environment used in LHCb experiemnt. Till Autumn 2016 the project was a part of LHCb software suit and with great success has been used for preparation of approximately 60 physics papers. A standalone, LHCb independent version, has appeared at start of 2017

Key features include:

  • Very easy manipulations with ROOT and RooFit objects: histograms, trees, datasets, etc
  • Very easy interface to RooFit machinery
  • Extended set of models.PDFs for RooFit
  • Powerful, pickle-based persistency for object
  • Interactive ostap analysis environment

Dependencies

  • mandatory: ROOT version <6.22 or >=6.24, RooFit
  • highly desirable: numpy
    • mandatory for Fast Fourier Transform, used in histogram/function parameterization;
    • optional for some other issues, in particular for the prime number treatment;
  • optional: scipy
    • numerical integration (quadratures, cubatures), root finding, minimization;
    • ostap offers home-made replacements, but the native methods from scipy are more efficient;
  • optional: pathos, dill, multiprocess and ppt
    • needed for parallel processing;
    • ostap offers a multiprocessing-based replacement with reduced functionality;
  • optional: terminaltables
    • nice format of tables - in particular for nice printout for TTree, TChain, RooDataSet, ... ;
    • ostap offers a home-made replacement with a bit reduced functionalty.
  • desirable: [more_itertoos]
    • chunked stuff is used in parallelization for spliting jobs into chunks
    • ostap offers a home-made replacement
  • optional (only for python3, 3.6<=version ) : berkeleydb
    • python interface to Berkeley DB (libdb needs to be installed!)
  • optional (only for python3, 3.3<=version<3.10 ) : bsddb3
    • python interface to Berkeley DB (libdb needs to be installed!)

Setup

There are several possibilities to start working with Ostap, you can build Ostap on the Linux or lxplus/7, run the docker container and now the Ostap is available on conda and SWAN.

The possible setup options are described here