Ultima actualizacion:

Guia de inicio rapido del framework ROOT

Que es ROOT?

ROOT es un framework de codigo abierto en C++ y Python desarrollado en CERN para el procesamiento de datos, analisis estadistico, visualizacion y almacenamiento en fisica de altas energias (HEP). Es la herramienta estandar para analizar datos de fisica de particulas y es utilizado por practicamente todos los experimentos del CERN.

ROOT proporciona estructuras de datos especializadas (como TTree para datos columnares), histogramas, ajuste de curvas y un potente sistema de E/S basado en el formato de archivo .root. Tambien incluye CLING, un interprete interactivo de C++, y PyROOT, una interfaz Python para todas las clases de ROOT.

Opcion sin instalacion: SWAN

Si quieres empezar a usar ROOT inmediatamente sin instalar nada, CERN proporciona SWAN (Service for Web-based ANalysis) en swan.cern.ch. SWAN es un servicio basado en JupyterHub que te ofrece un entorno de notebooks con ROOT, PyROOT y muchos otros paquetes cientificos de Python preinstalados.

Simplemente inicia sesion con tus credenciales de CERN, elige una pila de software y comienza a programar. SWAN se conecta a tu almacenamiento EOS, para que puedas acceder a tus archivos de datos directamente. Es la forma mas rapida de empezar con ROOT en CERN.

Metodos de instalacion

Conda (Recomendado para maquinas personales)

La forma mas facil de instalar ROOT en tu maquina personal es via conda-forge:

conda create -n root-env
conda activate root-env
conda install -c conda-forge root

Snap (Linux)

En distribuciones Linux que soportan paquetes Snap:

sudo snap install root-framework

Homebrew (macOS)

En macOS con Homebrew instalado:

brew install root

Binarios precompilados

Descarga binarios precompilados para tu plataforma desde el sitio web oficial de ROOT en root.cern/install. Extrae el archivo y ejecuta el script de configuracion:

tar -xzf root_v6.XX.YY.Linux-ubuntu22-x86_64-gcc11.4.tar.gz
source root/bin/thisroot.sh

En lxplus (CVMFS)

En las maquinas lxplus de CERN, ROOT esta disponible a traves de CVMFS sin necesidad de instalacion. Simplemente configura el entorno de software LCG:

# Listar releases LCG disponibles
ls /cvmfs/sft.cern.ch/lcg/views/

Configurar un release LCG especifico (ejemplo)

source /cvmfs/sft.cern.ch/lcg/views/LCG_105/x86_64-el9-gcc13-opt/setup.sh

Verificar que ROOT esta disponible

root --version

Primeros pasos con ROOT

C++ interactivo (CLING)

Inicia el interprete interactivo de C++ de ROOT escribiendo root en tu terminal:

$ root
root [0] TH1F *h = new TH1F("h", "My Histogram", 100, -5, 5);
root [1] h->FillRandom("gaus", 10000);
root [2] h->Draw();
root [3] .q

PyROOT

Usa ROOT desde Python con las bindings de PyROOT:

import ROOT

Crear y rellenar un histograma

h = ROOT.TH1F("h", "Gaussian Distribution;x;Entries", 100, -5, 5) h.FillRandom("gaus", 10000)

Dibujar en un canvas

c = ROOT.TCanvas("c", "My Canvas", 800, 600) h.Draw() c.SaveAs("histogram.png")

Leer archivos .root

Abre y explora un archivo ROOT existente:

import ROOT

f = ROOT.TFile.Open("data.root") f.ls() # Listar contenidos tree = f.Get("Events") # Obtener un TTree tree.Print() # Mostrar ramas tree.Draw("pt") # Grafico rapido de una rama

Integracion con NumPy / pandas

Convierte datos de ROOT a arrays de NumPy o DataFrames de pandas para usarlos con el ecosistema Python mas amplio:

import ROOT
import numpy as np

Usando RDataFrame (enfoque moderno de ROOT)

df = ROOT.RDataFrame("Events", "data.root") npy = df.AsNumpy(["pt", "eta"]) # Devuelve dict de arrays NumPy

Convertir a DataFrame de pandas

import pandas as pd pdf = pd.DataFrame(npy)

Recursos esenciales

Tareas comunes de la primera semana