/57 2013-03-25 Elementi di C++ Introduzione a ROOT 2013-04-11, Laboratorio Informatico ROOT warm up 2013-04-17, Laboratorio Informatico Introduzione a.

Slides:



Advertisements
Presentazioni simili
I dati Carta di Controllo p (I Fase) Numero di Campioni 25
Advertisements

Statistica Descrittiva Con STATA 7
Parametri Acustici (ISO 3382)
Interfacce Java.
Modalità di ricerca semantica nelle Biblioteche digitali Maria Teresa Biagetti DIPARTIMENTO DI SCIENZE DOCUMENTARIE LINGUISTICO-FILOLOGICHE E GEOGRAFICHE.
EUROPA TERRA DI MISSIONE. Flags of Europe This page contains flags and maps for Europe and its countries. European Union MAPS Europe 1 -- no flag references.
Stima del contributo sahariano sullItalia nel periodo state of the art- ENEA MEETING, 3 rd -5 th March 2010 A.Pederzoli, M. Mircea, G. Zanini,
L’albero della famiglia
1 Ricerca del bosone di Higgs nel canale di decadimento WW (*) 2l2 nel canale di decadimento WW (*) 2l2 Dati Spring07 CMSSW_1_3_x 100 pb -1 (47 pagine)
E. Torassa - Padova Workshop on SM H to WW* ("2007 Analysis) CERN 4 – May Y. Sirois.
Raffaele Cirullo Head of New Media Seconda Giornata italiana della statistica Aziende e bigdata.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Costruzione di Interfacce Lezione 20 Qt + Opengl
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
Introduzione alle griglie computazionali - a.a LEZIONE LEZIONE N. 12 Grid Monitoring modello GMA GridICE GridICE demo Introduzione alle griglie.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 3 - Functions Outline 3.1Introduction 3.2Program Components in C++ 3.3Math Library Functions 3.4Functions.
6.6Ordinamento di Vettori Ordinamento di dati –Applicazione computazionale importante –Virtualmente ogni organizzazione deve ordinare dei dati Enormi quantità
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Vettori e matrici. Lab.Calc. AA2005/062 Vettori Dichiarazione di un vettore di oggetti del tipo Tipo: Tipo identificatore[dimensione]; Uso di un elemento.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
FONDAMENTI DI INFORMATICA III WfMC-1. FONDAMENTI DI INFORMATICA III WfMC-2 WFMC Cose WfMC Workflow Management Coalition (WfMC), Brussels, è unorganizzazione.
1 Funzioni e Procedure in C Corso di Informatica A Vito Perrone.
Compito desame del Svolgimento della Sezione 5: CONTROLLORI Esempio preparato da Michele MICCIO.
Componenti dell’architettura Oracle
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
SOURCE TERM ON NPP SAFETY ANALYSES Marino Mazzini Professore Ordinario nel s.s.d. Impianti Nucleari Università di Pisa Facoltà di Ingegneria Dipartimento.
Concord A tool for the analysis and concordances of the terminological constituents P. Plini, N. Mastidoro* * - Èulogos, Rome Institute for Atmospheric.
Solar Modulation Davide Grandi AMS Group-INFN Milano-Bicocca.
Alcuni moduli per processare i segnali provenienti dai rivelatori
Project Review byNight byNight December 6th, 2011.
Statistica economica (6 CFU)
void binario(int n); …………………
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
/ Elementi di C++ Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione a.
Frequency Domain Processing (part 2) and Filtering C. Andrés Méndez 03/04/2013.
/ Elementi di C++ Introduzione a ROOT , Laboratorio Informatico ROOT warm up… Introduzione a RooFit Primo esercizio con RooFit Analisi.
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 21th, 2011.
Project Review byNight byNight December 6th, 2011.
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Project Review byNight byNight December 5th, 2011.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Competitività 2.0 – La leva della «Modellazione e Prototipazione Virtuale dei Prodotti e Processi» 1 Modellazione e Prototipazione Virtuale dei Prodotti.
Collection & Generics in Java
Introduction to automatic ABMs documentation Keywords: Doxygen ODD protocol MASON documentation Simone Romano.
/ Elementi di C Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione.
YOUR ITALIAN CV Step-by-step guide to create CURRICULUM VITAE in Italian language.
Moles and Formula Mass.
ROOT Tutorial Parte 2.
/ Elementi di C Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione.
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio] 26/03/2015Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri1 Gabriele.
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Laboratorio Analisi Statistica dei Dati per HEP - G.Sirri Gabriele Sirri.
CORSO DI PROGRAMMAZIONE II
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Laboratorio Analisi Statistica dei Dati per HEP - G.Sirri Gabriele Sirri.
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Gabriele Sirri Istituto Nazionale di Fisica Nucleare
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Gabriele Sirri Istituto Nazionale di Fisica Nucleare
Gabriele Sirri Istituto Nazionale di Fisica Nucleare
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio  ] Laboratorio Analisi Statistica dei Dati per HEP - G.Sirri Gabriele Sirri.
Info sullo stato della digitalizzazione
Unità didattica 1: Introduzione al linguaggio Java
Transcript della presentazione:

/ Elementi di C++ Introduzione a ROOT , Laboratorio Informatico ROOT warm up , Laboratorio Informatico Introduzione a RooFit Primo esercizio con RooFit , Laboratorio Informatico RooFit (Workspace, Factory, Composite Model) , Laboratorio Informatico Introduzione a RooStats , Laboratorio Informatico RooStats, TMVA Analisi Statistica dei Dati per HEP (Laboratorio)

/57 [1] roostats_ex1.C Si modifichi il modello: Specificare i componenti del modello per i tool statistici di roostat: osservabile e parametro di interesse. Utilizzare il numero di eventi di segnale come unico parametro di interesse. Fissare costanti tutti gli altri parametri del modello. Importare la configurazione nel workspace e salvare su file. Si modifichi luso del modello: - leggere il modelConfig dal workspace esempio: ModelConfig* mc = (ModelConfig*) w.obj("ModelConfig"); - calcolare un Confidence Interval utilizzando il ProfileLikelihoodCalculator - Disegnare il profilo della likelihood e sovrapporre lintervallo - calcolare la discovery significance utilizzando il profilelikelihoodcalculator come test di ipotesi - scrivere sulla console i limiti dellintervallo e la significatività [2] roostats_ex1.C Aggiungere lintervallo calcolato con Feldman-Cousins suggerimento : guardare il codice in : $ROOTSYS/tuturials/roostats/IntervalExamples.CIntervalExamples.C RECAP: Esercizio RooStats

/57 void makeModel(RooWorkspace& w ) { // Construct model here w.factory("Exponential:bkg(x[110,120], expr('(-1./tau)',tau[10,-1000,1000]) )"); w.factory("Gaussian:sig(x, mean[115,105,120], sigma[1.0,0,10])"); w.factory("SUM:model( Ns[100,0,120]*sig, Nb[1000,0,10000]*bkg)"); // Getting variables and functions out of a workspace RooAbsPdf * model = w.pdf("model"); RooRealVar * x = w.var("x"); // the observable RooRealVar * Ns = w.var("Ns"); // the parameter x->setBins(30); // set constant parameters w.var("mean")->setConstant(true); w.var("sigma")->setConstant(true); w.var("tau")->setConstant(true); w.var("Nb")->setConstant(true); //specify components of model for statistical tools ModelConfig modelConfig("ModelConfig"); modelConfig.SetWorkspace(w); //set components using the name of ws objects modelConfig.SetPdf( "model" ); modelConfig.SetObservables("x"); modelConfig.SetParametersOfInterest("Ns"); //import modelCong into workspace too w.import(modelConfig); // generate the data (nsig = 50, nbkg=1000) w.var("Ns")->setVal(50); w.var("Nb")->setVal(1000); // use fixed random numbers for reproducibility RooRandom::randomGenerator()->SetSeed(111); int N = 1100 ; // will generate accordint to total S+B events RooDataSet * data = model->generate( *x ); data->Print(); // add data to the workspace data->SetName("data"); w.import(*data); // write the workspace in the file const char * fileName = "model.root"; w.writeToFile(fileName,true); } non metto N

/57 void useModel(RooWorkspace& w ) { // Getting variables and functions out of a workspace RooAbsPdf * model = w.pdf("model"); RooRealVar * x = w.var("x"); // the observable RooRealVar * Ns = w.var("Ns"); // the parameter RooDataSet * data = w.data("data"); // the data // get the modelConfig out of the ModelConfig* mc = (ModelConfig*) w.obj("ModelConfig"); // create the class using data and model ProfileLikelihoodCalculator plc(*data, *mc); // set the confidence level plc.SetConfidenceLevel(0.683); // compute the interval LikelihoodInterval* interval = plc.GetInterval(); double lowerLimit = interval->LowerLimit(*Ns); double upperLimit = interval->UpperLimit(*Ns); // plot the interval LikelihoodIntervalPlot plot(interval); plot.Draw(); // Calculate the significance: SL2 estimator Ns->setVal(0); plc.SetNullParameters(*Ns); HypoTestResult* hypotest = plc.GetHypoTest(); double SL2 = hypotest->Significance(); cout << "Limits: [" << lowerLimit << " - " << upperLimit << "]" << endl; cout << "Significance (SL2): " << SL2 << endl; } Chiama il ProfileLikelihoodCalculator Passando gli argomenti (dati, modelconfig)

/57 Limits: [ ] Significance (SL2): % Ns 68% C.L. Ricordare che Nb era fissato costante, così come gli altri parametri del modello (tau, mass, sigma).

/57 void useModel(RooWorkspace& w ) { // Getting variables and functions out of a workspace RooAbsPdf * model = w.pdf("model"); RooRealVar * x = w.var("x"); // the observable RooRealVar * Ns = w.var("Ns"); // the parameter RooDataSet * data = w.data("data"); // the data // get the modelConfig out of the ModelConfig* mc = (ModelConfig*) w.obj("ModelConfig"); FeldmanCousins fc(*data, *modelConfig); fc.SetConfidenceLevel( 0.95 ); fc.SetNBins(40); // number of points to test per parameter fc.UseAdaptiveSampling(true); // make it go faster // The PDF could be extended and this could be removed // fc.FluctuateNumDataEntries(false); // Proof // ProofConfig pc(*wspace, 4, "workers=4", kFALSE); // proof-lite //ProofConfig pc(w, 8, "localhost"); // proof cluster at "localhost" // ToyMCSampler* toymcsampler = (ToyMCSampler*) fc.GetTestStatSampler(); // toymcsampler->SetProofConfig(&pc); // enable proof PointSetInterval* interval = (PointSetInterval*) fc.GetInterval(); std::cout << Feldman-Cousins Limits: ["<< interval->LowerLimit(*Ns) << ", " << interval->UpperLimit(*Ns) << "]" << endl; } Chiama il FeldmanCousins calculator Passando sempre gli argomenti (dati, modelconfig) ESERCIZIO 2 Intervallo Feldman-Cousins

/57 Feldman Cousins Interval is [16.5, 85.5 ] ProfileLikeLihood Interval is [ , ] Significance (SL2): % C.L. Ns Ricordare che Nb era fissato costante, così come gli altri parametri del modello (tau, mass, sigma). 95% C.L. === Using the following for ModelConfig === Observables: RooArgSet:: = (x) Parameters of Interest: RooArgSet:: = (Ns) PDF: RooAddPdf::model[ Ns * sig + Nb * bkg ] FeldmanCousins: ntoys per point: adaptive FeldmanCousins: nEvents per toy will fluctuate about expectation FeldmanCousins: Model has no nuisance parameters FeldmanCousins: # points to test = 40

/57 void makeModel(RooWorkspace& w ) { // Construct model here w.factory("Exponential:bkg(x[110,120], expr('(-1./tau)',tau[10,-1000,1000]) )"); w.factory("Gaussian:sig(x, mean[115,105,120], sigma[1.0,0,10])"); w.factory("SUM:model( Ns[100,0,120]*sig, Nb[1000,0,10000]*bkg)"); // Getting variables and functions out of a workspace RooAbsPdf * model = w.pdf("model"); RooRealVar * x = w.var("x"); // the observable RooRealVar * Ns = w.var("Ns"); // the parameter x->setBins(30); // set constant parameters w.var("mean")->setConstant(true); w.var("sigma")->setConstant(true); // define set of nuisance parameters w.defineSet("nuisParams", "tau,Nb"); //specify components of model for statistical tools ModelConfig modelConfig("ModelConfig"); modelConfig.SetWorkspace(w); //set components using the name of ws objects modelConfig.SetPdf( "model" ); modelConfig.SetObservables("x"); modelConfig.SetParametersOfInterest("Ns"); modelConfig.SetNuisanceParameters(*w.set("nuisParams")); //import modelCong into workspace too w.import(modelConfig); VARIAZIONE Introduciamo Nuisance Parameters

/57 Feldman Cousins Interval is [16.5, ] ProfileLikeLihood Interval is [ ] Significance (SL2): % C.L. Ns 95% C.L.

/57 VARIAZIONE Intervallo Bayesian // example use of BayesianCalculator // now we also need to specify a prior in the ModelConfig wspace->factory("Uniform::prior(mu)"); modelConfig->SetPriorPdf(*wspace->pdf("prior")); // example usage of BayesianCalculator BayesianCalculator bc(*data, *modelConfig); bc.SetConfidenceLevel( confidenceLevel); SimpleInterval* bcInt = bc.GetInterval(); Chiama il BayesianCalculator Passando sempre gli argomenti (dati, modelconfig)

/57 We create the class and configure it. Since the numerical integration can be tricky, it is better in this case to set a reasonable range from the nuisance parameters which will be integrated to obtain the marginalised posterior function. A sensible choice is to use for example an interval using 10-sigma around the best fit values for the nuisance parameters, RooRealVar *nuisPar = w->var("..."); nuisPar->setRange(nuisPar->getVal() - 10*nuisPar->getError(), nuisPar->getVal() + 10* nuisPar->getError() ) ; It is also recommended to use this class on a model which has a binned dataset or not having too many events (<~ 100), otherwise it will take a long time to obtain the result. We create the class can set the type of interval (central, upper/lower limit or shortest) and the type of integration method BayesianCalculator bayesianCalc(*data,*mc); bayesianCalc.SetConfidenceLevel(0.683); // 68% interval // set the type of interval (not really needed for central which is the default) bayesianCalc.SetLeftSideTailFraction(0.5); // for central interval //bayesianCalc.SetLeftSideTailFraction(0.); // for upper limit //bayesianCalc.SetShortestInterval(); // for shortest interval // set the integration type (not really needed for the default ADAPTIVE) // possible alternative values are "VEGAS", "MISER", or "PLAIN" (MC integration from libMathMore) // "TOYMC" (toy MC integration, work when nuisances exist and they have a constraints pdf) TString integrationType = ""; // this is needed if using TOYMC if (integrationType.Contains("TOYMC") ) { RooAbsPdf * nuisPdf = RooStats::MakeNuisancePdf(*mc, "nuisance_pdf"); if (nuisPdf) bayesianCalc.ForceNuisancePdf(*nuisPdf); } bayesianCalc.SetIntegrationType(integrationType);

/57 // compute interval by scanning the posterior function // it is done by default when computing shortest intervals bayesianCalc.SetScanOfPosterior(100); RooRealVar* firstPOI = (RooRealVar*) mc->GetParametersOfInterest()->first(); SimpleInterval* interval = bayesianCalc.GetInterval(); if (!interval) { cout << "Error computing Bayesian interval - exit " << endl; return; } double lowerLimit = interval->LowerLimit(); double upperLimit = interval->UpperLimit(); cout GetName()<<" is : ["<< lowerLimit << ", "<< upperLimit <<"] "<<endl; // draw plot of posterior function RooPlot * plot = bayesianCalc.GetPosteriorPlot(); if (plot) plot->Draw();

/57 TMVA