ROOT Tutorial Parte 3.

Slides:



Advertisements
Presentazioni simili
C++ Di Marco Cozzani.
Advertisements

Laboratorio Processi Stocastici
Alcune semplici istruzioni per iniziare a lavorare con i treeviewer in root Laboratorio di Fisica 2 A.A Dott. Francesco Noferini.
Numeri casuali Cos’e’ un numero casuale? 3 e’ un numero casuale?
Laboratorio Processi Stocastici
Cenni a calcolo di probabilità elementare
Esercizi Si deve preparare una soluzione di NaCl con una concentrazione pari a c=1 g/l con errore inferiore all’1%. Viene utilizzato un matraccio da 50.
Fare scienza con il computer
Corso di Informatica (Programmazione)
Esercizi di riepilogo Gabriella Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
STIMA DELLO SPETTRO Noi considereremo esempi:
Argomenti della lezione
STATISTICA a.a DISTRIBUZIONE BINOMIALE (cenni)
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Corso di Laboratorio di Informatica
Algoritmi su Tipi Semplici
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
File di testo, file binari
Num / 17 Lezione 8 Numerosità del campione, metodi grafici.
Lezione III Laboratorio di Programmazione. while e do while do S1; while(E); //S1 e eseguita almeno 1 volta E = vero? SI NO S1 while (E) S1; E = vero?
Setup misure POUXE PMT Hamamatzu 40,5 cm 1 cm 20 cm Solo quello centrale è collegato al POUXE senza discriminatore. Gli.
Popolazione campione Y - variabile casuale y - valori argomentali Frequenza relativa: Estrazione Densità della classe i-esima: Lezione 1.
Rocco – Schede di Informatica I 5 PASSI PER FARE UNA PRESENTAZIONE.
Registrazione su 000webhost
1. 2 Struct Al fine di illustrare luso del tipo struct, utilizzando le struct descritte nella lezione precedente, mostriamo come si scrive un programma.
Elementi di teoria della probabilità e distribuzioni di probabilità
void binario(int n); …………………
PROBABILITA : se un EVENTO si verifica in h modi diversi su n possibili (POPOLAZIONE) p = h/n Questa definizione è talvolta applicabile a priori (es. lancio.
Esercizio 1 Da un mazzo di carte da 40 estraggo casualmente e senza reimmissione 3 carte: quante sono le possibili terne? considerate i seguenti eventi:
Modifica Crivello di Eratostene
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
ROOT Tutorial Parte 3.
ROOT Tutorial Parte 2.
/ Elementi di C Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione.
Introduzione al metodo Monte Carlo
1 Un esempio con iteratore: le liste ordinate di interi.
Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl.
Introduzione a Windows (Seconda parte) Lezione 3 Riccardo Sama' Copyright 
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Laboratorio Analisi Statistica dei Dati per HEP - G.Sirri Gabriele Sirri.
Strumenti statistici in Excell
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Esercizi Determinare la probabilità che, lanciando due dadi da gioco, si abbia: A: somma dei risultati maggiore di 10 B: differenza dei punteggi in valore.
La variabile casuale poissoniana nell'ambito degli arrivi dei raggi cosmici Obiettivo: verificare che gli arrivi dei raggi cosmici seguono una distribuzione.
Registrazione su altervista Dal browser collegarsi al sito : “ ”
Misura di una quantità fisica
Probabilità. Un percorso didattico esperimenti e simulazioni L. Cappello 9 Maggio Didattica probabilità e statistica PAS 2014.
I rischi di mercato: i modelli di simulazione Lezione 9
Esercizio n.1 Dato: a)Calcolare I analiticamente. b)metodo rettangolare con 5 intervalli; c)metodo trapezoidale con 5 intervalli; d)regola di Simpson con.
A.a. 2005/2006Introduzione a ROOT: E. Meroni ROOT É un potente strumento object oriented per analisi di dati, preparato al CERN Può.
C++:Strutture di Controllo
Esercitazione sull’ ordinamento 20 maggio 2003
ROOT Tutorial.
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Gabriele Sirri Istituto Nazionale di Fisica Nucleare
ROOT Tutorial Parte 2.
Eventi aleatori Un evento è aleatorio (casuale) quando non si può prevedere con certezza se avverrà o meno I fenomeni (eventi) aleatori sono studiati.
ROOT Tutorial Parte 4.
Elaborazione statistica di dati
Algoritmo di Level-2 muon trigger Seminari Atlas Napoli 15/7/2011.
Esercizio 1 La seguente distribuzione riporta i punteggi di ansia misurata prima dell’esame di psicometria: a) Costruire una tabella di frequenza, indicando:
Operazioni di campionamento CAMPIONAMENTO Tutte le operazioni effettuate per ottenere informazioni sul sito /area da monitorare (a parte quelle di analisi)
Luciano Pandola INFN-LNGS Presentazione basata da S. Panacek e N. Di Marco Corso INFN su C++, ROOT e Geant4.
Cicli e Array. 2 Costrutto while while(espressione) { … } Il codice dentro le parentesi graffe viene eseguito finché la condizione è vera Potrebbe non.
In alcuni casi gli esiti di un esperimento possono essere considerati numeri naturali in modo naturale. Esempio: lancio di un dado In atri casi si definisce.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Scienze tecniche e psicologiche
METODI NUMERICI PER LA DERIVAZIONE DI FUNZIONI Prof. Stefano Gori Liceo Scientifico Salutati – Montecatini Terme.
Esercitazione – Parte 1 Definire una funzione Gaussiana normalizzata a 1 (con valor medio  e deviazione standard  a piacere) e calcolare l’integrale.
Transcript della presentazione:

ROOT Tutorial Parte 3

Generatori di numeri casuali In ROOT numeri pseudo - casuali sono generati usando le classi TRandom. Esistono 4 differenti classi (TRandom, TRandom1, TRandom2 e TRandom3), ciascuna delle quali implementa un differente tipo di generatore di numeri casuali. Il metodo SetSeed permette di scegliere il seme. gRandom->SetSeed(Int_t seed); Se non specificato, il seme è stabilito dal clock del PC Esempio: distribuzione uniforme void randomUni(){ Double_t x, y; TH2D *h2 = new TH2D(“h2”,”Uniform Distribution”, 100,0,10,100,0,10); for(Int_t i=0; i < 100000; i++){ x = gRandom->Uniform(0,10); y = gRandom->Uniform(0,10); h2->Fill(x,y); } gStyle->SetPalette(1); h2->Draw(“colz”);

Distribuzioni non uniformi Tre possibilità (vedi lezione MC prof. Riggi): Distribuzione uniforme con eventi pesati Metodo dell’inversione Metodo del rigetto Esempio: distribuzione eventi secondo sin Proviamo: Metodo dell’inversione Metodo del rigetto

Metodo dell’inversione Problema: Estrarre una sequenza di numeri casuali distribuiti secondo la funzione f(x) = sin(x) Data la funzione di probabilità f(x), la funzione integrale (cumulativa) F(t) è data da: F(t) = ∫f(t)dt = ∫sin(t)dt = -cos(t) Se la funzione integrale è invertibile, si può generare la sequenza di numeri casuali x, distribuiti secondo f(x), partendo da un numero casuale u (distribuito tra -1 e 1) e calcolando x da: x = F-1 (u) = - arccos(u) (se  < x < 2) Oppure x = F-1 (u) = arccos(u) (se 0 < x < )

Metodo dell’inversione void inversion() { Int_t nev = 1000000; //sin(theta) distribution TH1D *h1 = new TH1D("h1","sin(theta) distribution", 100,0,TMath::Pi()); TStopwatch t; t.Start(); Double_t ux; for(Int_t n = 0; n < nev; n++) { ux = TMath::ACos(gRandom->Uniform(-1,1)); h1->Fill(ux); } t.Stop(); t.Print("m"); h1->Draw();

Metodo del rigetto Problema: Estrarre una sequenza di numeri casuali distribuiti secondo la funzione f(x) = sin(x) nell’intervallo (0, ) Metodo: Generare ux uniforme in (0, ) Generare uy uniforme in (0,fmax) dove fmax = 1 Valutare f(ux) Confrontare uy con f(ux) Se uy < f(ux) accettare ux Se uy > f(ux) ripetere da a. in poi

Metodo del rigetto void rejection(){ Int_t nev = 1000000; Int_t n=0; //sin(theta) distribution TH1D *h1 = new TH1D("h1","sin(theta) distribution", 100,0,TMath::Pi()); TStopwatch t; t.Start(); Double_t ux; // between 0 and Pi/2 Double_t f_ux; Double_t uy; // between -1 and 1 do { ux = gRandom->Uniform(0, TMath::Pi()); f_ux = TMath::Sin(ux); uy = gRandom->Uniform(0, 1); if(uy > f_ux) continue; //rejection n++; h1->Fill(ux); } while (n < nev); t.Stop(); t.Print("m"); h1->Draw();

Distribuzione non uniformi disponibili in ROOT

Esercizio: simulazione MC per valutare la distanza relativa tra due contatori geiger Ipotesi: 1) Contatori Geiger bidimensionali r = 0.5 Geiger radius in cm l = 6 Geiger length in cm 2) Distanza nominale d = 5 cm 3) Estrazione uniforme dei punti Possibili miglioramenti: 1) Contatori Geiger in 3D DA VERIFICARE!

void geigerMC(){ Double_t x1, y1, x2, y2; //Define the experimental setup const int d = 5; // Distance between geigers Double_t r = 0.5; // Geiger radius in cm Double_t l = 6; // Geiger length in cm Double_t distance; TH1D *h1 = new TH1D("h1","Distances distribution", 100,0,10); TH2D *h2 = new TH2D("h2","Points distribution", 150, -5, 10, 100, -5, 5); for(Int_t i=0; i < 100000; i++){ x1 = gRandom->Uniform(-r,r); y1 = gRandom->Uniform(-l/2,l/2); x2 = gRandom->Uniform(d-r,d+r); y2 = gRandom->Uniform(-l/2,l/2); h2->Fill(x1,y1); h2->Fill(x2,y2); distance = TMath::Sqrt((x1-x2)**2+(y1-y2)**2); h1->Fill(distance); } TCanvas *c1 = new TCanvas(); h2->Draw("colz"); TCanvas *c2 = new TCanvas(); h1->Draw();

5 cm

3 cm 15 cm

Esempio: distribuzione uniforme in x, gaussiana in y void randomGaus(){ Double_t x, y; TH2D *h2 = new TH2D(“h2”,”Uniform Distribution”, 100,0,10,100,0,10); for(Int_t i=0; i < 100000; i++){ x = gRandom->Uniform(0,10); y = gRandom->Gaus(5,1); h2->Fill(x,y); } gStyle->SetPalette(1); h2->Draw(); h2->Draw(“colz”); h2->Draw(“lego”);

Esempio: distribuzione uniforme nello spazio Estrazione uniforme (,)? void sfera(){ Int_t raggio=1; Double_t teta, phi; TH3D *hsemisfera = new TH3D("hsemisfera","hsemisfera",200,-1,1,200,-1,1,100,0,1); for(Int_t i=0; i<10000; i++){ teta = gRandom->Uniform(0,TMath::Pi()/2); //semisfera // teta = gRandom->Uniform(0,TMath::Pi()); // sfera phi = gRandom->Uniform(0,2*TMath::Pi()); Double_t x = raggio * TMath::Cos(phi)*TMath::Sin(teta); Double_t y = raggio * TMath::Sin(phi)*TMath::Sin(teta); Double_t z = raggio * TMath::Cos(teta); hsemisfera->Fill(x,y,z); } hsemisfera->Draw();

Estrazione uniforme in  e in sin() void sfera2(){ Int_t raggio=1; Double_t teta, phi; TH3D *hsemisfera = new TH3D("hsemisfera","hsemisfera",200,-1,1,200,-1,1,100,0,1); for(Int_t i=0; i<10000; i++){ teta = TMath::ACos(gRandom->Uniform(0,1)); //Semisfera //teta = TMath::ACos(-1 + 2*gRandom->Uniform(0,1)); //Sfera phi = gRandom->Uniform(0,2*TMath::Pi()); Double_t x = raggio * TMath::Cos(phi)*TMath::Sin(teta); Double_t y = raggio * TMath::Sin(phi)*TMath::Sin(teta); Double_t z = raggio * TMath::Cos(teta); hsemisfera->Fill(x,y,z); } hsemisfera->Draw();

Estrarre numeri casuali secondo una distribuzione f(x) nota TF1 *f = new TF1(“f”,”TMath::Gaus(x,0,1)”,-5,5); TH1D *h1 = new TH1D("h1","",100,-5,5); for(int i=0; i<1000; i++) h1->Fill(f->GetRandom()); h1->Draw();

TFile f(“esempio.root","recreate"); h0->Write(); f.Close(); ROOT Files Si tratta di file salvati in un formato leggibile da ROOT. Può contenere vari tipi di oggetti. Esempio: TFile f(“esempio.root","recreate"); h0->Write(); f.Close(); Per creare un file ROOT e salvare un istogramma Opzioni: NEW, CREATE, RECREATE, UPDATE, READ TFile f("demo.root"); TBrowser browser; Per aprire un file ROOT e vederne il contenuto