11
Esempi di analisi dati con ROOT Guida minima all’uso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche Andrea Ventura Dipartimento di Fisica – Università del Salento Lecce, gennaio 2013 1

Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Embed Size (px)

Citation preview

Page 1: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Esempi di analisi dati con ROOT

Guida minima all’uso di ROOT per le esperienze didattiche di

Laboratorio di ElettromagnetismoPiano Lauree Scientifiche

Andrea Ventura

Dipartimento di Fisica – Università del Salento

Lecce, gennaio 20131

Page 2: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Introduzione

ROOT è un programma molto utilizzato nell’ambito della Fisica delle Alte Energie, che permette di analizzare anche grandi quantità di dati, produrre risultati statistici, realizzare grafici, adattare dati sperimentali a funzioni, e molto altro ancora.E’ un programma molto versatile e gratuito: l’attuale versione per Windows può essere scaricata dall’indirizzo: ftp://root.cern.ch/root/root_v5.34.04.win32.vc90.msi

Senza la pretesa di conoscere l’intero pacchetto, qui considereremo alcune semplici applicazioni per un impiego immediato.

2

Page 3: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Installazione del pacchetto

• Una volta scaricato il file di setup (root*.msi), si segue la procedura standard di installazione, al termine della quale compare un’icona sul desktop su cui cliccare per avviare ROOT

• ROOT è disponibile anche per altri sistemi operativi (Linux, Mac OS).

• All’avvio, appare una finestra (“shell”) per i comandi da sottomettere al programma.

3

Page 4: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Avvio di ROOT

4

Page 5: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Iniziare con ROOT

• ROOT è basato su CINT, un interprete di C/C++• Blocchi di comandi possono essere racchiusi tra

parentesi graffe, intervallati da punti e virgola, ovvero: {...; ...; ...}

• I comandi precedenti possono essere richiamati tramite la freccia verso l’alto ()

• Per non digitare ogni volta gli stessi comandi, possiamo scriverli in un file (ad esempio miaMacro.C) ed eseguirli con “.x miaMacro.C” – la directory di lavoro è tipicamente C:\root

• Per uscire da ROOT digitare “.q” 5

Page 6: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Semplici operazioni

• Possiamo fare qualche calcolo, ad esempio: 7 · 9

• Possiamo elencare i quadrati dei primi 5 numeri pari:

• Possiamo disegnare una funzione, f(x) = 2 senx (x–1)2

– Per avere la griglia, anteporre

– Per conoscere il valore di f(3)

root [0] 7*sqrt(9)

root [1] for (int i=1; i<=5; i++) printf(“%d^2 = %d ”, 2*i, 4*i*i);

root [2] TF1 f("f","2*sin(x)*(x-1)**2",-3,7); root [3] f.Draw();

c1 = new TCanvas; c1->SetGrid();

f(3)(const Double_t)1.12896006447893770e+000

6

Page 7: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Effettuare un fit a una funzione• Si salvi in un file e si esegua il seguente esempio:

{ // Creazione di una canvas con griglia: gROOT->Reset(); c1 = new TCanvas("c1", "Fit dei dati con errori su x e y", 200, 10, 700, 500); c1->SetGrid(); Int_t n = 10; // Inizializzazione di 4 vettori: // x[] e ex[] sono le misure in ascissa x_i e i loro errori Float_t x[n] = {0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.65, 0.75, 0.95, 1.2}; Float_t ex[n] = {0.05, 0.05, 0.04, 0.05, 0.04, 0.05, 0.06, 0.06, 0.05, 0.05}; // y[] e ey[] sono le misure in ordinata y_i e i loro errori Float_t y[n] = {0.1, 0.3, 0.55, 0.67, 0.75, 0.79, 0.71, 0.63, 0.45, 0.35}; Float_t ey[n] = {0.04, 0.03, 0.03, 0.02, 0.02, 0.02, 0.03, 0.03, 0.04, 0.04}; // Creazione di un grafico x-y con errori gr = new TGraphErrors(n,x,y,ex,ey); gr->SetTitle("Fit della funzione"); gr->SetMarkerColor(4); gr->SetMarkerStyle(21); gr->Draw("AP"); gStyle->SetOptFit(1111); // Fit dei dati del grafico con un polinomio di terzo grado gr->Fit("pol3"); c1->Update();}

7

Page 8: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Risultato del fit

• Il fit a una polinomiale di terzo grado è soddisfacente (il 2/ndf è prossimo a 1)

• Provare altre funzioni, come “pol2”, “pol4” o “expo”8

Page 9: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Fit con altre funzioni• All’interno della macro inserire la funzione desiderata:

• Lanciare la macro. Il fit potrebbe non funzionare per via di inadeguati valori iniziali dei parametri p0, p1, p2.– Definirli con “SetParameters” e rilanciare:

{ ... // Creazione di una canvas con griglia // Inizializzazione dei 4 vettori x[] ex[] y[] ey[] // Creazione di un grafico x-y con errori ...

// Definizione di una nuova funzione TF1 *funz = new TF1("funz","[0]*x*exp([1]*x+[2])",0.5,100); // Fit in un intervallo di interesse, tra -3 e 7 gr->Fit("funz","","",-3,7); c1->Update();}

9

TF1 *funz = new TF1("funz","[0]*x*exp([1]*x+[2])",0.5,100); funz->SetParameters(5.,-1.,0.);

Page 10: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Risultato del nuovo fit

• Il nuovo fit alla funzione desiderata è soddisfacente• Si provino altre funzioni arbitrarie o altri set di punti

10

Page 11: Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche

Altre operazioni con ROOT

• Si possono visualizzare i valori dei parametri del fit:

• Si possono salvare i grafici ottenuti tramite l’interfaccia grafica: “File -> Save As…” oppure

• Maggiori dettagli su http://root.cern.ch• Per ulteriori aiuti o chiarimenti:– [email protected]

c1->SaveAs(“mioGrafico.gif”)

11

float p0=funz->GetParameter(0), dp0=funz->GetParError(0);float p1=funz->GetParameter(1), dp1=funz->GetParError(1);float p2=funz->GetParameter(2), dp2=funz->GetParError(2);cout << "p0 = " << p0 << " +- " << dp0 << endl;cout << "p1 = " << p1 << " +- " << dp1 << endl;cout << "p2 = " << p2 << " +- " << dp2 << endl;