ROOT Tutorial
Download
1 / 29

ROOT Tutorial - PowerPoint PPT Presentation


  • 113 Views
  • Uploaded on

ROOT Tutorial. ROOT Webpage http://root.cern.ch. ROOT User’s guide http://root.cern.ch/drupal/content/users-guide. Installazione: Pro version 5.32/00 Windows 7/Vista/XP/NT/2000 supported http://root.cern.ch/drupal/content/production-version-532. Windows 7/Vista/XP/NT/2000. Recommended.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ROOT Tutorial' - tarik-hoffman


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

ROOT Webpage

http://root.cern.ch

ROOT User’s guide

http://root.cern.ch/drupal/content/users-guide


Installazione: Pro version 5.32/00

Windows 7/Vista/XP/NT/2000 supported

http://root.cern.ch/drupal/content/production-version-532




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:

  • http://root.cern.ch/download/doc/28InstallandBuild.pdf


Binaries precompilati

1) Download da

http://root.cern.ch/drupal/content/production-version-532.


2) Unzip, untar and install

$ gunzip root_v5.32.01.Linux-slc5-gcc4.3.tar.gz

$ tar xvf root_v5.32.01.Linux-slc5-gcc4.3.tar

Verrà creata una cartella root

3) Variabili d’ambiente (leggi il file README/README)


Source

1) Download da

http://root.cern.ch/drupal/content/production-version-532.


2) Untar and install

$ tar zxvf root_v5.32.01.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


Lanciare una sessione ROOT

  • Windows

  • Icona sul desktop

  • Prompt di comandi MS-DOS

Linux

$ root


  • 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


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' altresi' possibile eseguire un programma all'avvio della sessione di ROOT digitando al prompt dei comandi root nome-file.C

root[ ].!comando-shellper 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


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;

   10

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


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


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)


Browser il file si chiami esempio2.C): 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();


ARGOMENTI TRATTATI NEL TUTORIAL il file si chiami esempio2.C):

GRAPH

RANDOM GENERATOR

FUNCTION

HISTOGRAM

TREE


Funzioni matematiche il file si chiami esempio2.C):

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:


il metodo il file si chiami esempio2.C): 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:


Grafici (scatter plot x-y) il file si chiami esempio2.C):

La classe di ROOT per disegnare dei punti date le loro coordinatee' 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)


Esempio: il file si chiami esempio2.C):

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


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


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


Funzione predefinita *goption,

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)


ad