From Łukasz Graczykowski
(Difference between revisions)
|
|
(2 intermediate revisions not shown) |
Line 7: |
Line 7: |
| * strona główna: [https://root.cern.ch/ https://root.cern.ch/] | | * strona główna: [https://root.cern.ch/ https://root.cern.ch/] |
| * 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.0.4): [https://root.cern.ch/root/html604/ https://root.cern.ch/root/html604/] | + | * 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/] | + | * 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 |
| | | |
| == Zadanie == | | == Zadanie == |
Latest revision as of 13:44, 24 February 2021
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: