ROOT software | |
---|---|
Grafico esemplificativo in ROOT, mostrante regioni di interesse in una distribuzione bidimensionale | |
Genere | Analisi dei dati |
Sviluppatore | CERN |
Data prima versione | 1995 |
Ultima versione | 6.32.08 (14 novembre 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | C++ Python |
Licenza | LGPL (licenza libera) |
Sito web | root.cern e root.cern.ch/ |
ROOT è un pacchetto software orientato ad oggetti di analisi dei dati sviluppato dal CERN per sostituire i precedenti pacchetti (tra i quali PAW - Workstation di analisi Fisica e CERNLIB). Il progetto fu avviato da René Brun nel 1994. ROOT è scritto in C++, e distribuito sotto licenza LGPL. Fornisce un accesso indipendente dalla piattaforma al sottosistema grafico del computer e al sistema operativo, utilizzando dei livelli di astrazione. Sono parte della piattaforma di astrazione l'interfaccia grafica, le classi contenitore, la riflessione, l'interprete a riga di comando CINT (sostituito da Cling nella versione 6)[1], nonché la persistenza e la serializzazione degli oggetti.
Dettagli
[modifica | modifica wikitesto]I pacchetti forniti da ROOT includono funzionalità, tra cui:
- visualizzazione, analisi di distribuzioni e funzioni tramite istogrammi e grafici,
- fitting e minimizzazione di funzioni,
- strumenti statistici per l'analisi dei dati,
- algebra matriciale,
- supporto di quadrivettori, utilizzati nella fisica delle alte energie
- supporto di funzioni matematiche standard,
- analisi dei dati multivariata, per esempio usando reti neurali,
- manipolazione di immagini, usata per esempio per analizzare figure astronomiche,
- accesso ai dati distribuiti (nel contesto di Grid),
- calcolo distribuito, per analizzare dati in parallelo,
- persistenza e serializzazione degli oggetti, i quali possono far fronte ai cambiamenti nelle definizioni delle classi dei dati persistenti,
- accesso ai database,
- visualizzazione 3D,
- creazione di file in vari formati grafici, come PostScript, JPEG, SVG,
- interfacciamento con i linguaggi Python e Ruby in entrambe le direzioni,
- interfacciamento con generatori Monte Carlo
Una caratteristica chiave di ROOT è il contenitore di dati chiamato tree (albero), con le sue sottostrutture branches (rami) e leaves (foglie). Questa struttura può essere vista come una finestra scorrevole di accesso ai dati grezzi, come quando sono memorizzati in un file. Si può accedere ai dati nel successivo record nel file incrementando il valore dell'indice nell'albero. Questa tecnica evita problemi di allocazione della memoria concernenti la creazione di oggetti, e permette all'albero di comportarsi come un contenitore "leggero", mentre si maneggia il buffer in maniera trasparente.
ROOT pone l'attenzione sulle prestazioni a causa dell'ammontare di dati che gli esperimenti del Large Hadron Collider raccoglieranno, il cui incremento stimato è di svariati petabyte all'anno. Ci si aspetta che i fisici analizzino i dati proprio avvalendosi di ROOT, che per l'appunto è, al momento attuale, prevalentemente utilizzato nell'acquisizione ed analisi dei dati in applicazioni di Fisica ad alta energia - la maggior parte dei grafici e dei risultati ottenuti in questa disciplina sono stati ottenuti utilizzando ROOT.
Critiche
[modifica | modifica wikitesto]Le maggiori critiche di ROOT sono la sua difficoltà di approccio per i neofiti e vari aspetti del suo design e dell'implementazione. Cause frequenti di frustrazione sono un eccessivo code bloat (quando il codice è eccessivamente lungo e risulta quindi lento e uno spreco di risorse), pesante uso di variabili globali,[2] e una gerarchia di classi confusa. Talvolta questi problemi vengono discussi nella mailing list degli utenti di ROOT.[3][4] Mentre gli scienziati insoddisfatti da ROOT sono in passato riusciti a ovviare ai suoi difetti,[5] alcune delle carenze sono periodicamente trattate dal team di ROOT. Ad esempio, l'interprete CINT è stato sostituito da Cling,[6] e a ogni versione vengono risolti numerosi bug.
Applicazioni basate su ROOT
[modifica | modifica wikitesto]Molti ricercatori di fisica delle particelle hanno scritto del software basato su ROOT[7], spesso non usando soluzioni generiche (come l'uso dei container di ROOT al posto di quelli della Standard Template Library).
- Alcuni degli esperimenti in corso che usano software basato su ROOT
- Esperimenti di fisica delle particelle che stanno sviluppando software basato su ROOT
- Altri progetti di fisica che usano ROOT
Note
[modifica | modifica wikitesto]- ^ ROOT Version 6.00/00 Release Notes, su root.cern.ch, maggio 2014.
- ^ Andy Buckley, The problem with ROOT (a.k.a. The ROOT of all Evil), su insectnation.org, 27 agosto 2007. URL consultato il 3 maggio 2016.
- ^ Re: Teknopedia criticism about root, su root.cern.ch. URL consultato il 3 maggio 2016.
- ^ RE: Re: Teknopedia criticism about root, su root.cern.ch. URL consultato il 3 maggio 2016.
- ^ What is ROOT?, su zzz.physics.umn.edu, 1º giugno 2009. URL consultato il 3 maggio 2016.
- ^ ROOT Version 6.06 Release Notes, su root.cern.ch, 2 giugno 2015. URL consultato il 3 maggio 2016.
- ^ Example Applications, su root.cern.ch.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su ROOT
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su root.cern.
- Sito ufficiale, su root.cern.ch.
- Repository sorgenti di ROOT, su github.com.
- Sito di segnalazione bug, su github.com.
- (EN) ROOT, su Free Software Directory.
- Come installare Root su Ubuntu, su wiki.ubuntu-it.org.
- ROOT Repository per Ubuntu
- ROOT Repository per Debian