Root è un pacchetto open source che permette di effettuare l’analisi dei dati in maniera semplice e precisa. In realtà Root può fare molto di più (come Matlab d’altronde) ma noi lo useremo solo attraverso una semplice macro preparata da me e che può servire da punto di partenza per tutti gli studenti del corso.
Per l’installazione di Root sul proprio computer basta seguire le semplici istruzioni sul sito dell’applicativo. Root può essere installato su Linux (istruzioni), Windows (istruzioni) e Mac OS X (istruzioni).
Potete trovare spiegazioni dettagliate nella prima lezione del corso (link alle lezioni) e nelle diverse macro presentate durante le lezioni (link)
LinFit.C è un esempio di macro ROOT che ho scritto e che permette di effettuare fit (adattamento di una funzione ai dati) lineari una volta fornito un file tipo testo con tutte le informazioni necessarie. Nel file filenoerr.txt, fileyerr.txt e filexyerr.txt ci sono degli esempi di file di dati rispettivamente senza errori, con errori solo sulle ordinate e con errori sia sulle ascisse che sulle ordinate.
badate bene: nel caso di utilizzo di Windows si deve usare WordPad come editor di file testo e non NotePad.
Come si può osservare il formato dei file è piuttosto semplice e consiste in diverse righe in cui dovete inserire le informazioni richieste. Le prime quattro righe devono cominciare tassativamente con un # ed uno spazio. Qui di seguito il dettaglio delle informazioni:
# Nome del plot # Legenda dell’asse x # Legenda dell’asse y # Nomi dei parametri (senza spazi) e separati x1 y1 ex1 ey1 x2 y2 ex2 ey2 ....................... xn yn exn eyn
dove xi,yi sono i dati misurati, ed exi ed eyi sono i relativi errori. Aggiungere un # ed uno spazio alla riga di dati permette di eliminarla temporaneamente dal grafico e quindi dal fit. Questo permette, se necessario, di inserire/rimuovere velocemente ognuno dei punti senza dover duplicare i files.
Ci sono diverse possibilità per i dati:
il caso in cui i dati sono riportati senza errori (xn yn) e quindi ci sono due colonne
il caso in cui ci sono solo errori in y (formato xn yn eyn) e quindi le colonne sono tre
il caso, già mostrato in precedenza, in cui vengono riportati entrambi gli errori sulla x e sulla y e quindi 4 colonne di dati
E’ di fondamentale importanza che, almeno per il primo rigo (anche se commentato), i dati siano separati da un solo spazio o da un solo tabulatore.
La macro va eseguita nel seguente modo una volta fatto partire root (vedi istruzioni) (basta solo il nome del file, che deve essere NECESSARIAMENTE di tipo testo e quindi con una estensione .txt):
root [1] .x LinFit.C(“fileyerr”)
e produrrà una finestra grafica del tipo:
![]()
In questa modalità viene presentato, nella parte in basso, anche il grafico dei residui normalizzati all’errore (cioè la differenza fra il valore misurato e il valore della funzione alla corrispondente x, diviso per l’errore del valore misurato), che consente di valutare se ci siano eventuali sistematiche. Quest’ultimo grafico tiene conto anche degli eventuali errori lungo la x propagandone l’effetto nella direzione y.
LinFit.C produce anche delle informazioni sulla finestra di terminale che state usando, del tipo:
root [1] .x LinFit.C ("linfit/filexyerr")
Plot Title is: Altezza cilindro
x axis title is: V [Volt]
y axis title is: h [cm]
Function to fit is: [0]+[1]*x
Number of Parameters is: 2
Parameter names are: b a
Data type is x,y,dx,dy
Reading Data, found: 9 points
------------------------------
Fit Results
b = 4.95782 +/- 0.0368126
a = 2.25176 +/- 0.0146239
Info in <TCanvas::Print>: pdf file linfit/filexyerr.pdf has been created
Che vi dicono se tutto è andato bene, e vi danno il risultato del fit con un numero di cifre in generale superiori a quelle presentate nel grafico. Questo vi servirà ad approssimare il risultato al numero di cifre significative corrette.
Se il file di testo contenente i dati non è nella cartella in cui si sta lavorando ma in una sottocartella è sufficiente anteporre il nome della cartella al nome del file nel modo seguente (supponendo che la sottocartella si chiami data):
root [1] .x LinFit.C(“data/fileyerr”)
La macro accetta altri argomenti che permettono di far funzionare LinFit in modalità diverse. Ad esempio se non si vuole il grafico dei residui normalizzati è possibile aggiungere esplicitamente un secondo argomento alla macro e fissarlo a “false”:
root [1] .x LinFit.C(“fileyerr”,false)
Un’altro modo di eseguire la macro è aggiungere altri parametri che permettono di effettuare il fit solo in un intervallo definito dall’utente :
root [1] .x LinFit.C(“fileyerr”,true,0.3, 1.2)
In questo caso è sempre necessario definire il valore di tutti gli argomenti precedenti.
Si può anche graficare il plot nell’intervallo di fitting scelto ponendo l’ultimo argomento a “true”:
root [1] .x LinFit.C(“fileyerr”,true,0.3, 1.2, true)
Root permette di operare direttamente sulla finestra grafica (chiamata Canvas) per modificarne le caratteristiche. Ad esempio è possibile spostare il riquadro della statistica trascinandolo nella posizione voluta. Cliccando col tasto destro nell’area al di fuori del grafico è possibile scegliere ad esempio la scala logaritmica in x o y. Cliccando col tasto destro sugli assi è possibile cambiare la scala, dare un nome all’asse etc. Cliccando col tasto destro sull’istogramma stesso o sui markers o sulla linea si possono cambiare gli attributi grafici come per esempio il colore delle linee, il colore di riempimento etc.
É possibile fare uno zoom dell’ istogramma, calcolarne l’integrale e molte molte altre cose. Sperimentate……
Quest’output può essere stampato oppure salvato in un file dopo essere stato modificato a piacimento se si va sul menu file e si sceglie l’opzione save o print nel formato voluto (pdf, png, gif, ps). Il file verrà salvato nella cartella in cui è presente il file testo utilizzato

