Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. Laboratorio Introduzione - Gabriele Sirri Istituto Nazionale di Fisica Nucleare - Unibo
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. [Laboratorio ] Introduzione Gabriele Sirri Istituto Nazionale di Fisica Nucleare Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 1
DISCLAIMER (… ovvero Finalità del corso) Questo corso è : – Un Laboratorio una introduzione pratica a strumenti statistici avanzati (Roofit, RooStats, TMVA) dalla prospettiva di un utilizzatore Questo corso non è : – Una introduzione alla statistica – Una introduzione a tecniche di interpolazione o di classificazione – Una introduzione a ROOT e tanto meno al C++ Cosa non sono io: – Un profondo conoscitore di tutti gli aspetti di questi strumenti, ma uno che li ha usati e che proverà a condividerne l’esperienza. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 2
Programma Gli argomenti che affronteremo sono • Modellizzazione con RooFit – (Workspace, Factory, Composite Model) • Formulazione di problemi di fisica con RooStats (Sensitivity plot, Hypothesis test, confidence intervals, … ) • Analisi multivariata con TMVA Il corso è strutturato in 5 Lezioni da 3 ore . Ogni lezione comprende una introduzione all’argomento e una parte di esercitazioni e homework in cui dovete applicarvi su un tutorial. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 3
Chiarimenti sulle modalità di esame Modalità di verifica dell'apprendimento L'esame è solo orale. Per poter sostenere l'orale è necessario aver completato e consegnato al docente le prove pratiche di laboratorio, che non influiscono comunque sul voto finale. L'esame è presieduto dai tre docenti e indicativamente vengono poste tre domande sui tre moduli: una domanda di teoria, una verifica sulla capacità di impostazione di un esercizio pratico, una verifica sulla capacità di utilizzo degli strumenti software. Le date degli appelli sono da concordare con i docenti e vanno fissate all'interno delle sessioni d'esame. Per iscriversi è necessario spedire un'email a maximiliano.sioli@unibo.it. • L’esame del corso di Analisi Statistica dei Dati nella Fisica Nucleare e Subnucleare è orale e unico per le 3 parti (teoria, esercizi, laboratorio). Per la parte di laboratorio , possono essere domande generali sugli argomenti. Non sarà chiesto di scrivere codice. • L’accesso all’esame è vincolato dalla spedizione via mail della soluzione dei tutorial proposti alle lezioni di laboratorio a gabriele.sirri2@unibo.it . • Non è prevista la valutazione dei singoli tutorial (non c’è voto). Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 4
Esercitazioni (modalità) • L’esercitazione consiste nel risolvere dei tutorial utilizzando ROOT e C++. • Vi sarà dato un foglio con gli esercizi che inizieremo a guardare insieme e che potete completare a casa • Gli esercizi saranno disponibili in rete nel sito http://www.unibo.it/docenti/gabriele.sirri2 tra i Contenuti Utili, Materiale per il Corso. • E’ possibile, ma non obbligatorio, lavorare in coppia Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 5
Esercitazioni (soluzioni) • La soluzione dell’esercizio deve essere inviata, entro la lezione successiva, all’indirizzo mail: gabriele.sirri2@unibo.it • Alla lezione successiva correggeremo insieme e/o commenteremo la soluzione di qualche problema. • Se per un qualunque motivo non siete riusciti a inviare la soluzione in tempo, avvisatemi. • Se trovate difficoltà, potete contattarmi. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 6
Esercitazioni (soluzioni) Se tutti sarete puntuali nella consegna… • Le mie soluzioni saranno pubblicate sul sito, una volta raccolte le vostre e saranno visibili alla lista di distribuzione docenti-studenti: gabriele.sirri2.ASD-2017-LAB a cui vi invito ad iscrivervi Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 7
Materiale on-line http://www.unibo.it/docenti/gabriele.sirri2 Controllate gli AVVISI … …e i Contenuti Utili ! • PROGRAMMA DEL CORSO slides, esercizi, suggerimenti, soluzioni • UTILIZZO DI ROOT SU UN PORTATILE PERSONALE • Installazione ROOT Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 8
Esercitazioni … come , dove ? DOVE ? 1) Aula Informatica In laboratorio ci sono circa 10 pc Windows con ROOT per Windows e macchine virtuali con Scientific Linux 6 (e ROOT per Linux) 2) in Aula C (problemi: spazio, prese elettriche, internet,…) COME Potete utilizzare i vostri portatili personali (Windows o Linux o Apple), a condizione che : Abbiate PRIMA installato ROOT e verificato che comprende Roofit/RooStats e TMVA Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 9
Requisiti per l'uso del portatile personale Le sessioni di esercizi richiedono la scrittura e l'esecuzione di software basato sul pacchetto ROOT (http://root.cern.ch/ ) del CERN. Nel portatile deve essere installato il seguente software: • ROOT (v5.34 o v6.xx ) con RooStats e TMVA • un editor, come ad esempio Emacs o equivalente Importante: Windows - La versione di ROOT per Windows comprende di default le librerie RooFit/RooStats. - Non è disponibile la più recente versione di ROOT (v6) che implementa una completa revisione dell’interprete con migliori prestazioni e il supporto al C++ Moderno. - NOVITA’: su Windows 10 si può sfruttare il Windows Subsystem for Linux e utilizzare i binari precompilati per Ubuntu. Linux o MacOS - dovete verificare se RooFit/RooStats è installato insieme a ROOT. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 10
Requisiti per l'uso del portatile personale Avviare ROOT : root[] Per provare se RooFit/RooStats è installato digitare il seguente comando: root[] RooWorkspace w verificare che risponda RooFit v3.xx -- Developed by Wouter Verkerke and David Kirkby Per provare TMVA è installato digitare il seguente comando root[] TMVA::TMVAGui() // per ROOT 6 oppure root[] .x $(ROOTSYS)/tmva/test/TMVAGui.C // per ROOT 5 verificare che risponda --- Launch TMVA GUI to view input file: TMVA.root Error in : file TMVA.root does not exist ==> Abort TMVAGui, please verify filename Se ottenete messaggi di errore non potrete fare gli esercizi. In questo caso dovete riconfigurare/ricompilare/sostituire ROOT Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 11
Prima di ricompilare ROOT valutate queste CONSIGLIATO la ricompilazione di ROOT puo’ durare mezza giornata provate a vedere se è disponibile una versione precompilata per il vostro OS e compilatore OPZIONE 1) E’ disponibile una macchina virtuale scaricabile dalla rete con dentro ROOT v6 funzionante e utilizzato da summer students per fare root tutorials (fortemente consigliata per chi usa Windows) Le istruzioni sono in https://indico.cern.ch/event/407519/ -> Slides -> VMInstructions.pdf troverete le informazioni dettagliate anche sul mio sito web docente OPZIONE 2) OK, voglio proprio ricompilare ROOT Attenzione al conflitto fra versioni , ripulite bene le variabili di ambiente (path, ld_library_path, rootsys ) , verificate la versione di gcc. Poi, trovate sul mio sito web docente le istruzioni necessarie alla installazione di ROOT per Linux con ROOFIT. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 12
Dopo i requisiti per il computer … … ci sono i requisiti per gli studenti Questo corso non è : Una introduzione alla statistica Una introduzione a tecniche di interpolazione o di classificazione Una introduzione a ROOT e o al C++ Tuttavia, per utilizzare bene gli strumenti statistici è necessario: 1) Conoscere la notazione statistica, le convenzioni e la nomenclatura 2) Conoscere il linguaggio C++ nella sua forma più moderna 3) Conoscere ROOT, in particolare essere capaci di eseguire macro e salvare oggetti su rootfile Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 13
Imparate fin da subito il C++ moderno Il C++ ha un «nuovo» standard C++11 / C++14 Modern C++ emphasizes: • Stack-based scope instead of heap or static global scope. • Auto type inference instead of explicit type names. • Smart pointers instead of raw pointers. • std::string instead of raw char[] arrays. • Standard template library (STL) containers like vector, list, and map instead of raw arrays or custom containers. See , , and . • STL algorithms instead of manually coded ones. • Inline lambda functions instead of small functions implemented separately. • Range-based for loops to write more robust loops that work with arrays, STL containers in the form for ( for-range-declaration : expression ). • Exceptions, to report and handle error conditions. • Lock-free inter-thread communication using STL std::atomic (see ) instead of other inter-thread communication mechanisms. Analisi Statistica dei Dati in Fis. Nucl. e Subnucl. - G.Sirri 14
Further reading about C++ News, Status & Discussion about Standard C++ http://www.isocpp.org The C++ Standards Committee http://www.open-std.org/jtc1/sc22/wg21/ C++ Now Conference http://cppnow.org/ Il C++ ha un The C++ Conference «nuovo» standard http://cppcon.org/ C++11 / C++14 boost C++ libraries Imparate fin da http://www.boost.org/ subito a usare il C++ moderno ! 15
RooFit Documentation • Starting point http://root.cern.ch/drupal/content/roofit – Quick start guide (20 pages) – Includes Workspace & Factory – Users Manual (140 pages) • Tutorial macros – root.cern.ch documentation tutorials roofit – There are over 80 macros illustrating many aspects of RooFit functionality • Help – Post your question on the Stat & Maths tools forum of root.cern.ch 16
RooStats Documentation The ROOT reference guide: https://root.cern.ch/root/html534/ClassIndex.html This includes RooFit and RooStats reference RooStats documentation https://twiki.cern.ch/twiki/bin/view/RooStats/WebHome More RooFit/RooStats examples https://github.com/pellicci/UserCode/tree/master/RooFitStat_class 17
HOMEWORK Quindi vi suggerisco per la prossima lezione di 1) Leggere con cura i capitoli “Introduction”, “Conceptual blocks for modeling” di «Practical Statistic for the LHC» di K. Cranmer , https://arxiv.org/abs/1503.07622 2) Provare a riprendere in mano i concetti base del C++, in particolare : namespace, classi, classe base e classi derivate, puntatori, reference, passaggio di argomenti a funzioni by value e by reference, Suggerimento: ignorate i documenti che non citino espressamente almeno lo standard C++11 o successivi. Se volete una guida sicura andate su http://isocpp.org (A Tour of C++) Cercate di capire bene l’ereditarietà fra classi e la differenza tra i puntatore (il cui uso in laboratorio sarà permesso solo eccezionalmente) e le reference. 3) Esercitatevi a casa con il ROOT PRIMER : https://root.cern.ch/root/htmldoc/guides/primer/ROOTPrimer.pdf Fino al paragrafo 3.1 18
Puoi anche leggere