Lezioni Laboratorio di Fisica II - C++ e ROOT - A.A. 2014-2015



Materiale per Esercizio Programmazione C++ e ROOT (II-III Turno)-A.A. 2014-2015


Codice aggiuntivo per simulare il decadimento di particelle instabili:
extra.cpp

Avvisi A.A. 2014-2015:

3) Sessione di recupero per i turni pratici di Laboratorio II -programmazione C++ e ROOT: 15 Gennaio 2015 ore 9:30 in Laboratorio di Informatica (Sede di via Irnerio, 46)
2) Si avvisano gli studenti che, come precedentemente annunciato durante la prima lezione, la lezione prevista per venerdi' 9 ottobre non si terra'. Lunedi' 12 ottobre la lezione si svolgera' come previsto.
1) Presso a portineria della sede di Via Irnerio sono disponibili gli elenchi per l'iscrizione ai turni di laboratorio.

Slides delle Lezioni:

Lezione Introduttiva, C++ e LabVIEW Lezione Introduttiva: struttura del corso I semestre- C++ mini-guida alla compilazione e all'esecuzione di un programma in una shell Linux

Lezione II, C++ Basics: dichiarazione di variabili e scope, tipi nativi, operatori, strutture di controllo (condizionali, iterative)
Lezione III, C++ Basics: Arrays, Puntatori e Reference. Funzioni

Lezione IV, C++ Basics: Tipi definiti dall'utente: enum, struct, union, class

Lezione V, C++: Sintassi di Classe, costruttori, distruttori, attributi e funzioni membro statici, attributi e funzioni membro const
Esempi mostrati in aula: Esempio classi annidate
Utilità di definire sempre il costruttore di default
Costruttore di copia con membri puntatore

Lezione VI, C++: Esempio svolto e discusso in aula di scrittura di una classe con utilizzo di attributi e membri static - Overloading di Operatori
Codice dell'esercizio svolto in aula:
Pixel.h (file di intestazione)
Pixel.cxx (file di implementazione)
test.c ("dummy" main....)

Lezione VII, C++: Meccanismi di riutilizzo del codice: composizione ed ereditarieta'. Polimorfismo al runtime e binding dinamico.
PixelTimeInfo.h (file di intestazione)
PixelTimeInfo.cxx (file di implementazione)
test_pol.c (main in cui oggetti di tipo Pixel e PixelTimeInfo sono usati in maniera polimorfa)
calibPos.dat (file di calibrazione per Pixel, posizione)
calibTime.dat (file di calibrazione per Pixel, tempi)

Lezione VIII, C++: Polimorfismo parametrico e Templates. La STL.
vector_list.cpp (esempi di uso di vector e list)
shapes.h (include usato da vector_list.cpp)
myTemplates.h (include usato da vector_list.cpp)

Lezione IX, Root - struttura generale, CINT, macros, istogrammi, Interfaccia grafica
makeHistos.C (macro per la creazione di istogrammi, Filling e scrittura su file root)
drawHistos.C (macro per la lettura da file di istogrammi e Drawing)

Lezione X, Root: funzioni, fit, generazione MC
myfunctions.C (macro con funzioni 1D-2D)
makeFunctions.C (Drawing di funzioni)
fitSignal.C (esempio di fit segnale+fondo con gaussiana e esponenziale)

Lezione XI, Root: Trees
makeTree.C (macro che crea un tree di variabili native)
readTree.C (macro che analizza un tree di variabili native)
makePixelTree.C (stessa cosa con le quantità contenute negli oggetti di tipo Pixel)



Lezione X AA 15-16, Generazione MC e istruzioni per eseguire programma in root

Lezione XI AA 15-16, Root Trees e spiegazione esercitazione di laboratorio

Materiale per l'esame:

1) Esempi di domande che potrebbero esservi proposte al test preliminare da sostenere durante l'esame Questions.pdf
2) Una possibile traccia per il programma da portare all'esame (aggiungeremo altre in seguito) TracceProgrammi.pdf

Testi dei Compiti d'esame precedenti:


- Test preliminare dato all'appello del 14/01/2014 esame-14-01-2014.pdf
- Test preliminare dato all'appello del 04/02/2014 esame-04-02-2014.pdf
- Test preliminare dato all'appello del 10/06/2014 (con soluzioni) esame-10-06-2014-soluzioni.pdf
- Test preliminare dato all'appello del 23/06/2014 (con soluzioni) esame-23-06-2014-soluzioni.pdf

Materiale Aggiuntivo:

Istruzioni per l'installazione di ROOT: IstruzioniRoot
Per evitare di dover settare l'ambiente ogni volta che aprite una finestra terminale, inserite nel file .bashrc (che trovate nella home) il comando:
source rootbin/thisroot.sh,
dove rootbin e' il path alla directory bin della versione di root che avete installato, e dove risiede questo file.



Silvia Arcelli