Fit con Root. Stefano Lacaprara

Похожие документы
Distribuzioni di probabilità e principi del metodo di Montecarlo. Montecarlo

Simulazione dei dati

La simulazione è l'imitazione di un processo o di un sistema reale per un

Il Corso di Fisica per Scienze Biologiche

Algoritmi in C++ (prima parte)

Analisi degli Errori di Misura. 08/04/2009 G.Sirri

Il Corso di Fisica per Scienze Biologiche

Generazione di Numeri Casuali- Parte 2

La statistica. Elaborazione e rappresentazione dei dati Gli indicatori statistici. Prof. Giuseppe Carucci

Il proprietario di una catena di negozi vuole confrontare il reddito (in euro) dei suoi 5 negozi, riportato nella seguente tabella

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

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

- noise di conteggio ; f[m] è un numero intero che è la realizzazione di una variabile aleatoria con valor medio (valore atteso) f 0 [m].

Il processo inferenziale consente di generalizzare, con un certo grado di sicurezza, i risultati ottenuti osservando uno o più campioni

Distribuzione Gaussiana

Lezione 3: File di input, File di output

FISICA ( MODERNA ) E PROBABILITÀ

Algoritmi in C++ (seconda parte)

Distribuzione Gaussiana - Facciamo un riassunto -

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Misure Meccaniche e Termiche. punti massa. Valore atteso: Varianza:

PROBABILITÀ - SCHEDA N. 3 VARIABILI ALEATORIE CONTINUE E SIMULAZIONE

Esercitazioni di Meccanica Quantistica I

Introduzione a ROOT. 1. Informazioni generali

tabelle grafici misure di

Generazione di numeri casuali

Elementi di Psicometria con Laboratorio di SPSS 1

Programmazione orientata agli oggetti. Ivan Lanese

ANALISI DI FREQUENZA

Tempo di risposta di un termometro a mercurio

x appartiene ad N, tale che x è maggiore uguale a 9, e ( x minore uguale a 12.

Dati sperimentali Nella serie di 10 misurazioni di tempo effettuate, si sono ottenuti i seguenti valori espressi in secondi:

IE FISICA Verifica 10 gennaio 2015 tutti gli esercizi e tutte le domande

Programmazione ad oggetti

Distribuzione esponenziale. f(x) = 0 x < 0

ISTOGRAMMI E DISTRIBUZIONI:

I POSTULATI DELLA MECCANICA QUANTISTICA

Lezione 1. Argomenti della lezione: Introduzione a ROOT

Capitolo 6 La distribuzione normale

Corso di Informatica Modulo T1 1 - Il concetto di problema

Come attribuire i punteggi M I S U R A R E

STATISTICA 1, metodi matematici e statistici Introduzione al linguaggio R Esercitazione 7:

Corso di Laurea in Informatica Calcolo delle Probabilità e Statistica (269AA) A.A. 2016/17 - Prima prova in itinere

Capitolo 10. La media pesata Calcolo della media pesata

Teorema di Gauss per il campo elettrico E

Note sulla probabilità

Un esempio di calcolo di complessità: insertion sort

Corso di Laurea: Diritto per le Imprese e le istituzioni a.a Statistica. Probabilità. Lezioni : 11, 12. Docente: Alessandra Durio

FISICA. Elaborazione dei dati sperimentali. Autore: prof. Pappalardo Vincenzo docente di Matematica e Fisica

Laboratorio di Calcolo I. Applicazioni : Metodo Monte Carlo

1. Funzioni implicite

Distribuzione normale

Statistica ARGOMENTI. Calcolo combinatorio

Esempio 2: Subtyping

Distribuzioni di probabilità. Un po' di teoria

Differenze divise. Polinomio di interpolazione nella forma di Newton. Proprietà. Se n=0. Simmetria. Ricorsività. Abbiamo un solo punto

Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci

Capitolo 6. La distribuzione normale

PROVE SCRITTE DI MATEMATICA APPLICATA, ANNO 2006/07

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

Elementi di Psicometria

Come errore prendo la semidispersione o errore massimo, cioè il valore più grande meno quello più piccolo diviso 2.

Misura. Istituzioni di matematiche 2. Come facciamo a misurare? Come facciamo a misurare? Diego Noja

Metodi Computazionali. Generazione di numeri pseudocasuali

Definire cara6erisiche variabile (1):Menu: Column definiion

Potenziale elettrostatico

Relazione di fisica ESPERIMENTO N 1

Definizioni basilari di funzione.

SCHEDA DIDATTICA N 7

La media e la mediana sono indicatori di centralità, che indicano un centro dei dati.

Criteri di Scelta Finanziaria

Транскрипт:

Fit con Root Stefano Lacaprara

Cos'e' l'analisi dati L'analisi dati consiste nell'estrarre da una (decentemente confusa) serie di dati alcune (poche) quantita di interesse fisico Visto che tutte le quantita misurabili sono affette da rumore (strumentale, stocastico, ecc), e necessario adottare procedure per eliminare tale componente

Inoltre. non sempre le quantita misurate sono pure, cioe non affette da misurazioni di quantita che poco c entrano con quello che vogliamo misurare per esempio: voglio misurare la temperature di una stanza ma se c e gente dentro la temperatura cambia, per cui dovrei avere modo di capire se la stanza e occupata oppure no non sempre posso farlo, devo cercare di capire quale sia la temperatura media della stanza senza saperlo

Misure le 3 componenti di una misura possono essere divise in segnale quello che vorremmo misurare fondo misure che vengono da fenomeni diversi da quello che vogliamo misurare rumore componente aggiuntiva dovuta tipicamente agli strumenti di misura (o alla meccanica quantistica ) Misura = segnale + fondo + rumore

serve: Come estrarre il segnale? una modellazione del comportamento del segnale una modellazione del comportamento del fondo una modellazione del rumore un FIT!

esempio

posso dire a occhio ma la simulazione lo deve confermare che il segnale e gaussiano il fondo e circa piatto il rumore c e da quel plot voglio estrarre il valore medio e larghezza della gaussiana come fare?

FIT Ci sono molti modi, ma il soldoni sapete gia cosa sia si prendono dei dati si prende una funzione matematica con dei parametri liberi Bisogna scegliere la funzione giusta! Nessun programma lo puo' fare per noi si cambiano I parametri fino a quando I dati e la funzione sono il piu simili possibile e qui sta il casino Farlo a mano e' complicato: si usano programmi che sanno farlo

Root Sa fare (nativamente) fit di funzioni semplici gaussiane polinomiali landau esponenziali Ecc... Come si fa: Stupido, dato un istogramma, aprire il Fit Panel oppure isto.fit( gaus )

ma se voglio cose piu complesse? Se non mi basta fare fit a gaussiane ecc ecc? Con root si puo' fare Per esempio: root permette di usare una funzione in C++ (con parametri liberi) per effettuare il fit Cioe' posso fittare una distribuzione con una funzione a mia scelta Qualunque funzione! Potrei anche fittare con la funzione di mandelbrot!

Come fare? definire una funzione C++ del tipo double funzione(double* x, double* par){ return par[0]*x[0]+par[1]; } puntatore, consideratelo un vettore delle coordinate se e una funzione ad una sola variabile, x[0] e x puntatore, consideratelo un vettore dei parametri liberi

ho quindi definito una funzione ad una variabile (x[0]) che ha due parametri liberi (par[0] e par[1]) in pratica funzione = P 0 *x+p 1 sto facendo il fit ad una retta!

a questo punto devo insegnare a root questa funzione TF1 funz( funzionemia, funzione,0,100,2); nome con cui root la conoscera nome della funzione che ho creato in C+ + intervallo di validita numero di parametri liberi

isto.fit( funzionemia ); esegue il fit A questo punto facciamo un tentativo completo!

Fisica delle alte energie ho eseguito una misura in fisica delle alte energie, devo estrarre il valore della massa di una particella, e la sua vita media posso modellizzare il segnale dalla particella come una gaussiana, il cui valore medio e la massa e la cui sigma e legata alla vita media la misura ha del fondo dovuto a fenomeni che al momento non ci interessano, ma il fondo posso supporlo constante (a meno del rumore)

Ok, complichiamoci la vita Supponiamo che i miei dati come sovrapposizione di una gaussiana, il segnale e di una distrtibuzione piatta (fondo) Creiamo un istrogramma e lo riempiamo con gaussiana e uniforme Poi facciamo un fit e cerchiamo di recuperare i parametri della gaussiana

ora Definiamo una funzione che (a nostro giudizio) riproduce la distribuzione gaussiana+costate, quindi con 3+1 parametri liberi facciamo il fit Ci interessano P_2 e P_3 x 2 P2 2 P f x =P e 3 P4 1

Una volta fatto il fit possiamo avere in C++ il risultato, con funz.getparameter(2); // legge par[2] funz.getparerror(2); // legge l errore su par[2]

prego provare

ha funzionato? probabilmente no il fatto e che la procedura di fit non puo essere piu di tanto furba, per cui devo dare di valori di partenza non inverosimili Prima di fare il fit, posso fare funz.setparameter(2,66); inizializza il par[2] a 66 prima di fare il fit

se la sigma viene negativa? possiamo dare dei limiti ai parametri liberi per esempio funz.setparlimits(3,0,100); impongo ch par[3] possa andare da 0 a 100 solamente

Alternativa In root (come nella vita) ci sono molti modi di fare la stessa cosa. Vediamone altri Definirie una funzione: gaus+constante sono due funzioni che root gia' conosce (gaus+pol0) devo solo combinarle TF1 gausplusconst( gausplusconst, gaus(0)+pol0(3),-10.,10.) gausiana: il primo parametro e' il numero 0 polinomiale di grado 0 (costante); primo parametro e' il numero 3

Se voglio disegnarla gausplusconst.draw() ma prima devo dare un valore ai parametri (altrimenti valgono tutti 0) g.setparameter(0,100); g.setparameter(1,0); g.setparameter(2,1); g.setparameter(3,10); g.drawcopy();

Posso anche riutilizzarla Posso definire una formula TFormula ff( ff, abs(sin(x)/x) ); TF1 h("h","g+ff",-10,10); Oppure una combinazione form1 = new TFormula("form1","abs(sin(x)/x)"); sqroot = new TF1("sqroot","x*gaus(0) + [3]*form1",0,10); sqroot->setparameters(10,4,1,20); parametro #3

Riempire isto con random Si puo' fare a mano: si generano numeri casuali con la distribuzione voluta isto.fill(x); Se non abbiamo un generatore per la distribuzione voluta dobbiamo farlo noi Metodo dello scarto Oppure lo si fa fare a root

Ho una funzione f(x) Metodo dello scarto Genero un numero casuale x tra Xmin e Xmax Genero un secondo numero casuale y tra Ymin e Ymax Se y<f(x), allora riempio l'istogramma con x se y>f(x), allora scarto x e riparto Alla fine ho un istogramma riempito con numeri casuali distribuiti come f(x) E' un buon esercizio da fare a casa! Inventatevi una funzione, riempite un istogramma con numeri casuali secondo quella distribuzione e poi fate un fit con la funzione.

Molto semplicemente Lo fa root! TF1 miafunc("miafunc",...); // come prima histo.fillrandom("miafunc",10000); Riempi istogramma histo con 10000 numeri casuali distribuiti secondo miafunc

Esercizio Create un istogramma e riempitelo con due gaussiane e uniforme (due particelle con massa vicina) eg gaus1: n=1000, mean = 10.3, sigma=1.5 gaus2: n=500, mean = 13.1, sigma = 0.7 Fondo: n=2000 (uniforme 0-20) Fate un fit con una funzione appropriata e ritrovate le due particelle NB: ci vuole qualche iterazione per scegliere bene i parametri iniziali