Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
ROOT Tutorial
2
ROOT Webpage ROOT User’s guide
3
Installazione: Pro version 5.34/18
Windows 7/Vista/XP/NT/2000 supported
4
Windows 7/Vista/XP/NT/2000
Recommended ( ) check version of Microsoft Visual C VC++11 MSI
5
Linux - Precompiled Binaries: Scegliere il file in base al proprio sistema operativo Source: più veloce da scaricare, ma da compilare e linkare Guida per l’installazione:
6
Binaries precompilati
1) Download da
7
2) Unzip, untar and install
Verrà creata una cartella root 3) Variabili d’ambiente (leggi il file README/README)
8
Source 1) Download da
9
2) Untar and install $ tar zxvf root_v source.tar.gz Verrà creata una cartella root $ cd root $ ./configure --help $ ./configure [<arch>] $ (g)make 3) Esporta le variabili d’ambiente $ export ROOTSYS=<path>/root $ export PATH=$ROOTSYS/bin:$PATH $ export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
10
Lanciare una sessione ROOT
Windows Icona sul desktop Prompt di comandi MS-DOS Linux $ root
11
Windows Icona sul desktop MACRO nella cartella C:\root\macros\ File in/out nella cartella C:\root\ Prompt di comandi MS-DOS Posizionarsi nella cartella di lavoro con l’istruzione: cd path Aprire un sessione di root digitando: root
12
Alcuni comandi di ROOT root[].q per uscire dalla sessione corrente di ROOT root [].x nome-file.C per eseguire un programma scritto precedentemente. E' altresì possibile eseguire un programma all'avvio della sessione di ROOT digitando al prompt dei comandi root nome-file.C root [] .!comando-shell per eseguire un comando della shell Es: root[ ].! ls visualizza il listato dei file della directory corrente, root[ ].! dir analogo per Windows root [].ls per vedere gli oggetti dichiarati nella sessione corrente root [].? per vedere la lista di tutti i comandi
13
Al prompt di ROOT è possibile digitare direttamente le istruzioni C++
ES: root[ ] cout << "Hello World" << endl; Hello World root[ ] int a = 10; root[ ] cout << a << endl; Per eseguire blocchi di istruzioni, si inizia digitando { e si finisce il blocco con } ES: root[ ] { End with '}'> cout << "a" << endl; End with '}'> cout << "b" << endl; End with '}'> } a b
14
Per eseguirlo digitare
Per eseguire un blocco di istruzioni scritte in un file (supponiamo che il file si chiami esempio1.C): Per eseguirlo digitare root[ ] .x esempio1.C oppure dalla shell > root esempio1.C
15
Per eseguire un programma scritto in un file (supponiamo che il file si chiami esempio2.C):
Per eseguirlo digitare root[ ] .x esempio2.C(4) oppure dalla shell > root esempio2.C (NOTA: il nome della funzione principale deve essere lo stesso di quello del file)
16
Convenzioni Le classi iniziano con T: TTree, TBrowser I tipi finiscono con _t: Int_t, Double_t Le costanti iniziano con la k: kTRUE, kRed Le variabili globali iniziano con la g: gROOT, gSystem Le funzioni membro iniziano con la lettera maiuscola: Draw(), Fill() Variabili e parametri iniziano con la lettera minuscola: nLine, nBytes e soprattutto i comandi sono CASE SENSITIVE Variabili globali gROOT: puntatore all'oggetto TROOT della sessione corrente. Permette di accedere ad una serie di liste che puntano agli oggetti creati (es: lista delle finestre, lista dei file aperti) e consente di modificare le proprieta' comuni a tutta la sessione (es: stile grafico) gFile: puntatore al file attualmente aperto (oggetto TFile) gRandom: puntatore al corrente generatore di numeri casuali. Di default punta ad un oggetto TRandom che genera numeri a partire da una distribuzione uniforme gDirectory: puntatore alla directory corrente della sessione di ROOT (classe TDirectory)
17
Browser ROOT dispone di un browser grafico (classe TBrowser) che consente di visualizzare gli oggetti dichiarati nella sessione corrente. Per esempio e' possibile vedere i file aperti, eventuali istogrammi dichiarati,... Per aprire il browser, eseguire al prompt di ROOT il comando: root[ ] b = new TBrowser();
18
ARGOMENTI TRATTATI NEL TUTORIAL
GRAPH RANDOM GENERATOR FUNCTION HISTOGRAM TREE
19
Funzioni matematiche La classe di ROOT per disegnare funzioni ad una sola variabile e' la TF1. E' possibile disegnare funzioni di due variabili usando la classe TF2. TF1(const char* name, const char* formula, Double_t xmin = 0, Double_t xmax = 1) Esempio:
20
il metodo Draw() disegna una serie di cose prima di disegnare la funzione. Viene infatti visualizzata una finestra (canvas, classe TCanvas) e un sistema di assi (frame, classe TFrame) Per modificare l’aspetto grafico si può agire interattivamente o tramite linee di comando. Altri metodi:
21
Grafici (scatter plot x-y)
La classe di ROOT per disegnare dei punti date le loro coordinate e' la TGraph. TGraph(Int_t n, const Float_t* x, const Float_t* y) TGraphErrors(Int_t n, const Float_t* x, const Float_t* y, const Float_t* ex = 0, const Float_t* ey = 0) TGraphAsymmErrors(Int_t n, const Float_t* x, const Float_t* y, const Float_t* exl = 0, const Float_t* exh = 0, const Float_t* eyl = 0, const Float_t* eyh = 0)
22
for (Int_t i=0; i<n; i++) { x[i] = i * 0.1;
Esempio: void grafico() { const Int_t n = 20; Double_t x[n], y[n]; for (Int_t i=0; i<n; i++) { x[i] = i * 0.1; y[i] = 10 * sin(x[i]+0.2); } TGraph *gr1 = new TGraph(n,x,y); gr1->Draw("AP"); Per disegnare si usa il metodo Draw(option), dove alcune opzioni possibili sono: "L" disegna una linea per unire i vari punti "A" disegna gli assi "*" disegna un * per ogni punto "B" disegna un rettangolo per ogni punto "P" il marker corrente e' disegnato per ogni punto "C" una curva e' disegnata per congiungere i punti
23
Esercizio: utilizzare i dati dell’esperienza sull’assorbimento dei e creare un grafico Rate VS Spessore void assorbimento() { const Int_t n = 6; Float_t rate[n] = {1308, 732, 376, 197, 74, 53}; // conteggi al min Float_t spessore[n] = {0, 0.5, 1, 1.5, 2, 2.5}; // spessore in mm TGraph *gr1 = new TGraph(n,spessore,rate); gr1->Draw("AP"); } Aggiungere gli errori Sottrarre il fondo dovuto ai cosmici Scala logaritmica Fit dei dati
24
void Fit(const char *fname, Option_t *option, Option_t *goption,
Axis_t xxmin, Axis_t xxmax) *fname – nome della funzione di fit (predefinita o definita dall’utente) gaus: Funzione gaussiana: f(x) = p0*exp(-0.5*((x-p1)/p2)^2)) expo: funzione esponenziale: f(x) = exp(p0+p1*x) polN: polinomio di grado N: f(x) = p0 + p1*x + p2*x2 +... landau: funzione Landau. *option – opzioni del fit "Q" Quiet mode (minimum printing) "V" Verbose mode (default is between Q and V) "E" Migliora la stima degli errori con la tecnica Minos "M" Migliora i risultati del fit "R" Usa lo stesso intervallo in cui è definita la funzione di fit "N" Non disegna la curva di fit … *goption – opzioni grafiche (vedi il manuale di ROOT) xxmin, xxmax – intervallo in cui effettuare il fit
25
Funzione predefinita … TGraph *gr1 = new TGraph(n,spessore,rate); gr1->Draw("AP"); gr1->Fit(“expo”,””,””,0,3); } Oppure funzione definita dall’utente … TGraph *gr1 = new TGraph(n,spessore,rate); gr1->Draw("AP"); TF1 *f1 = new TF1("f1",“exp([0]+[1]*x)",0,3); // Funzione con parametri gr1->Fit(f1,””,””,0,3); } Oppure fit lineare una volta calcolato log(rate)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.