Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
ROOT
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Data analysis software}} {{About|the computing library developed by CERN|the part of a plant|Root|other uses|Root (disambiguation)}} {{Infobox software | name = ROOT | logo = ROOT Logo.png | logo_size = 297px | screenshot = CMS ROOT plot.png | caption = The CMS experiments presented on July 4, 2012, the status of the Standard Model Higgs search. All plots presented that day used ROOT. | developer = [[CERN]]<ref>{{Cite web|url=https://root.cern/about/team/|title=ROOT Team|website=root.cern|language=en|access-date=2022-02-10}}</ref> | latest_release_version = 6.32.12 | latest_release_date = {{Start date and age|2025|04|08}} | author = René Brun, Fons Rademakers <ref>{{Cite web|url=https://root.cern/about/project_founders/|title=Project Founders|website=root.cern|language=en|access-date=2019-06-19}}</ref> | programming language = [[C++]] | operating_system = [[Microsoft Windows]], [[OS X]], [[Linux]], [[Solaris (operating system)|Solaris]], [[IBM AIX]] | platform = [[IA-32]], [[x86-64]] | size = 86–327 [[Megabytes|MB]] | genre = [[Data analysis]], [[Plot (graphics)|Plotting]] | license = [[LGPL]]/[[GPL]] | website = {{URL|root.cern}} }} '''ROOT''' is an [[Object-oriented programming|object-oriented]] [[computer program]] and [[Library (computing)|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.<ref>{{Cite web |title=ROOT Version 6.34 Release Notes |url=https://root.cern/doc/v634/release-notes.html |access-date=2025-04-14 |website=root.cern |language=en}}</ref> == 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]] (LGPL) and others are based on [[GNU General Public License]] (GPL) 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 [[Abstraction (computer science)|abstract layers]]. Parts of the abstract platform are: a [[graphical user interface]] and a [[Graphical user interface builder|GUI builder]], container classes, [[Reflection (computer science)|reflection]], a C++ [[Scripting language|script]] and [[command line]] [[Interpreter (computing)|interpreter]] ([[CINT]] in version 5, [[Cling (command line interpreter)|cling]] in version 6), object [[serialization]] and [[Persistence (computer science)|persistence]]. The packages provided by ROOT include those for * [[Histogram]]ming and [[Graph of a function|graphing]] to view and analyze [[Distribution (mathematics)|distributions]] and [[Function (mathematics)|functions]], * [[curve fitting]] (regression analysis) and minimization of [[Functional (mathematics)|functionals]], * [[statistics]] tools used for [[data analysis]], * [[Matrix (mathematics)|matrix]] algebra, * [[four-vector]] computations, as used in [[high energy physics]], * standard [[Function (mathematics)|mathematical functions]], * [[Multivariate analysis|multivariate data analysis]], e.g. using [[Artificial neural network|neural networks]], * image manipulation, used, for instance, to analyze [[astronomical]] pictures, * access to distributed data (in the context of the [[Grid computing|Grid]]), * [[distributed computing]], to parallelize [[Data analysis|data analyses]], * [[Persistence (computer science)|persistence]] and [[serialization]] of objects, which can cope with changes in class definitions of persistent data, * access to [[databases]], * [[3D computer graphics|3D]] [[Visualization (graphic)|visualizations]] (geometry), * creating files in various graphics formats, like [[PDF]], [[PostScript]], [[Portable Network Graphics|PNG]], [[Scalable Vector Graphics|SVG]], [[LaTeX]], etc. * interfacing [[Python (programming language)|Python]] code in both directions, * interfacing [[Monte Carlo method|Monte Carlo]] [[event generator]]s. [[File:Atlas_ROOT_plot.png|thumb|The ATLAS experiments presented on 4 July 2012 the status of the Standard Model Higgs search. All the plots presented that day were created in ROOT.]] A key feature of ROOT is a data container called ''tree'', with its substructures ''branches'' and ''leaves''. A tree can be seen as a sliding window to the raw data, as stored in a file. Data from the next entry in the file can be retrieved by advancing the index in the tree. This avoids memory allocation problems associated with object creation, and allows the tree to act as a lightweight container while handling buffering invisibly. ROOT is designed for high [[Computer performance|computing efficiency]], as it is required to process data from the [[Large Hadron Collider]]'s experiments estimated at several [[petabyte]]s per year. {{As of|2009}} ROOT is mainly used in [[data analysis]] and [[data acquisition]] in [[particle physics]] (high energy physics) experiments, and most {{As of|2009|alt=current}} experimental plots and results in those subfields are obtained using ROOT. The inclusion of a C++ interpreter ([[CINT]] until version 5.34, Cling from version 6.00) 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. [https://root.cern/gallery/#higgs-plots All data plotting presented that day used ROOT]. ==Applications== Several particle physics collaborations have written software based on ROOT, often in favor of using more generic solutions (e.g. using ROOT containers instead of [[Standard Template Library|STL]]). * Some of the running particle physics experiments using software based on ROOT ** [[A Large Ion Collider Experiment|ALICE]] ** [[ATLAS experiment|ATLAS]] ** [[BaBar experiment]] ** [[Belle Experiment]] (an electron positron collider at KEK (Japan)) ** [[Belle II experiment]] (successor of the Belle experiment) ** [[BES III]] ** CB-ELSA/TAPS ** [[Compact Muon Solenoid|CMS]] ** [[COMPASS experiment]] (Common Muon and Proton Apparatus for Structure and Spectroscopy) ** [[CUORE]] (Cryogenic Underground Observatory for Rare Events) ** [[D0 experiment]] ** [[GlueX| GlueX Experiment]] ** [[GRAPES-3]] (Gamma Ray Astronomy PeV EnergieS) ** [[H1 (particle detector)]] at HERA collider at DESY, Hamburg ** [[LHCb]] ** [[MINERνA]] (Main Injector Experiment for ν-A) ** [[MINOS]] (Main injector neutrino oscillation search) ** [[NA61 experiment]] (SPS Heavy Ion and Neutrino Experiment) ** [[NOνA]] ** [[OPERA experiment]] ** [[PHENIX detector]] ** PHOBOS experiment at [[Relativistic Heavy Ion Collider]] ** [[SNO+]] ** [[STAR detector]] (Solenoidal Tracker at RHIC) ** [[T2K experiment]] * Future particle physics experiments currently developing software based on ROOT ** [[Mu2e]] ** Compressed Baryonic Matter experiment (CBM) ** [[PANDA experiment]] (antiProton Annihilation at Darmstadt (PANDA)) ** [[Deep Underground Neutrino Experiment]] (DUNE) ** [[Hyper-Kamiokande]] (HK (Japan)) * Astrophysics ([[X-ray astronomy|X-ray]] and [[Gamma ray astronomy|gamma-ray astronomy]], [[astroparticle physics]]) projects using ROOT **[[AGILE (satellite)|AGILE]] ** [[Alpha Magnetic Spectrometer]] (AMS) ** [[Antarctic Impulse Transient Antenna]] (ANITA) ** [[ANTARES (telescope)|ANTARES neutrino detector]] ** [[Cryogenic Rare Event Search with Superconducting Thermometers|CRESST (Dark Matter Search)]] ** [[Dark Matter Time Projection Chamber|DMTPC]] ** [[DEAP]]-3600/[[Cryogenic Low-Energy Astrophysics with Neon]](CLEAN) ** [[Fermi Gamma-ray Space Telescope]] ** [[IceCube Neutrino Detector|ICECUBE]] ** [[High Altitude Water Cherenkov Experiment|HAWC]] ** [[High Energy Stereoscopic System]] (H.E.S.S.) ** [[Hitomi (satellite)|Hitomi]] (ASTRO-H) ** [[MAGIC (telescope)|MAGIC]] ** [[Milagro (experiment)|Milagro]] ** [[Pierre Auger Observatory]] ** [[VERITAS]] ** [[Payload for Antimatter Matter Exploration and Light-nuclei Astrophysics|PAMELA]] ** POLAR ** [[PoGOLite]] == Criticisms == Criticisms of ROOT include its difficulty for beginners, as well as various aspects of its design and implementation. Frequent causes of frustration include extreme [[code bloat]], heavy use of global variables,<ref>{{cite web|url=http://insectnation.org/articles/problems-with-root.html|title=The problem with ROOT (a.k.a. The ROOT of all Evil)|last=Buckley|first=Andy|work=InsectNation|access-date=3 May 2016|date=2007-08-27}}</ref> and an overcomplicated class hierarchy. From time to time these issues are discussed on the ROOT users mailing list.<ref>{{cite web|url=http://root.cern.ch/root/roottalk/roottalk06/0763.html|title=Re: Wikipedia criticism about root|access-date=3 May 2016}}</ref><ref>{{cite web|url=http://root.cern.ch/root/roottalk/roottalk06/0782.html|title=RE: Re: Wikipedia criticism about root|access-date=3 May 2016}}</ref> While scientists dissatisfied with ROOT have in the past managed to work around its flaws,<ref>{{cite web|url=https://root.cern/about/|title=What is ROOT?|date=1 June 2009|access-date=3 May 2016}}</ref> some of the shortcomings are regularly addressed by the ROOT team. The CINT interpreter, for example, has been replaced by the Cling interpreter,<ref>{{cite web|url=https://root.cern/releases/release-60600/|title=ROOT Version 6.06 Release Notes|date=2 June 2015|access-date=3 May 2016}}</ref> and numerous bugs are fixed with every release. == See also == {{Portal|Free and open-source software}} * [[Matplotlib]] – a plotting and analysis system for [[Python (programming language)|Python]] * [[SciPy]] – a scientific data analysis system for [[Python (programming language)|Python]], based on the [[NumPy]] classes * [[Perl Data Language]] – a set of array programming extensions to the [[Perl]] programming language * [[HippoDraw]] – an alternative C++-based data analysis system * [[Java Analysis Studio]] – a Java-based AIDA-compliant data analysis system * [[R (programming language)|R programming language]] * [[AIDA (computing)]] – open interfaces and formats for particle physics data processing * [[Geant4]] – a platform for the simulation of the passage of particles through matter using Monte Carlo methods * [[Physics Analysis Workstation|PAW]] * [[IGOR Pro]] * [[Scientific Linux]] * [[Scientific computing]] * [[OpenDX]] * [[OpenScientist]] * [[CERN Program Library]] – legacy program library written in Fortran77, still available but not updated == References == {{Reflist}} == External links == {{Wikibooks|ROOT}} * [https://root.cern/ The ROOT System Home Page] * [https://root.cern/gallery Image galleries] * [https://root.cern/drupal/content/users-guide ROOT User's Guide] * [https://root.cern/doc/master/index.html ROOT Reference Guide] * [https://root-forum.cern.ch/ ROOT Forum] * [https://root.cern/manual/roofit/ The RooFit Toolkit for Data Modeling], an extension to ROOT to facilitate [[maximum likelihood]] fits * The [https://root.cern/manual/tmva/ Toolkit for Multivariate Data Analysis with ROOT (TMVA)] is a ROOT-integrated project providing a machine learning environment for the processing and evaluation of multivariate classification, both binary and multi class, and regression techniques targeting applications in high-energy physics ([http://tmva.sourceforge.net/ here] or [https://sourceforge.net/p/tmva/wiki/Home/ here]). [[Category:C++ libraries]] [[Category:Data analysis software]] [[Category:Data management software]] [[Category:Experimental particle physics]] [[Category:Free physics software]] [[Category:Free plotting software]] [[Category:Free science software]] [[Category:Free software programmed in C++]] [[Category:Numerical software]] [[Category:Physics software]] [[Category:Plotting software]] [[Category:CERN software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:As of
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)
Template:Wikibooks
(
edit
)