Root
Encyclopedia : R : RO : ROO : Root
- For other uses of "root", see root (disambiguation).
ROOT is an object oriented large scale data analysis and data mining package developed at CERN to replace earlier packages (which include PAW and CERNLIB). It is being developed for the analysis of particle physics data, and contains several features specific to that task, but can be equally well used for data analysis in other fields.
Description
It was initiated by René Brun and Fons Rademakers in 1994. ROOT is written in C++, and published under the LGPL. 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, container classes, reflection, a C++ script and command line interpreter (CINT), object serialization and persistence.The packages provided by ROOT include those for
- histogramming and graphing to visualize and analyze distributions and functions,
- curve fitting (regression analysis) 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 e.g. to analyze astronomical pictures,
- access to distributed data (in the context of the Grid),
- 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 (geometry)
- creating files in various graphics formats, like PostScript, JPEG, SVG,
- interfacing Python and Ruby code in both directions,
- interfacing Monte Carlo event generators.
ROOT's focus on performance is caused by the amount of data that the Large Hadron Collider's experiments will collect, estimated to several petabytes per year. Physicists are expected to analyze this data using ROOT. ROOT is currently mainly used in data analysis and data acquisition in high energy physics experiments — most current experimental plots and results are obtained using ROOT.
Criticisms
ROOT has been criticised by some, claiming it has a monolithic design, a tendency to re-invent existing technologies, a too strong reliance on the CINT interpreter, and poor use of object-oriented programming methods, including OO antipatterns. In attempting to provide all the functionality required by any data analysis task through a single interface, ROOT has attracted "no silver bullet" criticisms. Many of ROOT's fundamental design elements, such as global state, STL-incompatibility and aggressive single-owner based memory management, can make integration of ROOT functionality with stand-alone code difficult.
However, ROOT undoubtedly has a large user community which on the whole has little issue with these defects, or at least considers their solution secondary to more immediate problems of data analysis. From time to time, issues of ROOT's design and implementation are discussed on the ROOT users mailing list [link] [link].
Application of ROOT
Several particle physics experiments have written software based on ROOT, often in favor of using more generic solutions (i.e. using ROOT containers instead of STL).- Some of the running particle physics experiments using software based on ROOT
- * BaBar
- * COMPASS
- * H1
- * MINOS
- * PHOBOS
See also
- CINT
- HippoDraw
- Java Analysis Studio
- R programming language
- AIDA (computing)
- PAW
- Particle physics
- CERN
- IGOR Pro
- Scientific computing
External links
- [The ROOT System Home Page]
- [ROOT users mailing list]
- [The Qt/ROOT System Home Page]
- [Hippodraw] — an alternative C++-based data analysis system
- [Java Analysis Studio 3] — a Java-based AIDA-compliant data analysis system
- [AIDA: Abstract Interfaces for Data Analysis] — open interfaces and formats for particle physics data processing
- [OpenScientist] a C++-based data analysis system, AIDA-compliant.
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
