You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

ROOT je programski okvir, razvijen na CERN-u, za obradu i analizu velikih količina podataka, posebice u području fizike čestica. Korisnicima omogućuje učinkovito manipuliranje podacima, njihovu vizualizaciju i provođenje statističke analize. ROOT podržava objekte kao što su histogrami, funkcije, grafovi i stabla (TTree). ROOT je napisan u C++, ali podržava i druge jezike kao što je Python.


Verzije

verzijamodulSupekPadobran
6.32scientific/root/6.32(tick)


Primjer korištenja

Ispod se nalaze primjer skripte za izvuđenje posla i ROOT macro1 primjer.


stacks-ex.pbs
#PBS -N root-test
#PBS -l select=1:ncpus=10:mem=10GB
#PBS -q cpu
#PBS -j oe

cd $PBS_O_WORKDIR

module load scientific/root/6.32


root.sh macro1.C


macro1.C
// Builds a graph with errors, displays it and saves it as
// image. First, include some header files
// (not necessary for Cling)

#include "TCanvas.h"
#include "TROOT.h"
#include "TGraphErrors.h"
#include "TF1.h"
#include "TLegend.h"
#include "TArrow.h"
#include "TLatex.h"

void macro1(){
    // The values and the errors on the Y axis
    const int n_points=10;
    double x_vals[n_points]=
            {1,2,3,4,5,6,7,8,9,10};
    double y_vals[n_points]=
            {6,12,14,20,22,24,35,45,44,53};
    double y_errs[n_points]=
            {5,5,4.7,4.5,4.2,5.1,2.9,4.1,4.8,5.43};

    // Instance of the graph
    TGraphErrors graph(n_points,x_vals,y_vals,nullptr,y_errs);
    graph.SetTitle("Measurement XYZ;length [cm];Arb.Units");

    // Make the plot estetically better
    graph.SetMarkerStyle(kOpenCircle);
    graph.SetMarkerColor(kBlue);
    graph.SetLineColor(kBlue);

    // The canvas on which we'll draw the graph
    auto  mycanvas = new TCanvas();

    // Draw the graph !
    graph.DrawClone("APE");

    // Define a linear function
    TF1 f("Linear law","[0]+x*[1]",.5,10.5);
    // Let's make the function line nicer
    f.SetLineColor(kRed); f.SetLineStyle(2);
    // Fit it to the graph and draw it
    graph.Fit(&f);
    f.DrawClone("Same");

    // Build and Draw a legend
    TLegend leg(.1,.7,.3,.9,"Lab. Lesson 1");
    leg.SetFillColor(0);
    graph.SetFillColor(0);
    leg.AddEntry(&graph,"Exp. Points");
    leg.AddEntry(&f,"Th. Law");
    leg.DrawClone("Same");

    // Draw an arrow on the canvas
    TArrow arrow(8,8,6.2,23,0.02,"|>");
    arrow.SetLineWidth(2);
    arrow.DrawClone();

    // Add some text to the plot
    TLatex text(8.2,7.5,"#splitline{Maximum}{Deviation}");
    text.DrawClone();

    mycanvas->Print("graph_with_law.pdf");
}

int main(){
    macro1();
    }
  • No labels