Using ROOT within the VLSI lab

[ Home ] [ Back ]

Contents
  • Introduction

Keywords:

Installation from binaries

Check dependences

  • subversion
  • make
  • gcc-c++
  • gcc
  • binutils
  • libX11-devel
  • libXpm-devel
  • libXft-devel
  • libXext-devel

Download the last stable version binary package from

http://root.cern.ch/drupal/content/downloading-root

tar -xvzf root_v5.xx.yy.zzzzzz.tar.gz
sudo mv root /opt
setenv ROOTSYS /opt/root

Accessing gcc/g++ from Cadence

The g++ compiler might not be installed on your VLSI lab machine! Nevertheless, you can use the GCC version which comes with a Cadence Incisive installation under

/usr/cadence/Incisive_13.10/tools/cdsgcc/gcc/

To use g++ you need to set up the UNIX environment as follows:

setenv INCISIV_DIR /usr/cadence/Incisive_13.10/
set incisivPath = ( $INCISIV_DIR/bin $INCISIV_DIR/tools/bin $INCISIV_DIR/tools/cdsgcc/gcc/bin )
set path = ( $incisivPath $path )

ROOT e' installato sulle macchine PHOINIX e BEDDU!

ssh -X username@phoinix.to.infn.it

e poi basta fare il source dello scriptino che setta le variabili d'ambiente in

/usr/local+/profile.d/root.(c)sh

usare .sh oppure .csh a seconda della shell in uso (tcsh di default!)

source /opt/local+/profile.d/root.(c)sh

La main directory e'

/opt/local+/root

In order to automatize the source at the startup cat and paste the following lines in your ~/.cshrc initialization file:

if ( -e /usr/local+/profile.d/root.csh )  then
   source /usr/local+/profile.d/root.csh
endif

If you have a bash shell indeed edit the ~/.bashrc with

if [ -f /usr/local+/profile.d/root.sh ] ; then
   source /usr/local+/profile.d/root.csh
fi 

At this point ROOT executables have been added to the search path. Start ROOT typing

root -l

ricordare che per customizzare il comportamento di root si possono creare nella HOME i files .rootrc rootlogon.C rootlogoff.C rootalias.C

# .rootrc file example 

##  rootlogon.C path
Rint.Logon: $HOME/rootlogon.C

##  rootlogoff.C path
Rint.Logoff: $HOME/rootlogoff.C

##  rootalias.C path
Rint.Load:   $HOME/rootalias.C

##  .root_hist number of lines
Rint.HistSize:   500
Rint.HistSave:   400

##  ROOT user macros path
# Unix.*.Root.MacroPath:    ./custom/path:$ROOTSYS/macros

##  tracking memory leaks
Root.MemStat:     1
Root.ObjectStat:  1

##   memory checker
Root.MemCheck:   1

Esempio di rootlogon.C

// ~/rootlogon.C file example

{
printf("Loading rootlogon.C script \n");

//  resets the CINT command line
gROOT->Reset();

// current .rootrc system environment
//gEnv->Print();

// namespace for TMath utilities
using namespace TMath;

// global "plain" style for plots
gROOT->SetStyle("Plain");

// histograms Stats Box content
// gStyle->SetOptStat(mode)
// mode = kurtosis, skewness, integral of bins, overflows, underflows, rms, mean, entries, name
// gStyle->SetOptStat()   default = 000001111
// gStyle->SetOptStat(0)  disables Stats Box
gStyle->SetOptStat(001111111);

// fit paramenters box content
gStyle->SetOptFit(111111);

// RooFit library loading
gSystem->Load("libRooFit.so");
using namespace RooFit;
}

Uso TGraph

$ root -l
root[] TGraph plot("waveform.csv","%lg , %lg")
root[] plot.SetMarkerStyle(21)
root[] plot.SetMarkerSize(0.7)
root[] plot.Draw("ALP")

Se ho families di curve uso un TMultiGraph e creo uno script:

{  
   TGraph plot1("waveform.csv","%lg , %lg , %*lg ......);
   TGraph plot2("waveform.csv","%lg , %*lg , %lg ......);
   ...

   plot1.SetMarkerStyle(21);
   plot2.SetMarkerStyle(22);
   ...

   TMultiGraph mgr("mgr","");

   mgr.Add(plot1,"LP"); 
   mgr.Add(plot2,"LP");
   ...

   mgr.Draw("A");

}

Poi lo runno semplicemente come

root [] .x scriptName.cpp
$ root -l <fileName.root>
root [0] 
Attaching file <fileName.root> as _file0...
root [1] TBrowser b



Last update: Luca Pacher - Aug 20, 2013