410 likes | 707 Views
ROOT. An object oriented HEP analysis framework. Day 1. The ROOT Team. ROOT contacts at Fermi. Philippe Canal , x2545 pcanal@fnal.gov Suzanne Panacek, x8334 spanacek@fnal.gov Jeff Kallenbach, x2210 jeffk@fnal.gov. Mailing Lists. the ROOT mailing list: roottalk@root.cern.ch
E N D
ROOT An object oriented HEP analysis framework. Day 1 ROOT Day1, Suzanne Panacek
The ROOT Team ROOT Day1, Suzanne Panacek
ROOT contacts at Fermi Philippe Canal , x2545 pcanal@fnal.gov Suzanne Panacek, x8334 spanacek@fnal.gov Jeff Kallenbach, x2210 • jeffk@fnal.gov ROOT Day1, Suzanne Panacek
Mailing Lists • the ROOT mailing list: roottalk@root.cern.ch • archives: http://root.cern.ch/root/roottalk/AboutRootTalk.html • Fermilab mailing list: about-root@fnal.gov • archives: http://listserv.fnal.gov/archives/about-root.html ROOT Day1, Suzanne Panacek
Class Schedule - Day 1 • Overview of the ROOT Framework • GUI basics • Command line basics • Finding Information (class reference guide) • Getting started with the exercises ROOT Day1, Suzanne Panacek
Class Schedule - Day 2 • Root Commands and CINT • Discuss Exercises • Functions and Fitting • The Tree Viewer ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
ROOT Overview • What about PAW • Concepts: Object Oriented Design, Frameworks • Services and Utilities • Libraries • Physical Organization ROOT Day1, Suzanne Panacek
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. ROOT Day1, Suzanne Panacek
PAW to ROOT File Conversion • Get the example PAW file fromhttp://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 ROOT Day1, Suzanne Panacek
Object Oriented Concepts • Class: the description of a “thing” in the system • Object: instance of a class • Methods: functions for a class • Members: a “has a” relationship to the class. • Inheritance: an “is a” relationship to the class. ROOT Day1, Suzanne Panacek
A Framework provides utilities and services. ROOT Day1, Suzanne Panacek
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) ROOT Day1, Suzanne Panacek
The Libraries • Over 350 classes • Core • CINT • Libraries loaded at startup: Hist, Tree … • Libraries loaded when needed: HistPainter, TreePlayer,… • Special purpose libraries: EG, Physics… ROOT Day1, Suzanne Panacek
The Framework Organization ROOT Day1, Suzanne Panacek
Three User Interfaces • GUIwindows, buttons, menus • Root Command lineCINT (C++ interpreter) • Macros, applications, libraries (C++ compiler and interpreter) ROOT Day1, Suzanne Panacek
ROOT Overview Summary • PAW • Concepts: Object Oriented Design, Frameworks • Services and Utilities • Libraries • Physical Organization ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
GUI Basics • Display the browser • TBrowser b; • Start root • > root • Quit root (just in case) • root[0]>.q ROOT Day1, Suzanne Panacek
Displaying a Histogram • Display a histogram The Canvas Open the root file Browse the file ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
The Draw Panel • The Event Status The Draw Panel Adding Error bars Slider Defaults ROOT Day1, Suzanne Panacek
Fitting, Coloring, and Zooming • Adding a gaussian fit • Coloring the histogram • Zooming/unzooming ROOT Day1, Suzanne Panacek
Adding Objects to the Canvas • The Editor • Adding an Arrow • Adding Text ROOT Day1, Suzanne Panacek
Adding another Pad • Add a Pad • Select the new Pad • Draw a histogram • Add a title for the axis ROOT Day1, Suzanne Panacek
Modifying the Statistics • The Canvas in the Browser • Setting the (7) statistics options • default = 0001111 ROOT Day1, Suzanne Panacek
Dividing the Canvas • Create a new Canvas • Divide it in 2 • Draw two histograms. 1. Lego plot 2. LogY ROOT Day1, Suzanne Panacek
Command Line Basics • Use up and down arrows to recall commands • $HOME/.root_hist • Use emacs commands to navigate ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
The ROOT File • A TFile is a directory structure like UNIX • Object in Memory (OBJ) Object on Disk (KEY) ROOT Day1, Suzanne Panacek
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 … ROOT Day1, Suzanne Panacek
Fitting • To add a Gaussian Fit root [] htemp->Fit("gaus") • Where did htemp come from? automatically generated histogram by the TTree::Draw command. ROOT Day1, Suzanne Panacek
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 Bars root[] htemp->Draw("E1,same") • Many Draw Options • See the User's Guide ROOT Day1, Suzanne Panacek
Command Line Basics • Open and browse a file • Drawing histograms • Adding a Fit • Adding Error bars • Adding Color ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
Class Reference Guide • Find the class in the index, for example TH1. • Class Inheritance class TH1 : public TNamed, public TAttLine, public TAttFill, public TAttMarker • Class Description • Private members • Public methods • Code ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek
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: about-root@fnal.gov http://ods.fnal.gov/ods/root-eval/current/ • To subscribe to the about-root mailing list send mail to listserv@fnal.gov with the body of the email: subscribe about-root email@addresses. ROOT Day1, Suzanne Panacek
Summary • Overview of ROOT • GUI Basics • Command line basics • Using the Class reference guide • PAW to ROOT conversion ROOT Day1, Suzanne Panacek
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 ROOT Day1, Suzanne Panacek