ROOT es un programa informático orientado a objetos y una biblioteca desarrollada por el CERN . Fue diseñado originalmente para el análisis de datos de física de partículas y contiene varias características específicas de este campo, pero también se utiliza en otras aplicaciones como la astronomía y la minería de datos . La última versión menor es la 6.32, del 26 de mayo de 2024. [3]
Descripción
El CERN mantuvo la biblioteca de programas CERN escrita en FORTRAN durante muchos años. Su desarrollo y mantenimiento se interrumpieron en 2003 a favor de ROOT, que está escrito en el lenguaje de programación C++ . El desarrollo de ROOT fue iniciado por René Brun y Fons Rademakers en 1994. Algunas partes se publican bajo la Licencia Pública General Reducida de GNU (LGPL) y otras se basan en software de la Licencia Pública General de GNU (GPL), y por lo tanto también se publican bajo los términos de la GPL. Proporciona acceso independiente de la plataforma al subsistema gráfico y al sistema operativo de una computadora utilizando capas abstractas . Las partes de la plataforma abstracta son: una interfaz gráfica de usuario y un constructor de GUI , clases contenedoras, reflexión , un intérprete de línea de comandos y script de C++ ( CINT en la versión 5, cling en la versión 6), serialización de objetos y persistencia .
Los paquetes proporcionados por ROOT incluyen aquellos para
- Histogramas y gráficos para visualizar y analizar distribuciones y funciones .
- Ajuste de curvas (análisis de regresión) y minimización de funcionales ,
- herramientas estadísticas utilizadas para el análisis de datos ,
- álgebra matricial ,
- cálculos de cuatro vectores , como los que se utilizan en física de alta energía ,
- funciones matemáticas estándar ,
- análisis de datos multivariados , por ejemplo utilizando redes neuronales ,
- manipulación de imágenes, utilizada, por ejemplo, para analizar imágenes astronómicas ,
- acceso a datos distribuidos (en el contexto de la red ),
- computación distribuida , para paralelizar los análisis de datos ,
- persistencia y serialización de objetos, que pueden hacer frente a cambios en las definiciones de clase de datos persistentes,
- acceso a bases de datos ,
- Visualizaciones 3D (geometría),
- creando archivos en varios formatos gráficos, como PDF , PostScript , PNG , SVG , LaTeX , etc.
- Interfaz de código Python en ambas direcciones,
- Interfaz de generadores de eventos de Monte Carlo .

Una característica clave de ROOT es un contenedor de datos llamado árbol , con sus subestructuras ramas y hojas . Un árbol puede verse como una ventana deslizante hacia los datos sin procesar, tal como están almacenados en un archivo. Los datos de la siguiente entrada en el archivo pueden recuperarse avanzando el índice en el árbol. Esto evita los problemas de asignación de memoria asociados con la creación de objetos y permite que el árbol actúe como un contenedor liviano mientras maneja el almacenamiento en búfer de manera invisible.
ROOT está diseñado para lograr una alta eficiencia computacional , ya que es necesario para procesar datos de los experimentos del Gran Colisionador de Hadrones, que se estiman en varios petabytes por año. A partir de 2009, [actualizar]ROOT se utiliza principalmente en el análisis y adquisición de datos en experimentos de física de partículas (física de alta energía), y la mayoría de [actualizar]los gráficos y resultados experimentales actuales en esos subcampos se obtienen utilizando ROOT.
La inclusión de un intérprete de C++ ( CINT hasta la versión 5.34, Cling desde la versión 6.00) hace que este paquete sea muy versátil ya que puede utilizarse en modos interactivos, scriptizados y compilados de forma similar a productos comerciales como MATLAB .
El 4 de julio de 2012, los experimentos ATLAS y CMS del LHC presentaron el estado de la búsqueda del Higgs en el Modelo Estándar. Todos los gráficos de datos presentados ese día utilizaron ROOT.
Aplicaciones
Varias colaboraciones en física de partículas han escrito software basado en ROOT, a menudo a favor del uso de soluciones más genéricas (por ejemplo, utilizando contenedores ROOT en lugar de STL ).
- Algunos de los experimentos de física de partículas en curso que utilizan software basado en ROOT
- ALICIA
- ATLAS
- Experimento BaBar
- Experimento Belle (un colisionador de electrones y positrones en KEK (Japón))
- Experimento Belle II (sucesor del experimento Belle)
- BES III
- CB-ELSA/GRIFO
- CMS
- Experimento COMPASS (Aparato común de muones y protones para la estructura y espectroscopia)
- CUORE (Observatorio subterráneo criogénico de fenómenos raros)
- Experimento D0
- Experimento GlueX
- GRAPES-3 (Energía PeV de Astronomía de Rayos Gamma)
- Detector de partículas H1 en el colisionador HERA de DESY, Hamburgo
- LHCb
- MINERνA (Experimento de inyección principal para ν-A)
- MINOS (Búsqueda de oscilación de neutrinos del inyector principal)
- Experimento NA61 (Experimento de iones pesados y neutrinos del SPS)
- NOνA
- Experimento OPERA
- Detector PHENIX
- Experimento PHOBOS en el Colisionador de Iones Pesados Relativistas
- SNO+
- Detector STAR (Rastreador solenoidal en RHIC)
- Experimento T2K
- Futuros experimentos de física de partículas que actualmente desarrollan software basado en ROOT
- Mu2e
- Experimento de materia bariónica comprimida (CBM)
- Experimento PANDA (aniquilación de antiprotones en Darmstadt (PANDA))
- Experimento de neutrinos en las profundidades subterráneas (DUNE)
- Hyper-Kamiokande (Hong Kong (Japón))
- Proyectos de astrofísica ( astronomía de rayos X y rayos gamma , física de astropartículas ) que utilizan ROOT
- ÁGIL
- Espectrómetro magnético alfa (AMS)
- Antena transitoria de impulso antártico (ANITA)
- Detector de neutrinos ANTARES
- CRESST (Búsqueda de materia oscura)
- PCTDM
- DEAP -3600/ Astrofísica criogénica de baja energía con neón (CLEAN)
- Telescopio espacial de rayos gamma Fermi
- CUBO DE HIELO
- CMA
- Sistema estereoscópico de alta energía (HESS)
- Hitomi (ASTRO-H)
- MAGIA
- Milagro
- Observatorio Pierre Auger
- VERDAD
- Pamela
- POLAR
- PoGOLite
Críticas
Las críticas a ROOT incluyen su dificultad para principiantes, así como varios aspectos de su diseño e implementación. Las causas frecuentes de frustración incluyen una hinchazón extrema del código , un uso excesivo de variables globales [4] y una jerarquía de clases demasiado complicada. De vez en cuando, estos problemas se discuten en la lista de correo de usuarios de ROOT [5] [6] . Si bien los científicos insatisfechos con ROOT han logrado en el pasado solucionar sus fallas [7] , el equipo de ROOT aborda regularmente algunas de las deficiencias. El intérprete CINT, por ejemplo, ha sido reemplazado por el intérprete Cling [8] y se corrigen numerosos errores con cada versión.
Véase también
- Matplotlib : un sistema de análisis y gráficos para Python
- SciPy : un sistema de análisis de datos científicos para Python , basado en las clases NumPy
- Lenguaje de datos Perl : un conjunto de extensiones de programación de matrices para el lenguaje de programación Perl
- HippoDraw : un sistema alternativo de análisis de datos basado en C++
- Java Analysis Studio : un sistema de análisis de datos compatible con AIDA basado en Java
- Lenguaje de programación R
- AIDA (informática) : interfaces y formatos abiertos para el procesamiento de datos de física de partículas
- Geant4 – una plataforma para la simulación del paso de partículas a través de la materia mediante métodos de Monte Carlo
- PATA
- IGOR Pro
- Linux científico
- Computación científica
- OpenDX
- Científico abierto
- Biblioteca de programas del CERN : biblioteca de programas heredada escrita en Fortran77, todavía disponible pero no actualizada
Referencias
- ^ "Fundadores del proyecto". root.cern . Consultado el 19 de junio de 2019 .
- ^ "Equipo ROOT". root.cern . Consultado el 10 de febrero de 2022 .
- ^ "Notas de la versión 6.32 de ROOT". root.cern . Consultado el 27 de agosto de 2024 .
- ^ Buckley, Andy (27 de agosto de 2007). "El problema con ROOT (también conocido como La raíz de todo mal)". InsectNation . Consultado el 3 de mayo de 2016 .
- ^ "Re: Crítica de Wikipedia sobre root" . Consultado el 3 de mayo de 2016 .
- ^ "RE: Re: Crítica de Wikipedia sobre root" . Consultado el 3 de mayo de 2016 .
- ^ "¿Qué es ROOT?". 1 de junio de 2009. Consultado el 3 de mayo de 2016 .
- ^ "Notas de la versión 6.06 de ROOT". 2 de junio de 2015. Consultado el 3 de mayo de 2016 .
Enlaces externos
- La página de inicio del sistema ROOT
- Galerías de imágenes
- Guía del usuario de ROOT
- Guía de referencia ROOT
- Foro ROOT
- El kit de herramientas RooFit para modelado de datos, una extensión de ROOT para facilitar los ajustes de máxima verosimilitud
- El kit de herramientas para el análisis de datos multivariados con ROOT (TMVA) es un proyecto integrado con ROOT que proporciona un entorno de aprendizaje automático para el procesamiento y la evaluación de la clasificación multivariada, tanto binaria como multiclase, y técnicas de regresión dirigidas a aplicaciones en física de alta energía (aquí o aquí).