Piccolo corso su ROOT e Analisi Dati

Documenti analoghi
Piccolo corso su ROOT e analisi dati

Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 11 Novembre 2015

Introduzione a ROOT. 1. Informazioni generali

Introduzione a ROOT. Alessandro De Falco, INFN Cagliari 3/4/14

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

Lezione 3: File di input, File di output

Distribuzioni di probabilità e principi del metodo di Montecarlo. Montecarlo

Algoritmi in C++ (prima parte)

Introduzione al Foglio Elettronico

EX-UD UPLOAD DOWNLOAD per centrale indirizzata

Struttura dei programmi C

Questo materiale è reperibile a questo indirizzo: PAS

Esercitazione n 2. Costruzione di grafici

DEFINIZIONI SMART E RELATIVE ESERCITAZIONI

Excel come foglio di calcolo. Altri Grafici con Excel Istogrammi, grafici a torta

Introduzione al Foglio Elettronico

Laboratorio di Elementi di Bioinformatica

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Programmazione in Java (I modulo)

Microsoft Excel Lezione 3

Primi passi con Geogebra

Fit con Root. Stefano Lacaprara

File di script. I File di Script Corso 2D - R.Virili 1

MODULO 4. Testo Chiudi il programma. 37. Indica in quale menu si trova la funzione sostituisci.

Lab. 2 - Excel. Prof. De Michele e Farina

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

CURRICOLO DI MATEMATICA SCUOLA SECONDARIA DI PRIMO GRADO

INFORMAZIONI SU MIMIOSTUDIO

ISTITUTO OMNICOMPRENSIVO ALTO ORVIETANO FABRO PROGRAMMAZIONE ANNUALE MATEMATICA CLASSE II SECONDARIA I GRADO

Manuale di Nero BurnRights

MultiBoot Guida per l'utente

Linguaggio C: introduzione

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

INTRODUZIONE SCHEDE. Le schede visualizzano i dati in tre categorie principali: Cliente - Macchina - Intervento

L INTERFACCIA CAPITOLO. In questo capitolo

ESERCITAZIONE MATLAB

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Addendum al Manuale Operativo di. Cipro32. Plug-In Pegasus 2004/2005. Lato fornitore

Istituto Scolastico Paritario Vincenza Altamura Scuola Primaria. Anno scolastico 2016/2017 Progettazione Didattica Disciplinare per la classe III

perror: individuare l errore quando una system call restituisce -1

Gestione di files Motivazioni

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Microsoft Excel. Nozioni Avanzate

Elementi di C++ di base

Introduzione al software R

OBIETTIVI DI APPRENDIMENTO DI MATEMATICA-SCUOLA SECONDARIA DI PRIMO GRADO

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

Lezione 6. Visibilità degli identificatori e tempo di vita degli oggetti

SCUOLA PRIMARIA - MORI

Istituto Comprensivo di Pralboino Curricolo Verticale

Excel 2. Master Universitario di II livello in MANAGER NELLE AMMINISTRAZIONI PUBBLICHE A.A Prof.ssa Bice Cavallo

Syllabus LIM - Modulo 1.1 Competenza Strumentale

MATEMATICA. Docente: Maria Cava Balistreri Anno scolastico 2016/17 PROGRAMMAZIONE MATEMATICA : RELAZIONI LOGICHE NUCLEI

SCUOLA PRIMARIA - MORI

INTRODUZIONE A WORD CHE COS E WORD AVVIARE E CHIUDERE WORD INTERFACCIA UTENTE DI WORD

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

SCUOLA PRIMARIA - MORI

MINIMANUALE VBA PER CREARE MACRO NEI FOGLI EXCEL

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Installazione del driver Custom PostScript o del driver della stampante PCL per Windows

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Introduzione al Linguaggio C

Introduzione al MATLAB c Parte 2 Funzioni

Creazione di database, tabelle e associazioni con Access 2003

CAPITOLO 2 RAPPRESENTAZIONI GRAFICHE DEI DATI

Informatica di Base

VISUAL BASIC FOR APPLICATION

Sistema Operativo (Software di base)

Definizione di file. Directory e file File binari e file di testo

Versione 3.0. a cura di Claudia Cavicchi Biblioteca Clinica F.Bianchi Università di Bologna

Calcoli con Fogli Elettronici

Lab 01 Introduzione a Codelite

Transcript:

Piccolo corso su ROOT e Analisi Dati Davide Cester

Parte II: Introduzione a ROOT Che cos'è ROOT Riga di comando e macro Strutture dati Lettura e scrittura di files ROOT Classi e oggetti di ROOT

...classi e oggetti di ROOT: TCanvas istogrammi 1D e 2D grafici XY Funzioni matematiche

ROOT sviluppato al CERN negli ultimi 20 anni software di analisi per i dati di LHC basato su C/C++ funzionamento interattivo o con macro fornisce strutture dati e codice già pronto http://root.cern.ch

Scrittura di files ROOT TFile *output_file = new Tfile(fileName,"RECREATE"); output_file->cd(); generic_object->write(); output_file->close();

Lettura di files ROOT TFile *infile = new TFile(fileName,"READ"); TTree *intree = (TTree*)infile->Get("datatree"); // (!) cast esplicito --^ input_file->close();

Trees - Branches - Leaves

Tree residente in memoria TTree *datatree = new TTree("name","Title"); [...] TFile *output_file = new TFile(fName,"RECREATE"); output_file->cd(); // rende il TFile la destinazione corrente datatree->write(); datatree->setdirectory(0); // riporta in memoria il tree output_file->close();

Tree residente su disco TFile *output_file = new TFile(fileName,"RECREATE"); TTree *datatree = new TTree("name","title"); [...] datatree->write(); [...] output_file->close();

Dichiarazione dei branches TBranch *branch = existing_tree->branch(branchname, Dove: address, leaflist, bufsize); branchname è il nome interno del Branch address è l'indirizzo di una struttura leaflist è l'elenco delle foglie bufsize può essere omesso

Struct associate ai branch struct evt_data_t { UInt_t evcounter; UInt_t timestamp; UShort_t samples[8]; } out_data;

Riempimento di un branch TBranch *branch = tree->branch("evbranch", &out_data.evcounter, "counter/i:time:samples[8]/s"); out_data.evcounter =... out_data.timestamp =... out_data_samples[k] =... branch->fill();

Lettura di un branch TBranch *branch = intree->getbranch("br01"); branch->setaddress(&inc_data.evcounter); branch->getentry(i); cout << out_data.evcounter;

Precisazioni L'indirizzo che va passato al costruttore del branch è quello della prima variabile della struct L'ordine ed il tipo delle variabili nella leaflist e nella struct devono combaciare

Esempi: scrivitree.c, leggitree.c

N-tuple Simile al Tree ma più semplice Contiene solo variabili float I branch ci sono, dichiarati automaticamente Esiste per tradizione

N-tuple: scrittura TNtuple *nt = new TNtuple("name", "title","var1:var2:var3"); var1 =...; var2 =...; var3 =...; nt->fill(value1,value2,value3...);

N-tuple: lettura TNtuple *nt= (TNtuple*)input_file->Get("nt_name"); // repeat for each variable: nt->setbranchaddress("varname",&var); // loop on entries: nt->getentry(numentry);

Esempi: scrivintupla.c, leggintupla.c

Istogrammi 1D L'oggetto più usato in ROOT In senso stretto, rappresenta frequenze Possiede una grande quantità di metodi utili all'analisi (ricerca picchi, fit...) Viene utilizzato per rappresentare di tutto

Istogrammi 1D TH1F("internalname","title",numBins,lowX,upX); internalname è il nome usato da ROOT title è il titolo a schermo numbins è il numero di intervalli (+2) lowx, upx sono gli estremi del grafico

Istogrammi 1D Uso per rappresentare frequenze: significato intuitivo degli intervalli i metodi restituiscono la moda, la mediana, il numero di campioni... gli spettri di energia sono grafici di frequenza in senso stretto

Istogrammi 1D Uso per rappresentare funzioni: gli intervalli simboleggiano dei punti in X le frequenze contengono il valore di f(x), arrotondato ad un intero è possibile applicare le procedure di fit al profilo del'istogramma

Istogrammi 1D Uso per rappresentare segnali: gli intervalli corrispondono alla frequenza di campionamento del segnale le frequenze contengono il valore di tensione campionato (e arrotondato) fit, ricerca dei picchi, calcolo del fondo

Metodi per riempire un istogramma: Istogrammi 1D Fill(valore): viene aumentata di 1 la frequenza del bin appropriato Fill(valore,peso): viene aumentata di 'peso' la frequenza del bin appropriato SetBinContent(): impostazione manuale

Istogrammi 1D Modi per esportare un istogramma: Salvare in un file di testo la sequenza delle altezze dei bin, e poi usare SetBinContent() Salvare l'istogramma in un file ROOT (NB: salva le altezze, non i valori originali) Salvare l'istogramma come immagine

Istogrammi 1D Operazioni applicabili ad un istogramma: Disegno di più grafici sovrapposti Ridefinizione degli intervalli (agisce sui bin) Riscalamento degli assi (ha effetto sui fit) Salvare l'istogramma come immagine Modifiche varie a linea ed area

Istogrammi 1D Disegno di più grafici sovrapposti: TCanvas *c0 = new TCanvas( c0 ); TH1F *h0 = new TH1F( h0, h0,1026,0,4096); TH1F *h1 = new TH1F( h1, h1,1026,0,4096); // riempimento degli istogrammi... h0->draw(); h1->setlinecolor(2); // 2 = rosso, vedi web h1->draw( SAME );

Istogrammi 1D Riscalamento degli assi: TH1F *h_nc = new TH1F( h_nc, h_nc,nbins,minx,maxx); float m = 1; // pendenza float q = 0; // intercetta int max_bin = h_nc->getnbinsx(); float max_kev = h_nc->getbincenter(max_bin)*m + q; h_nc->getxaxis()->setlimits(q,max_kev); h_nc->setxtitle("kev");

Istogrammi 1D Salvare una canvas (non TH1F!) come immagine: TCanvas *c0 = new TCanvas( c0 ); TH1F *histo = new TH1F( h0, h0,1026,0,4096); // riempimento del TH1F histo->draw(); c0->print( histo0.png ); c0->print( histo0.pdf );

Esempi: eventbrowserstd.c, esempio_histo.c

Fine parte II