Introduzione a ROOT. 1. Informazioni generali



Documenti analoghi
Introduzione a Dev-C++

MICROSOFT WORD LA STAMPA UNIONE

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

MANUALE D USO DELLA PIATTAFORMA ITCMS

STAMPA UNIONE DI WORD

Codifica: dal diagramma a blocchi al linguaggio C++

Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua

Introduzione. Strumenti di Presentazione Power Point. Risultato finale. Slide. Power Point. Primi Passi 1

Funzioni in C. Violetta Lonati

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

Guida all uso di Java Diagrammi ER

Office 2007 Lezione 02. Le operazioni più

Il calendario di Windows Vista

Il personale docente e la segreteria didattica per effettuare la gestione degli scrutini dovranno eseguire semplici operazioni.

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Il comando Make: : uno strumento per la compilazione ed esecuzione di software applicativo. A. Murli - Cacolo Scientifico a.a.

MODULO 5 ACCESS Basi di dati. Lezione 4

DOCENTI - guida web. 1 LOGIN E BACHECA.. Pag 2. 2 MODIFICARE LA PASSWORD... Pag CREARE UN ARTICOLO.. Pag INSERIRE LE FOTO.. Pag.

SITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.

PowerPoint 2007 Le funzioni

Eclipse - Nozioni Base

Guida Software GestioneSpiaggia.it

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,


Figura 1 Le Icone dei file di Excel con e senza macro.

MANUALE PARCELLA FACILE PLUS INDICE

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

Funzioni. Il modello console. Interfaccia in modalità console

Istruzioni per installare EpiData e i files dati ad uso di NetAudit

Cos è Excel. Uno spreadsheet : un foglio elettronico. è una lavagna di lavoro, suddivisa in celle, cosciente del contenuto delle celle stesse

Organizzare le risorse umane con ricerca obiettivo

ISTRUZIONI SULLE OPERAZIONI DI CAMBIO ANNO CONTABILE 2005/2006 LIQUIDAZIONE IVA - STAMPA REGISTRI - CHIUSURA/APERTURA CONTI

CORSO DI INFORMATICA 2

PowerPoint. Guida introduttiva

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Raggruppamenti Conti Movimenti

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

Introduzione al Foglio Elettronico

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

L amministratore di dominio

Manuale per i redattori del sito web OttoInforma

PIATTAFORMA DOCUMENTALE CRG

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

Il Programma... 3 I moduli... 3 Installazione... 3 La finestra di Login... 4 La suite dei programmi... 6 Pannello voci... 10

FtpZone Guida all uso

EasyPrint v4.15. Gadget e calendari. Manuale Utente

C++

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

On-line Corsi d Informatica sul web

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

CdL in Medicina Veterinaria - STPA AA

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

Gestire immagini e grafica con Word 2010

Il foglio elettronico. Excel PARTE

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida

Guida Rapida di Syncronize Backup

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Appunti di: MICROSOFT EXCEL

Introduzione al MATLAB c Parte 2

Creare diagrammi di Gantt con Visio 2003

La struttura dati ad albero binario

L analisi dei dati. Capitolo Il foglio elettronico

FINE ANNO BOLLE / FATTURE PER E/SATTO

Come modificare la propria Home Page e gli elementi correlati

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

L interfaccia utente di Office 2010

Corso di Informatica. Immissione di dati. Visualizzazione come foglio dati 1. Visualizzazione come foglio dati 2 11/01/2008

Gestione del sito web con Drupal

Definire gli attributi dei blocchi

Client - Server. Client Web: il BROWSER

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Database 3 affitto veicoli. Testo del quesito

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

USO DI EXCEL CLASSE PRIMAI

Indice Statistiche Univariate Statistiche Bivariate

Maschere. Microsoft Access. Maschere. Maschere. Maschere. Aprire una maschere. In visualizzazione foglio dati: Maschere

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

SISTEMI MULTIAGENTE. Esercizio

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Creare una nuova spedizione personalizzata.

La rubrica degli indirizzi di posta elettronica associati al dominio scuole.piemonte.it

RISOLUTORE AUTOMATICO PER SUDOKU

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Uso delle tabelle e dei grafici Pivot

Monitor Orientamento. Manuale Utente

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

APPUNTI POWER POINT (album foto)

STRUMENTI DI PRESENTAZIONE MODULO 6

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

WEB-RECALL: GESTIONE DEI TICKETS DI ASSISTENZA

Versione 7.0 Taglie e Colori. Negozio Facile

Transcript:

Introduzione a ROOT 1. Informazioni generali ROOT è un ambiente visualizzazione e trattamento dati interattivo sviluppato al CERN (si veda il sito ufficiale http://root.cern.ch interamente sviluppato in linguaggio C++ e basato su un interprete di C/C++ chiamato CINT. Oltre a mettere a disposizione un interfaccia interattiva, esso fornisce un insieme di classi utili per l analisi statistica dei dati. 2. Utilizzo di ROOT Root puo' essere utilizzato essenzialmente in tre modi: in interattivo, con una macro interpretata e in un programma C/C++ compilato. Nell'ultima modalita' (in generale preferita) ROOT viene essenzialmente utilizzato come una libreria di funzioni utili che vengono incluse nel proprio programma C (o C++). 2.1 Interattivo Si attiva una sessione di ROOT digitando root nel prompt dei comandi. Si può uscire dalla sessione digitando.q sulla linea di comando di ROOT. 2.2 Con macro non compilata Si possono scrivere direttamente in ROOT quasi tutte le istruzioni di C e C++, che CINT interpreta ed esegue una alla volta. Una serie di istruzioni possono essere scritte in un file racchiuse da delle parentesi graffe (questo tipo di scipts sono detti unamed ), ad esempio { int a = 10; int b = 5; cout << a + b << endl; e successivamente eseguite semplicemente con.x nome_file. Si noti che le istruzioni sono ugualmente eseguite una per volta (da un programma che si chiama CINT), rendendo la loro esecuzione più lenta rispetto a quella di un programma compilato. Per facilitare la possibilita' di compilare le macro di ROOT che scriviamo e' consigliabile scrivere le istruzioni in named scripts, nel modo seguente: 1

int mymacro(){ int a = 10; int b = 5; cout << a + b << endl; return 0; Si può anche scrivere una o più funzioni in un file, con lo stessa sintassi delle normali funzioni di C/C++, e poi caricarle nella sessione corrente di ROOT digitando.l nome_file. 2.3 In programmi C/C++ compilati In questo caso il prototipo e' un named script con alcune differenze: 1) Occorre includere tutti i files necessari 2) Occorre definire una TApplication : questo serve a far si che al termine dell'esecuzione del programma le finestre grafiche restino visibili. Ecco un esempio di come appare un programma C che includa librarie di ROOT #include "TCanvas.h" #include "TF1.h" #include <iostream> #include "Tapplication.h"... using namespace std; int main (int argc, char**argv) { TApplication app("app",&argc, argv); int a = 10; int b = 5; cout << a + b << endl; TF1 *f1 = new TF1("f1","sin(x)/x",0.,10.)... app.run(); return 0; 2

Ovviamente nella fase di compilazione dovremo indicare al compilatore dove deve andare a cercare le librerie di ROOT richieste dal nostro programma (prog.c): 3. Le classi di ROOT g++ o prog.x prog.c `root config cflags` `root config libs` Tra le tante classi di ROOT prendiamo in considerazione quelle utili per creare e disegnare funzioni matematiche, grafici e istogrammi. 3.1La classe TF1 Con l istruzione TF1 *f1 = new TF1("f1","sin(x)/x",0.,10.) si dichiara un puntatore ad una variabile di tipo TF1, cioè una funzione monodimensionale, di nome f1 e che corrisponde alla funzione f(x) = sin(x)/x. La variabilità della funzione viene limitata all intervallo 0 < x < 10. Una classe contiene in sé una serie di funzioni, chiamati metodi, che permettono di gestire le variabili della classe. I metodi si possono chiamare con la sintassi: f1->draw() In questo caso in metodo Draw() disegna la funzione f1 appena dichiarata. E possibile modificare l'aspetto grafico, ad esempio il colore della linea, lo spessore, la dimensione della finestra, semplicemente cliccando con il tasto destro del mouse sugli oggetti che si vogliono modificare. Apparirà un menù a tendina con le varie caratteristiche che è possibile modificare. Ogni modifica che è possibile fare in modo interattivo, si può anche fare utilizzando del codice. Il grafico creato si può salvare utilizzando il menu File -> Save As; si può salvare in diversi formati, il più comodo per poter successivamente stampare è il formato PostScript (.ps). Alcuni metodi di TF1: f1->setrange(-2.,15.) //Cambia l'intervallo di definizione f1->eval(1.) f1->derivative(1.) f1->integral(0.,1.) Si può definire una nuova funzione a partire da f1: // Valutarla in un punto TF1 *f2 = new TF1("f2","2.*f1",0.,10.) Ci saranno utili per eseguire fit funzioni dipendenti da parametri: // Valutarne la derivata in un punto // Calcolare l'integrale definito TF1 *f3 = new TF1("f3","[0]*x*sin([1]*x)",-3.,3.) f3->setparameter(0,10.) // Definire il parametro [0] a 10. f3->setparameters(10.,5.)// Definire [0] a 10. e [1] a 5. 3

3.2 La classe TGraph Due vettori del medesimo tipo possono descrivere dei punti un piano bidimensionale. La classe TGraph gestisce i grafici a punti. { int n = 20; double x[20], y[20]; for (int i = 0; i < n; i++){ x[i] = i*0.5; y[i] = 10.*sin(x[i]+0.2); TGraph *g = new TGpraph(n,x,y); // Definisce il grafico g->draw("a*"); // A = Disegna gli assi // * = Segna i punti con un * 3.3La classi TH1F e TH2F Per la gestione di istogrammi esistono le classi TH1F (istogramma monodimensionale riempito con float) e TH2F (istogramma bidimensionale riempito con float): Definizione: TH1F *h1 = new TH1("h1","Isto 1D",100,-5.,5.) TH2F *h2 = new TH2("h2","Isto 2D",100,-5.,5.,100,-5.,5.) Riempimento (dove x e y sono float): h1->fill(x) h2->fill(x,y) Grafico: h1->draw() h2->draw() 3.4 La classe TCanvas In ognuna delle classi precedenti, la chiamata del metodo Draw() produce una finestra grafica in cui viene disegnato il grafico desiderato. Ogni successiva chiamata di un metodo Draw() sovrascrive il nuovo grafico sulla precedente finestra grafica. Per evitare ciò si possono creare finestre grafiche definendo variabili di tipo TCanvas. La sequenza di comandi 4

TCanvas *c1 = new TCanvas("c1","Istogramma 1D",600,400) h1->draw() TCanvas *c2 = new TCanvas("c2","Istogramma 2D",600,400) h2->draw() produce due finestre distinte ciascuna con l istogramma richiesto. 4. Eseguire fit con ROOT Supponiamo di avere due vettori x e y di dimensione N e di voler trovare la retta che meglio descrive l andamento di y(x). TGraph *retta = new TGraph(N,x,y) retta->draw("a*") retta->fit("pol1") // poln = polinomio di grado N // gaus = gaussiana Ulteriormente, possedendo anche i valori degli errori su x e y, si può eseguire un fit pesato: TGraphErrors *retta_err = new TGraphErrors(N,x,y,errx,erry) retta_err->draw("a*") retta_err->fit("pol1") Al posto di una funzione predefinita di ROOT come poln o gaus, è consigliabile utilizzare una funzione definita dall'utente, ad esempio: TF1 *f1 = new TF1("f1","[0]+[1]*x",0.10.) retta_err->draw("a*") retta_err->fit("f1") In questo modo, non solo è possibile fittare con qualsiasi funzione, ma permette anche di recuperare in modo immediato il risultato del fit: f1->getparameter(0) f1->getparameter(1) f1->getchisquare() Si noti che per recuperare i parametri ottenuti fittando con la funzione predefinita gaus avremmo dovuto prima recuperare la funzione usata per il fit e successivamente recuperare i parametri. TF1 *f1 = retta_err->getfunction( gaus ) f1->getparameter(0) f1->getparameter(1) 5

f1->getchisquare() Nel caso di fit di un istogramma, il funzionamento del metodo Fit() è del tutto identico. 6