sept 11, 2003root day1, suzanne panacek39 root an object oriented hep analysis framework. day 1

41
Sept 11, 2003 ROOT Day1, Suzanne Panacek 39 ROOT An object oriented HEP analysis framework. Day 1

Upload: jason-hines

Post on 11-Jan-2016

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 39

ROOTAn object oriented HEP

analysis framework.

Day 1

Page 2: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The ROOT Team

Page 3: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

ROOT contacts at Fermi

Philippe Canal , [email protected]

Suzanne Panacek, [email protected]

1. Jeff Kallenbach, x22101. [email protected]

Page 4: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Mailing Lists the ROOT mailing list:[email protected] archives:http://root.cern.ch/root/roottalk/

AboutRootTalk.html Fermilab mailing list:[email protected] archives:http://listserv.fnal.gov/archives/about-root.html

Page 5: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Class Schedule - Day 1 Overview of the ROOT Framework GUI basics Command line basics Finding Information (class

reference guide)

Getting started with the exercises

Page 6: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Class Schedule - Day 2 Root Commands and CINT Discuss Exercises Functions and Fitting The Tree Viewer

Page 7: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Class Schedule - Day 3 Building ROOT Trees Reading Trees Using Trees in Analysis

TTree->Draw TTree->MakeClass Chains

Exercise discussion How to add your Own Class

With the Interpreter With the compiler (shared library) With ACLiC

Page 8: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

ROOT Overview What about PAW Concepts: Object Oriented Design,

Frameworks Services and Utilities Libraries Physical Organization

Page 9: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Differences from PAW Regular grammar (C++) on command line Single language (compiled and

interpreted) Object Oriented (use your class in the

interpreter) Advanced Interactive User Interface Well Documented code. HTML class

descriptions for every class. Object I/O including Schema Evolution 3-d interfaces with OpenGL and X3D.

Page 10: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

PAW to ROOT File Conversion Get the example PAW file from

http://www-pat.fnal.gov/root/examples/toyz.rz

At the system prompt type

> h2root toyz.rz toyz.root

Once you've done the conversion, you can then start

a ROOT session and open toyz.root

Also see: http://root.cern.ch/root/HowtoConvert.html

Page 11: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Object Oriented Concepts

Members: a “has a” relationship to the class.

Inheritance: an “is a” relationship to the class.

Class: the description of a “thing” in the system Object: instance of a class Methods: functions for a class

Event

TrackSegment Vertex

Momentum MassSquare InterceptAtVert

HAS AHAS AHAS A

HAS A HAS AHAS A

TObject

IS A

Page 12: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

A Frameworkprovides utilities and services.

Page 13: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

ROOT's Services/Utilities Histogramming and Fitting Graphics (2D, 3D) I/O to file or socket: specialized for

histograms, Ntuples (Trees) Collection Classes and Run Time Type

Identification User Interface

GUI: Browsers, Panels, Tree Viewer Command Line interface: C++ interpreter CINT Script Processor (C++ compiled C++

interpreted)

Page 14: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The Libraries

Over 350 classes

Core CINT Libraries loaded at

startup: Hist, Tree … Libraries loaded when

needed: HistPainter, TreePlayer,…

Special purpose libraries: EG, Physics…

Page 15: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The Framework Organization

*.h...

cintmakecintnewproofdproofservrmkdependrootroot.exerootcintroot-configrootd

bin

$ROOTSYS

libCint.solibCore.solibEG.so*libEGPythia.so*libEGPythia6.solibEGVenus.solibGpad.solibGraf.solibGraf3d.solibGui.solibGX11.so*libGX11TTF.solibHist.solibHistPainter.solibHtml.solibMatrix.solibMinuit.solibNew.solibPhysics.solibPostscript.solibProof.so*libRFIO.so*libRGL.solibRint.so*libThread.solibTree.solibTreePlayer.solibTreeViewer.so*libttf.solibX3d.solibXpm.a

Aclock.cxxAclock.hEvent.cxxEvent.hEventLinkDef.hHello.cxxHello.hMainEvent.cxxMakefileMakefile.inMakefile.win32READMETestVectors.cxxTetris.cxxTetris.heventa.cxxeventb.cxxeventload.cxxguitest.cxxhsimple.cxxhworld.cxxminexam.cxxstress.cxxtcollbm.cxxtcollex.cxxtest2html.cxxtstring.cxxvlazy.cxxvmatrix.cxxvvector.cxx

lib testtutorials include

* OptionalInstallation

EditorBar.CIfit.Canalyze.Carchi.Carrow.Cbasic.Cbasic.datbasic3d.Cbenchmarks.Ccanvas.Cclasscat.Ccleanup.Ccompile.Ccopytree.Ccopytree2.Cdemos.Cdemoshelp.Cdialogs.Cdirs.Cellipse.Ceval.Cevent.Cexec1.Cexec2.Cfeynman.Cfildir.Cfile.Cfillrandom.Cfirst.Cfit1.Cfit1_C.C

fitslicesy.Cformula1.Cframework.Cgames.Cgaxis.Cgeometry.Cgerrors.Cgerrors2.Cgraph.Ch1draw.Chadd.Chclient.Chcons.Chprod.Chserv.Chserv2.Chsimple.Chsum.ChsumTimer.Chtmlex.Cio.Clatex.Clatex2.Clatex3.Cmanyaxis.Cmultifit.Cmyfit.Cna49.Cna49geomfile.Cna49view.Cna49visible.C

ntuple1.Coldbenchmarks.Cpdg.datpsexam.Cpstable.Crootalias.Crootenv.Crootlogoff.Crootlogon.Crootmarks.Cruncatalog.sqlrunzdemo.Csecond.Cshapes.Cshared.Csplines.Csqlcreatedb.Csqlfilldb.Csqlselect.Cstaff.Cstaff.datsurfaces.Ctcl.Ctestrandom.Ctornado.Ctree.Ctwo.Cxyslider.CxysliderAction.Czdemo.C

Page 16: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Three User Interfaces GUI

windows, buttons, menus

Root Command lineCINT (C++ interpreter)

Macros, applications, libraries (C++ compiler and interpreter)

Page 17: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

ROOT Overview Summary PAW Concepts: Object Oriented Design,

Frameworks Services and Utilities Libraries Physical Organization

Page 18: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

GUI Basics Browsing and opening files Drawing histograms Right click, left click, middle click Draw Panel Fit Panel Adding Color and Zooming Adding text and other objects Dividing the canvas Setting the log scale

Page 19: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

GUI Basics

Display the browser1. TBrowser b;

Start root> root

Quit root (just in case) root[0]>.q

Page 20: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Displaying a Histogram

Display a histogram The Canvas

Open the root fileBrowse the file

Page 21: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Basic Navigation by Clicking

Left Click select the object drag the object resize the object

Right Click context menu class::name methods

Middle Click activate canvas freezes event status

bar

Page 22: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The Draw Panel The Event Status

The Draw PanelAdding Error barsSliderDefaults

Page 23: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Fitting, Coloring, and Zooming

Adding a gaussian fit Coloring the histogram Zooming/unzooming

Page 24: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Adding Objects to the Canvas

The Editor Adding an Arrow Adding Text

Page 25: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Adding another Pad Add a Pad Select the new

Pad Draw a histogram Add a title for the

axis

Page 26: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Modifying the Statistics

The Canvas in the Browser

Setting the (7) statistics options default = 0001111

Page 27: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Dividing the Canvas

Create a new Canvas Divide it in 2 Draw two histograms.

1. Lego plot2. LogY

Page 28: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Command Line Basics

Use up and down arrows to recall commands $HOME/.root_hist

Use emacs commands to navigate

Page 29: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Open a File Open a file for reading

root [] TFile f("Example.root") Look at the contents of the file

root [] f.ls()TFile** Example.root ROOT file TFile* Example.root ROOT file KEY: TTree myTree;1 Example ROOT tree KEY: TH1F totalHistogram;1 Total Distribution KEY: TH1F mainHistogram;1 Main Contributor KEY: TH1F s1Histogram;1 First Signal KEY: TH1F s2Histogram;1 Second Signal

Page 30: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Plotting a Variable Plot a variable

root [] myTree->Draw("xs1")

Where did myTree come from? ROOT executed an implicit gROOT->FindObject("myTree")

And now.. root[] f.ls() … OBJ: TTree myTree Example ROOT tree: 0 KEY: TTree myTree;1 Example ROOT tree

Page 31: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The ROOT File

A TFile is a directory structure like UNIX Object in Memory (OBJ) Object on Disk (KEY)

Page 32: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

The ROOT Tree

Stores large quantities of same class objects: Optimize disk space Optimize access speed Had analysis methods (TTree::Draw)

TNtuple is a TTree limited to floating point numbers.

More details later …

Page 33: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Fitting

To add a Gaussian Fitroot [] htemp->Fit("gaus")

Where did htemp come from?automatically generated

histogram by the TTree::Draw command.

Page 34: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Color and Error Bars To add color

root [] htemp->SetFillColor(9) See pg. 134 of the Users Guide for color

index Or on any Canvas choose View:Colors

Drawing Error Barsroot[] htemp->Draw("E1,same")

Many Draw Options See the User's Guide

Page 35: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Command Line Basics Open and browse a file Drawing histograms Adding a Fit Adding Error bars Adding Color

Page 36: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Where to Find Information The ROOT Home: http://root.cern.ch

Talks and publications on ROOT: http://root.cern.ch/root/Publications.html

To get information on a specific class : http://root.cern.ch/root/html/ClassIndex.html

Page 37: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Class Reference Guide Find the class in the index, for

example TH1. Class Inheritanceclass TH1 : public TNamed, public TAttLine, public

TAttFill, public TAttMarker

Class Description Private members Public methods Code

TH1

TH3 TH2

TH1C TH1S TH1F TH1D

TProfile

TH2C TH2S TH2F TH2DTH3S TH3F

TProfile2D

TH3C TH3D

Page 38: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Finding Examples The ROOT Tutorials:

http://root.cern.ch/root/Tutorials.html

The ROOT How To's:

http://root.cern.ch/root/Howto.html

For on-line help for a particular topic it's very

useful to use their facility to search the

ROOT site. http://root.cern.ch/root

Page 39: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

More Information

To subscribe to roottalk: http://root.cern.ch/root/roottalk/AboutRootTalk.html

To submit a bug report:

http://pcroot.cern.ch/root-bugs

About ROOT at Fermi: [email protected]

http://ods.fnal.gov/ods/root-eval/current/

To subscribe to the about-root mailing list send

mail to [email protected] with the body of the

email: subscribe about-root

email@addresses.

Page 40: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Summary Overview of ROOT GUI Basics Command line basics Using the Class reference

guide PAW to ROOT conversion

Page 41: Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1

Sept 11, 2003ROOT Day1, Suzanne

Panacek 1

Getting started with the Exercises

Go to: http://patwww.fnal.gov/root/class/Setup.htm for setup instructions using Reflection and ssh on fcdfsgi2 and d0mino and minos1.

Find the exercises on line at:http://patwww.fnal.gov/root/class/exercises.htm