Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di...

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

Transcript of Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di...

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;