From Łukasz Graczykowski
            
                                                
            
  Documentation 
Documentation of the ROOT environment:
  Exercise 
1. Write a macro, which:
-  creates an object 
fun1 of type TF1 representing a sin(x) function (see class TMath)
 -  creates an object 
fun2 of type TF1 representing a cos(x) function
 -  creates a window with 4 panels (panel distribution 2x2) - see class 
TCanvas and method Divide
 -  draws the  
fun1 object on panel 1, fun2 on panel 2, and two functions simultaneously on panel 3
 -  changes the color of the line of function 
fun2 to blue - see method SetLineColor and class TColor
 
2. Let's imagine we throw a dice that is asymmetric. The table below summarizes the results:
|  Number of pips
 |  1
 |  2
 |  3
 |  4
 |  5
 |  6
 | 
|  Number of throws
 |  2
 |  1
 |  5
 |  4
 |  10
 |  12
 | 
We modify further the macro:
-  let's create a histogram (see class 
TH1D) by filling each bin (which corresponds to each dice facet) with values from the table (number of throws) - the histogram should be plotted on panel 4
 -  create a plot, called graph (see class 
TGraph) according to values from the table. 
 -  change the style of graph points (see method 
SetMarkerStyle and class TAttMarker)
 -  draw the graph in a separate window
 
  Attention 
-  Attention! In order to run ROOT environment on your student account in the laboratory, you have to add the following lines (if they were not added already) to the file 
$HOME/.bashrc (they could had been added during the PTI class):
 
 export ROOTSYS=/opt/root
 export PATH=$PATH:$ROOTSYS/bin
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib 
-  the ROOT environment is installed separately on each computer - it is not available on the server
 -  in the ROOT environment  we write macros, which have extensions .c, .C, .cpp, or .cxx
 -  a macro contains a C++ code interpreted line-by-line
 -  in principle, we do not need to include any libraries
 -  example 1:
 
{
    double x = 5;
    cout<<x<<endl;
}
-  execution of a macro: start the environment (command 
root), type .x macro.C
 -  macro can also contain  funkcje, example 2:
 
int macro()
{
    double x = 5;
    cout<<x<<endl;
    return 1;
}
-  name of the macro must be the same as the name of the main  function in the macro (in order to run it with the command 
.x macro.C)
 -  macros can contain more functions - during the macro execution the one which will be run is that which name corresponds to the macro name (the equivalent of the  
main function in standard C++)
 
  Results 
Plots: