Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. Laboratorio Introduzione - Gabriele Sirri Istituto Nazionale di Fisica Nucleare - Unibo

Pagina creata da Elisa Marra
 
CONTINUA A LEGGERE
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. Laboratorio Introduzione - Gabriele Sirri Istituto Nazionale di Fisica Nucleare - Unibo
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
Analisi Statistica dei dati nella Fisica Nucl. e Subnucl. Laboratorio Introduzione - Gabriele Sirri Istituto Nazionale di Fisica Nucleare - Unibo
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