What is ROOT?

The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data. Included are histograming methods in an arbitrary number of dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode, as well as a general parallel processing framework, PROOF, that can considerably speed up an analysis.

Thanks to the built-in CINT C++ interpreter the command language, the scripting, or macro, language and the programming language are all C++. The interpreter allows for fast prototyping of the macros since it removes the, time consuming, compile/link cycle. It also provides a good environment to learn C++. If more performance is needed the interactively developed macros can be compiled using a C++ compiler via a machine independent transparent compiler interface called ACliC.

The system has been designed in such a way that it can query its databases in parallel on clusters of workstations or many-core machines. ROOT is an open system that can be dynamically extended by linking external libraries. This makes ROOT a premier platform on which to build data acquisition, simulation and data analysis systems.

ROOT is available under the LGPL license.


Having had many years of experience in developing the interactive data analysis systems PAW and PIAF and the simulation package GEANT, Rene Brun and Fons Rademakers, realized that the growth and maintainability of these products, written in FORTRAN and using some 20 year old libraries, had reached its limits. Although still very popular, these systems do not scale up to the challenges offered by the LHC, where the amount of data to be simulated and analyzed is a few orders of magnitude larger than anything seen before.

It became time to re-think the approach to large scale data analysis and simulation and at the same time to profit from the progress made in computer science over the past 15 to 20 years. Especially in the area of Object-Oriented design and development. Thus was born ROOT.

The ROOT project was started in the context of the NA49 experiment at CERN. NA49 generates an impressive amount of data, about 10 Terabytes of raw data per run. This data rate is of the same order of magnitude as the rates expected to be recorded by the LHC experiments. Therefore, NA49 was the ideal environment to develop and test the next generation data analysis tools and to study the problems related to the organization and analysis of such large amounts of data.

ROOT provides a basic framework that offers a common set of features and tools for all domains of High Energy Physics computing.

In 2002 ROOT became an official project within the Physics Department at CERN. Thanks to the manpower injected in the project by CERN and also by FNAL, ROOT could gradually be extended in many directions to become the cornerstone of most HEP software systems today, covering many areas of HEP computing, like analysis, simulation, reconstruction, event display and DAQ.

Besides in High Energy Physics ROOT is also widely used in many other scientific fields, like astronomy and biology but also in finance and medicine.

ROOT is an ideal environment to introduce physicists quickly to the world of Objects and C++.