ROOT
ROOT is an object-oriented computer program and library developed by CERN. It was originally designed for particle physics data analysis and contains several features specific to the field, but it is also used in other applications such as astronomy and data mining. The latest minor release is 6.34, as of 2025-04-08.
Description
CERN maintained the CERN Program Library written in FORTRAN for many years. Its development and maintenance were discontinued in 2003 in favour of ROOT, which is written in the C++ programming language.ROOT development was initiated by René Brun and Fons Rademakers in 1994. Some parts are published under the GNU Lesser General Public License and others are based on GNU General Public License software, and are thus also published under the terms of the GPL. It provides platform independent access to a computer's graphics subsystem and operating system using abstract layers. Parts of the abstract platform are: a graphical user interface and a GUI builder, container classes, reflection, a C++ script and command line interpreter, object serialization and persistence.
The packages provided by ROOT include those for
- Histogramming and graphing to view and analyze distributions and functions,
- curve fitting and minimization of functionals,
- statistics tools used for data analysis,
- matrix algebra,
- four-vector computations, as used in high energy physics,
- standard mathematical functions,
- multivariate data analysis, e.g. using neural networks,
- image manipulation, used, for instance, to analyze astronomical pictures,
- access to distributed data,
- distributed computing, to parallelize data analyses,
- persistence and serialization of objects, which can cope with changes in class definitions of persistent data,
- access to databases,
- 3D visualizations,
- creating files in various graphics formats, like PDF, PostScript, PNG, SVG, LaTeX, etc.
- interfacing Python code in both directions,
- interfacing Monte Carlo event generators.
ROOT is designed for high computing efficiency, as it is required to process data from the Large Hadron Collider's experiments estimated at several petabytes per year. ROOT is mainly used in data analysis and data acquisition in particle physics experiments, and most experimental plots and results in those subfields are obtained using ROOT.
The inclusion of a C++ interpreter makes this package very versatile as it can be used in interactive, scripted and compiled modes in a manner similar to commercial products like MATLAB.
On July 4, 2012, the ATLAS and CMS LHC's experiments presented the status of the Standard Model Higgs search. .
Applications
Several particle physics collaborations have written software based on ROOT, often in favor of using more generic solutions.- Some of the running particle physics experiments using software based on ROOT
- * ALICE
- * ATLAS
- * BaBar experiment
- * Belle Experiment
- * Belle II experiment
- * BES III
- * CB-ELSA/TAPS
- * CMS
- * COMPASS experiment
- * CUORE
- * D0 experiment
- * GlueX Experiment
- * GRAPES-3
- * H1 (particle detector) at HERA collider at DESY, Hamburg
- * LHCb
- * MINERνA
- * MINOS
- * NA61 experiment
- * NOνA
- * OPERA experiment
- * PHENIX detector
- * PHOBOS experiment at Relativistic Heavy Ion Collider
- * SNO+
- * STAR detector
- * T2K experiment
- Future particle physics experiments currently developing software based on ROOT
- * Mu2e
- * Compressed Baryonic Matter experiment
- * PANDA experiment
- * Deep Underground Neutrino Experiment
- * Hyper-Kamiokande
- Astrophysics projects using ROOT
- *AGILE
- * Alpha Magnetic Spectrometer
- * Antarctic Impulse Transient Antenna
- * ANTARES neutrino detector
- * CRESST (Dark Matter Search)
- * DMTPC
- * DEAP-3600/Cryogenic Low-Energy Astrophysics with Neon
- * Fermi Gamma-ray Space Telescope
- * ICECUBE
- * HAWC
- * High Energy Stereoscopic System
- * Hitomi
- * MAGIC
- * Milagro
- * Pierre Auger Observatory
- * VERITAS
- * PAMELA
- * POLAR
- * PoGOLite