La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Esempi di analisi dati con ROOT Guida minima alluso di ROOT per le esperienze didattiche di Laboratorio di Elettromagnetismo Piano Lauree Scientifiche."— Transcript della presentazione:

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

2 Introduzione ROOT è un programma molto utilizzato nellambito 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: lattuale versione per Windows può essere scaricata dallindirizzo: ftp://root.cern.ch/root/root_v win32.vc90.msi Senza la pretesa di conoscere lintero pacchetto, qui considereremo alcune semplici applicazioni per un impiego immediato. 2

3 Installazione del pacchetto Una volta scaricato il file di setup (root*.msi), si segue la procedura standard di installazione, al termine della quale compare unicona sul desktop su cui cliccare per avviare ROOT ROOT è disponibile anche per altri sistemi operativi (Linux, Mac OS). Allavvio, appare una finestra (shell) per i comandi da sottomettere al programma. 3

4 Avvio di ROOT 4

5 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 lalto ( ) 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

6 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) e+000 6

7 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

8 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

9 Fit con altre funzioni Allinterno della macro inserire la funzione desiderata: Lanciare la macro. Il fit potrebbe non funzionare per via di inadeguati valori iniziali dei parametri p 0, p 1, p 2. – 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.);

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

11 Altre operazioni con ROOT Si possono visualizzare i valori dei parametri del fit: Si possono salvare i grafici ottenuti tramite linterfaccia grafica: File -> Save As… oppure Maggiori dettagli su Per ulteriori aiuti o chiarimenti: – 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;


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

Presentazioni simili


Annunci Google