ROOT
Encyclopedia
ROOT is an object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

 program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...

 and library developed by CERN
CERN
The European Organization for Nuclear Research , known as CERN , is an international organization whose purpose is to operate the world's largest particle physics laboratory, which is situated in the northwest suburbs of Geneva on the Franco–Swiss border...

. It was originally designed for particle physics
Particle physics
Particle physics is a branch of physics that studies the existence and interactions of particles that are the constituents of what is usually referred to as matter or radiation. In current understanding, particles are excitations of quantum fields and interact following their dynamics...

 data analysis
Data analysis
Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

 and contains several features specific to this field, but it is also used in other applications such as astronomy
Astronomy
Astronomy is a natural science that deals with the study of celestial objects and phenomena that originate outside the atmosphere of Earth...

 and data mining
Data mining
Data mining , a relatively young and interdisciplinary field of computer science is the process of discovering new patterns from large data sets involving methods at the intersection of artificial intelligence, machine learning, statistics and database systems...

.

Description

CERN maintained a program library
CERN Program Library
The CERN Program Library or CERNLIB is a collection of FORTRAN77 libraries and modules, maintained "as is" by CERN. Its content ranges from more specialized data analysis of high energy physics to general purpose numerical analysis...

 written in FORTRAN
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 for many years; development and maintenance were discontinued in 2003 in favour of ROOT, written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

.
ROOT development was initiated by René Brun and Fons Rademakers in 1994. Some parts are published under the LGPL
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

, and others are based on GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 software and thus are also published under the terms of the GPL. It provides platform independent access to a computer's graphics subsystem and operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 using abstract layers
Abstraction (computer science)
In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

. Parts of the abstract platform are: a graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 and a GUI builder, container classes, reflection
Reflection (computer science)
In computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior at runtime....

, a C++ script
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

 and command line interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

 (CINT
CINT
CINT is a command line C/C++ interpreter that is included in the object oriented data analysis package ROOT. Although intended for use with the other faculties of ROOT, CINT can also be used as a standalone addition to another program that requires such an interpreter.CINT is an interpreted...

), object serialization
Serialization
In computer science, in the context of data storage and transmission, serialization is the process of converting a data structure or object state into a format that can be stored and "resurrected" later in the same or another computer environment...

 and persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

.

The packages provided by ROOT include those for
  • histogram
    Histogram
    In statistics, a histogram is a graphical representation showing a visual impression of the distribution of data. It is an estimate of the probability distribution of a continuous variable and was first introduced by Karl Pearson...

    ming and graphing
    Graph of a function
    In mathematics, the graph of a function f is the collection of all ordered pairs . In particular, if x is a real number, graph means the graphical representation of this collection, in the form of a curve on a Cartesian plane, together with Cartesian axes, etc. Graphing on a Cartesian plane is...

     to view and analyze distributions
    Distribution (mathematics)
    In mathematical analysis, distributions are objects that generalize functions. Distributions make it possible to differentiate functions whose derivatives do not exist in the classical sense. In particular, any locally integrable function has a distributional derivative...

     and functions
    Function (mathematics)
    In mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...

    ,
  • curve fitting
    Curve fitting
    Curve fitting is the process of constructing a curve, or mathematical function, that has the best fit to a series of data points, possibly subject to constraints. Curve fitting can involve either interpolation, where an exact fit to the data is required, or smoothing, in which a "smooth" function...

     (regression analysis) and minimization of functionals
    Functional (mathematics)
    In mathematics, and particularly in functional analysis, a functional is a map from a vector space into its underlying scalar field. In other words, it is a function that takes a vector as its input argument, and returns a scalar...

    ,
  • statistics
    Statistics
    Statistics is the study of the collection, organization, analysis, and interpretation of data. It deals with all aspects of this, including the planning of data collection in terms of the design of surveys and experiments....

     tools used for data analysis
    Data analysis
    Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

    ,
  • matrix
    Matrix (mathematics)
    In mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...

     algebra,
  • four-vector
    Four-vector
    In the theory of relativity, a four-vector is a vector in a four-dimensional real vector space, called Minkowski space. It differs from a vector in that it can be transformed by Lorentz transformations. The usage of the four-vector name tacitly assumes that its components refer to a standard basis...

     computations, as used in high energy physics,
  • standard mathematical functions
    Function (mathematics)
    In mathematics, a function associates one quantity, the argument of the function, also known as the input, with another quantity, the value of the function, also known as the output. A function assigns exactly one output to each input. The argument and the value may be real numbers, but they can...

    ,
  • multivariate data analysis
    Data analysis
    Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

    , e.g. using neural networks
    Neural Networks
    Neural Networks is the official journal of the three oldest societies dedicated to research in neural networks: International Neural Network Society, European Neural Network Society and Japanese Neural Network Society, published by Elsevier...

    ,
  • image manipulation, used, for instance, to analyze astronomical pictures,
  • access to distributed data (in the context of the Grid
    Grid computing
    Grid computing is a term referring to the combination of computer resources from multiple administrative domains to reach a common goal. The grid can be thought of as a distributed system with non-interactive workloads that involve a large number of files...

    ),
  • distributed computing
    Distributed computing
    Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

    , to parallelize data analyses
    Data analysis
    Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

    ,
  • persistence
    Persistence (computer science)
    Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

     and serialization
    Serialization
    In computer science, in the context of data storage and transmission, serialization is the process of converting a data structure or object state into a format that can be stored and "resurrected" later in the same or another computer environment...

     of objects, which can cope with changes in class definitions of persistent data,
  • access to databases,
  • 3D
    3D computer graphics
    3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

     visualizations
    Visualization (graphic)
    Visualization is any technique for creating images, diagrams, or animations to communicate a message. Visualization through visual imagery has been an effective way to communicate both abstract and concrete ideas since the dawn of man...

     (geometry)
  • creating files in various graphics formats, like PostScript
    PostScript
    PostScript is a dynamically typed concatenative programming language created by John Warnock and Charles Geschke in 1982. It is best known for its use as a page description language in the electronic and desktop publishing areas. Adobe PostScript 3 is also the worldwide printing and imaging...

    , PNG, SVG
    Scalable Vector Graphics
    Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...

    ,
  • interfacing Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

     and Ruby code in both directions,
  • interfacing Monte Carlo
    Monte Carlo method
    Monte Carlo methods are a class of computational algorithms that rely on repeated random sampling to compute their results. Monte Carlo methods are often used in computer simulations of physical and mathematical systems...

     event generator
    Event generator
    Event generators are software libraries that generate simulated high-energy particle physics events.They randomly generate events as those produced in particle accelerators, collider experiments or during the initial phases of the Universe creation....

    s.


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 computing efficiency
Computer performance
Computer performance is characterized by the amount of useful work accomplished by a computer system compared to the time and resources used.Depending on the context, good computer performance may involve one or more of the following:...

, as it is required to process data from the Large Hadron Collider
Large Hadron Collider
The Large Hadron Collider is the world's largest and highest-energy particle accelerator. It is expected to address some of the most fundamental questions of physics, advancing the understanding of the deepest laws of nature....

's experiments estimated at several petabyte
Petabyte
A petabyte is a unit of information equal to one quadrillion bytes, or 1000 terabytes. The unit symbol for the petabyte is PB...

s per year. ROOT is mainly used in data analysis
Data analysis
Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of highlighting useful information, suggesting conclusions, and supporting decision making...

 and data acquisition
Data acquisition
Data acquisition is the process of sampling signals that measure real world physical conditions and converting the resulting samples into digital numeric values that can be manipulated by a computer. Data acquisition systems typically convert analog waveforms into digital values for processing...

 in high energy physics experiments, and most experimental plots and results in those subfields are obtained using ROOT.

The inclusion of the CINT
CINT
CINT is a command line C/C++ interpreter that is included in the object oriented data analysis package ROOT. Although intended for use with the other faculties of ROOT, CINT can also be used as a standalone addition to another program that requires such an interpreter.CINT is an interpreted...

 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
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...

.

Criticisms of ROOT are endless, and include its difficulty for beginners and experts alike, various aspects of its design and implementation, numerous memory handling errors, non-reproducible calculation results, buffer overflow issues, and its overall performance and feel of that of an amateur, student-written piece of software. From time to time these issues are discussed on the ROOT users mailing list. Scientists dissatisfied with ROOT typically manage to work around its flaws with experience due its pervasive nature in particle physics and a lack of any widespread alternative.

Applications of ROOT

Several particle physics experiments
Particle physics experiments
Particle physics experiments briefly discusses a number of past, present, and proposed experiments with particle accelerators, throughout the world. In addition, some important accelerator interactions are discussed...

 have written software based on ROOT, often in favor of using more generic solutions (e.g. using ROOT containers instead of STL
Standard Template Library
The Standard Template Library is a C++ software library which later evolved into the C++ Standard Library. It provides four components called algorithms, containers, functors, and iterators. More specifically, the C++ Standard Library is based on the STL published by SGI. Both include some...

).
  • Some of the running particle physics experiments using software based on ROOT
    • ALICE
      A Large Ion Collider Experiment
      ALICE is one of the six detector experiments at the Large Hadron Collider at CERN. The other five are: ATLAS, CMS, TOTEM, LHCb, and LHCf. ALICE is optimized to study heavy ion collisions. Pb-Pb nuclei collisions will be studied at a centre of mass energy of 2.76 TeV per nucleon...

    • Antares
      ANTARES (telescope)
      ANTARES is the name of a neutrino detector residing 2.5 km under the Mediterranean Sea off the coast of Toulon, France. It is designed to be used as a directional Neutrino Telescope to locate and observe neutrino flux from cosmic origins in the direction of the Southern Hemisphere of the...

    • ATLAS
      ATLAS experiment
      ATLAS is one of the six particle detector experiments constructed at the Large Hadron Collider , a new particle accelerator at the European Organization for Nuclear Research in Switzerland...

    • BaBar
      Babar
      Babar means Lion. Babar may refer to:Names* Babur , 16th-century ruler of Indian subcontinent and founder of the Mughal Empire* Babar Luck, musician from England...

    • CB-ELSA/TAPS
    • CDF
      CDF
      -Mathematics, science, and computers:* .cdf , the ANDI/netCDF mass spectrometry data interchange file format* Channel Definition Format, an XML standard* Charging Data Function, in the Session Initiation Protocol standard...

    • CMS
      Compact Muon Solenoid
      The Compact Muon Solenoid experiment is one of two large general-purpose particle physics detectors built on the proton-proton Large Hadron Collider at CERN in Switzerland and France. Approximately 3,600 people from 183 scientific institutes, representing 38 countries form the CMS collaboration...

    • COMPASS
      COMPASS experiment
      The NA58 experiment, or COMPASS is a fixed-target particle physics experiment at the Super Proton Synchrotron, a particle accelerator at the European Organization for Nuclear Research...

    • DZero
    • H1
      H1 (particle detector)
      H1 is a particle detector in operation at HERA in DESY, Hamburg. It began operating together with HERA in 1992. Leptons are collided with protons by HERA in the interaction point of H1. H1 is operated by an internationalcollaboration of about 400 physicists from 42 institutes in 15 countries...

    • LHCb
      LHCb
      LHCb is one of six particle physics detector experiments collecting data at the Large Hadron Collider accelerator at CERN. LHCb is a specialized b-physics experiment, that is measuring the parameters of CP violation in the interactions of b-hadrons...

    • MINERνA
    • MINOS
      MINOS
      MINOS is a particle physics experiment designed to study the phenomena of neutrino oscillations, first discovered by a Super-Kamiokande experiment in 1998...

    • NEXT
      NeXT
      Next, Inc. was an American computer company headquartered in Redwood City, California, that developed and manufactured a series of computer workstations intended for the higher education and business markets...

    • PEN
    • PHENIX
      Phénix
      Phénix was a small-scale prototype fast breeder reactor, located at the Marcoule nuclear site, near Orange, France. It was a pool-type liquid-metal fast breeder reactor cooled with liquid sodium...

    • PHOBOS
    • STAR
    • T2K
      T2K
      T2K is a particle physics experiment that is a collaboration between several countries, including Japan, Canada, France, Germany, Italy, Korea, Poland, Russia, Spain, Switzerland, the United States, and the United Kingdom...

    • ZEUS
      Zeus
      In the ancient Greek religion, Zeus was the "Father of Gods and men" who ruled the Olympians of Mount Olympus as a father ruled the family. He was the god of sky and thunder in Greek mythology. His Roman counterpart is Jupiter and his Etruscan counterpart is Tinia.Zeus was the child of Cronus...

    • CRESST
    • OPERA
      Opera
      Opera is an art form in which singers and musicians perform a dramatic work combining text and musical score, usually in a theatrical setting. Opera incorporates many of the elements of spoken theatre, such as acting, scenery, and costumes and sometimes includes dance...


  • Future particle physics experiments currently developing software based on ROOT
    • NOνA
    • CBM
    • PANDA
    • BELLE II
    • Long Baseline Neutrino Experiment (LBNE)

  • Astroparticle physics projects using ROOT
    • AMS
      Alpha Magnetic Spectrometer
      The Alpha Magnetic Spectrometer, also designated AMS-02, is a particle physics experiment module that is mounted on the International Space Station. It is designed to search for various types of unusual matter by measuring cosmic rays. Its experiments will help researchers study the formation of...

    • ANTARES
    • DMTPC
      Dark Matter Time Projection Chamber
      The Dark Matter Time Projection Chamber is an experiment for direct detection of weakly interacting massive particles , one of the most favored candidates for dark matter. The experiment uses a low-pressure time projection chamber in order to extract the original direction of potential dark matter...

    • Fermi
    • ICECUBE
      IceCube Neutrino Detector
      The IceCube Neutrino Observatory is a neutrino telescope constructed at the Amundsen-Scott South Pole Station in Antarctica...

    • H.E.S.S.
    • MAGIC
      MAGIC (telescope)
      MAGIC is a system of two Imaging Atmospheric Cherenkov telescopes situated at the Roque de los Muchachos Observatory on La Palma, one of the Canary Islands, at about 2200 m above sea level...

    • Milagro (experiment)
      Milagro (experiment)
      Milagro, , was a ground based water Čerenkov radiation telescope situated in the Jemez Mountains near Los Alamos, New Mexico at the Fenton Hill Observatory site. It was primarily designed to detect gamma rays but also detected large numbers of cosmic rays. It operated in the TeV region of the...

    • Pierre Auger Observatory
      Pierre Auger Observatory
      The Pierre Auger Observatory is an international cosmic ray observatory designed to detect ultra-high-energy cosmic rays: single sub-atomic particles with energies beyond 1020 eV...

    • VERITAS
      VERITAS
      VERITAS is a major ground-based gamma-ray observatory with an array of four 12m optical reflectors for gamma-ray astronomy in the GeV - TeV energy range. The telescope design is based on the design of the existing 10m gamma-ray telescope of the Fred Lawrence Whipple Observatory...

    • PAMELA
    • PoGOLite
      PoGOLite
      PoGOLite is a balloon-borne astroparticle physics experiment which is to measure polarisation in hard X-rays and soft gamma-rays. It is sensitive to photons with an energy range of 25-80 keV...


See also

  • Matplotlib
    Matplotlib
    matplotlib is a plotting library for the Python programming language and its NumPy numerical mathematics extension. It provides an object-oriented API which allows plots to be embedded into applications using generic GUI toolkits, like wxPython, Qt, or GTK...

     - a plotting and analysis system for Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

  • SciPy
    SciPy
    SciPy is an open source library of algorithms and mathematical tools for the Python programming language.SciPy contains modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and...

     - a scientific data analysis system for Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

    , based on the NumPy classes
  • HippoDraw
    HippoDraw
    HippoDraw is a powerful object oriented statistical data analysis package written in C++, with user interaction via a Qt-based GUI and a Python scriptable interface...

     — an alternative C++-based data analysis system
  • Java Analysis Studio
    Java Analysis Studio
    Java Analysis Studio is an object oriented data analysis package developed for the analysis of particle physics data. The latest major version is JAS3.JAS3 is particularly notable for being a fully AIDA-compliant data analysis system...

     — a Java-based AIDA-compliant data analysis system
  • JHepWork
    JHepWork
    jHepWork is an interactive framework for scientific computation, data analysis and data visualization designed for scientists, engineers and students...

     — a Java-based data analysis framework based on FreeHEP libraries
  • R programming language
  • AIDA (computing)
    AIDA (computing)
    Abstract Interfaces for Data Analysis is a set of defined interfaces and formats for representing common data analysis objects. The project was instigated and is primarily used by researchers in high-energy particle physics....

     — open interfaces and formats for particle physics data processing
  • PAW
    Physics Analysis Workstation
    The Physics Analysis Workstation is an interactive, scriptable computer software tool for data analysis and graphical presentation in high energy physics. Developed at CERN since 1986, it is optimized for processing very large amounts of data...

  • IGOR Pro
    IGOR Pro
    IGOR Pro is a scientific data analysis software, numerical computing environment and programming language that runs on Windows or Mac operating systems. It is developed by WaveMetrics Inc., and was originally aimed at time series analysis, but has since then evolved and covers other applications...

  • Scientific computing
  • OpenDX
    OpenDX
    OpenDX stands for Open Data Explorer and is IBM's scientific data visualization software. It can handle complex domains along with measured or computed data...

  • OpenScientist
    OpenScientist
    OpenScientist is an integration of open source products working together to do scientific visualization and data analysis, in particular for high energy physics ....

  • CERN Program Library
    CERN Program Library
    The CERN Program Library or CERNLIB is a collection of FORTRAN77 libraries and modules, maintained "as is" by CERN. Its content ranges from more specialized data analysis of high energy physics to general purpose numerical analysis...

     — legacy program library written in Fortran77, still available but not updated

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK