Discovering ROOT

ROOT is a framework for data processing, born at CERN, at the heart of the research on high-energy physics.  Every day, thousands of physicists use ROOT applications to analyze their data or to perform simulations.

First time you hear about ROOT?

Below, you can find a quick overview of the ROOT framework ("Gentle introduction"), which is summarized here:

  • Save data.  You can save your data (and any C++ object) in a compressed binary form in a ROOT file.  The object format is also saved in the same file.  ROOT provides a data structure that is extremely powerful for fast access of huge amounts of data - orders of magnitude faster than any database.
  • Access data.  Data saved into one or several ROOT files can be accessed from your PC, from the web and from large-scale file delivery systems used e.g. in the GRID.  ROOT trees spread over several files can be chained and accessed as a unique object, allowing for loops over huge amounts of data.
  • Process data.  Powerful mathematical and statistical tools are provided to operate on your data.  The full power of a C++ application and of parallel processing is available for any kind of data manipulation.  Data can also be generated following any statistical distribution, making it possible to simulate complex systems.
  • Show results.  Results are best shown with histograms, scatter plots, fitting functions, etc.  ROOT graphics may be adjusted real-time by few mouse clicks.  High-quality plots can be saved in PDF or other format.
  • Interactive or built application.  You can use the CINT C++ interpreter or Python for your interactive sessions and to write macros, or compile your program to run at full speed. In both cases, you can also create a GUI.

Beginning using ROOT?

The ROOT framework provides a number of classes, grouped into several class categories. To start using ROOT, you may find useful to browse the introductory document "First steps with ROOT", that is about the following subjects:

  • Processing data with ROOT (to learn about the interactive and batch use of ROOT)
  • Analyzing data with ROOT (about histograms and trees; mathematical and statistical tools)
  • Showing results with ROOT (explaining pads, 2D and 3D graphics, and the GUI editor)
  • Simulation in ROOT (about the virtual Monte Carlo and the geometry packages)
  • ROOT I/O (explaining how to use ROOT files and trees, and how to access data from d/b or other nodes)

Other resources

All topics are covered in detail in the User's Guide. All classes are documented in the Reference Guide.