ROOT (An Object-Oriented Data Analysis Framework)

Program ROOT służy do przechowywania, analizy i prezentacji danych. Na zajęciach z PTI studenci poznają kilka przykładów prezentacji danych. Przykłady te podane będą bardziej jako zbiór "gotowych przepisów", ponieważ ROOT oparty jest o programowanie obiektowe i pełne zrozumienie tego programu możliwe jest dopiero po opanowaniu podstaw języka C++. Przykłady poznanych na PTI makr mogą stanowić również dobry wstęp do laboratoriów z Komputerowej Analizy Danych Doświadczalnych (KADD).

Opis programu ROOT można znaleźć na stronie http://root.cern.ch. Dostępne są tam również przykładowe makra ROOTowe.

Używanie programu ROOT wymaga ustawienia odpowiednich zmiennych środowiskowych. Jeśli chcemy używać programu ROOT na komputerach dostępnych dla studentów (np. sala 228, 223), odnajdujemy plik .bashrc w swoim katalogu domowym. Do pliku dodajemy (np. na końcu) następujące linie:

export ROOTSYS=/opt/root
export PATH=$PATH:$ROOTSYS/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib

Uruchomienie programu odbywa się poprzez otwarcie terminala tekstowego i wpisanie komendy root. Wpisanie .x nazwa_makra powoduje wykonanie makra, natomiast .q wychodzi z programu ROOT.

Makro ROOTowe to plik tekstowy, który zawiera listę poleceń w języku C lub C++. Polecenia te można wydawać kolejno w programie ROOT, ale umieszczenie ich w jednym pliku znacznie ułatwia pracę.

Poniżej znajdują się przykłady makr (tar.gz oraz zip) omawianych na zajęciach z PTI:

  1. macro1.c - kilka bardzo podstawowych komend w języku C++
  2. macro2.c - rysuje zależność liczby kwantów gamma (na minutę) od grubości absorbenta (osłabienie promieniowania gamma). Tutaj można znaleźć rysunek wygenerowany przez to makro
  3. macro3.c - rysuje zależność liczby kwantów gamma od grubości absorbenta i dopasowuje funkcję eksponent. Tutaj można znaleźć rysunek wygenerowany przez to makro
    1. macro3_b.c - rysuje zależność logarytmu naturalnego z liczby kwantów gamma od grubości absorbenta i dopasowuje funkcję liniową. Tutaj można znaleźć rysunek wygenerowany przez to makro
  4. macro4.c - podobnie jak macro2.c, ale zakres osi ustawiony "ręcznie". Tutaj można znaleźć rysunek wygenerowany przez to makro
  5. macro5.c - makro wczytuje dane z pliku tekstowego mean_pt_pbpb.text i produkuje 1-wymiarowy histogram. Tutaj można znaleźć rysunek wygenerowany przez to makro
    Nieco zmodyfikowane wersje tego samego programu:
    1. macro5_b.c wraz z rysunkiem
    2. macro5_c.c wraz z rysunkiem
    3. macro5_d.c wraz z rysunkiem
  6. macro6.c - makro wczytuje dane z pliku tekstowego n_meanpt.txt i produkuje 2-wymiarowy histogram. Tutaj można znaleźć rysunek wygenerowany przez to makro
    Nieco zmodyfikowane wersje tego samego programu (w rysunkach typu 3D może być potrzeba dodatkowych modyfikacji np. odległości opisu od osi):
    1. macro6_b.c wraz z rysunkiem
    2. macro6_c.c wraz z rysunkiem
    3. macro6_d.c wraz z rysunkiem
    4. macro6_e.c wraz z rysunkiem
    5. macro6_f.c wraz z rysunkiem
    6. macro6_g.c wraz z rysunkiem
    7. macro6_h.c wraz z rysunkiem
    8. macro6_i.c wraz z rysunkiem
    9. macro6_j.c wraz z rysunkiem
    10. macro6_k.c wraz z rysunkiem
    11. macro6_l.c wraz z rysunkiem
  7. macro7.c makro wczytuje dane z pliku tekstowego mean_pt_pbpb.text, produkuje 1-wymiarowy histogram i dopasowuje do niego krzywą Gaussa podając parametry dopasowania. Tutaj można znaleźć rysunek wygenerowany przez to makro
  8. macro8.c makro do bardziej dopracowanego graficznie rysunku (z publikacji); zawiera legendę do różnych punktów. Tutaj można znaleźć rysunek wygenerowany przez to makro

Symbole LaTeX w ROOT

Uwaga: powyższe rysunki, po wygenerowaniu przez ROOT, zostały zapisane w formacie png. Dużo lepszą jakość uzyskuje się wybierając typ pliku pdf. Jeśli mimo tego potrzebny jest plik png to można go uzyskać z pliku pdf w programie gimp, konwertując z pdf i wybierając większą rozdzielczość niż domyślnie proponowana.