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 1DISCLAIMER (… 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 2Programma
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 3Chiarimenti 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 7Materiale 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 9Requisiti 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 10Requisiti 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 11Prima 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 12Dopo 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 13Imparate 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 14Further 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 !
15RooFit 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
16RooStats 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
17HOMEWORK
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 18Puoi anche leggere