June 2, 2024, Sunday, 153

KADD 2021 Laboratorium 1 zdalne

From Łukasz Graczykowski

(Difference between revisions)
Jump to: navigation, search
(Dokumentacja)
(Dokumentacja)
Line 8: Line 8:
* dokumentacja wersji rozwojowej (master): [https://root.cern.ch/doc/master/ https://root.cern.ch/doc/master/]
* dokumentacja wersji rozwojowej (master): [https://root.cern.ch/doc/master/ https://root.cern.ch/doc/master/]
* dokumentacja ostatniej wersji stabilnej (6.22): [https://root.cern/doc/v622/ https://root.cern/doc/v622/]
* dokumentacja ostatniej wersji stabilnej (6.22): [https://root.cern/doc/v622/ https://root.cern/doc/v622/]
-
* dokumentacja wersji zainstalowanej w laboratorium (5.32.00): [https://root.cern.ch/root/html532/ https://root.cern.ch/root/html532/] - ostatnia wersja ze starym interpreterem
+
* dokumentacja wersji zainstalowanej w laboratorium (5.32.00): [https://root.cern.ch/root/html532/ https://root.cern.ch/root/html532/] <\br> ostatnia wersja ze starym interpreterem
== Zadanie ==
== Zadanie ==

Revision as of 13:44, 24 February 2021

Contents

Dokumentacja

Dokumentacja środowiska ROOT:

Zadanie

1. Należy napisać makro, które:

  • tworzy obiekt fun1 typu TF1 reprezentujący funkcję sin(x) (patrz klasa TMath)
  • tworzy obiekt fun2 typu TF1 reprezentujący funkcję cos(x)
  • tworzy okno z 4 panelami (rozkład paneli 2x2) - patrz klasa TCanvas i metoda Divide
  • rysuje obiekt fun1 na 1 panelu, fun2 na 2 panelu, oraz obie funkcje jednocześnie na 3 panelu
  • zmieni kolor linii funkcji fun2 na niebieski - patrz metoda SetLineColor i klasa TColor


2. Wyobraźmy sobie, że rzucamy niesymetryczną sześcienną kostką do gry. Wyniki podsumowuje poniższa tabelka:

Ilość oczek 1 2 3 4 5 6
Ilość rzutów 2 1 5 4 10 12

Modyfikujemy dalej makro:

  • tworzymy histogram (patrz klasa TH1D) wypełniając kolejne biny (odpowiadające kolejnym ilościom oczek) wartościami z tabelki (ilość rzutów) - histogram należy narysować na panelu 4
  • należy stworzyć wykres - graf (patrz klasa TGraph) zgodnie z wartościami z tabelki.
  • zmienić styl punktów grafu na kółko (patrz metoda SetMarkerStyle oraz klasa TAttMarker)
  • narysować graf w oddzielnym oknie

Uwagi

  • Uwaga! Aby środowisko ROOT można było uruchomić na własnym koncie użytkownika w laboratorium, należy w pliku $HOME/.bashrc dopisać następujące linijki (jeśli nie były dodane na zajęciach z PTI):
 export ROOTSYS=/opt/root
 export PATH=$PATH:$ROOTSYS/bin
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib 
  • środowisko ROOT jest zainstalowane lokalnie na każdym komputerze - nie jest dostępne na serwerze
  • w środowisku ROOT piszemy makra, które mają rozszerzenie .c, .C, .cpp, lub .cxx
  • makro zawiera w sobie kod w języku C++ interpretowany linijka po linijce
  • w zasadzie nie musimy załączać żadnych bibliotek
  • przykład 1:
{
    double x = 5;
    cout<<x<<endl;
}
  • wywołanie makra: uruchamiamy środowisko (komenda root), wpisujemy .x macro.C
  • makro może zawierać również funkcje, przykład 2:
int macro()
{
    double x = 5;
    cout<<x<<endl;
    return 1;
}
  • nazwa makra musi być taka sama jak nazwa funkcji w makrze (by można było je uruchomić komendą .x macro.C)
  • w makrach może być więcej funkcji - przy standardowym uruchomieniu wywołana zawsze będzie ta funkcja, której nazwa zgadza się z nazwą makra (odpowiednik funkcji main w standardowym C++)

Wynik

Wykresy:

  • okno 1

Lab1 1.png

  • okno 2

1 2.png