1 / 41


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

Download Presentation


An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.


Presentation Transcript

  1. ROOT An object oriented HEP analysis framework. Day 1 ROOT Day1, Suzanne Panacek

  2. The ROOT Team ROOT Day1, Suzanne Panacek

  3. 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

  4. 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

  5. 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

  6. Class Schedule - Day 2 • Root Commands and CINT • Discuss Exercises • Functions and Fitting • The Tree Viewer ROOT Day1, Suzanne Panacek

  7. 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

  8. ROOT Overview • What about PAW • Concepts: Object Oriented Design, Frameworks • Services and Utilities • Libraries • Physical Organization ROOT Day1, Suzanne Panacek

  9. 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

  10. 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

  11. 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

  12. A Framework provides utilities and services. ROOT Day1, Suzanne Panacek

  13. 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

  14. 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

  15. The Framework Organization ROOT Day1, Suzanne Panacek

  16. Three User Interfaces • GUIwindows, buttons, menus • Root Command lineCINT (C++ interpreter) • Macros, applications, libraries (C++ compiler and interpreter) ROOT Day1, Suzanne Panacek

  17. ROOT Overview Summary • PAW • Concepts: Object Oriented Design, Frameworks • Services and Utilities • Libraries • Physical Organization ROOT Day1, Suzanne Panacek

  18. 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

  19. GUI Basics • Display the browser • TBrowser b; • Start root • > root • Quit root (just in case) • root[0]>.q ROOT Day1, Suzanne Panacek

  20. Displaying a Histogram • Display a histogram The Canvas Open the root file Browse the file ROOT Day1, Suzanne Panacek

  21. 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

  22. The Draw Panel • The Event Status The Draw Panel Adding Error bars Slider Defaults ROOT Day1, Suzanne Panacek

  23. Fitting, Coloring, and Zooming • Adding a gaussian fit • Coloring the histogram • Zooming/unzooming ROOT Day1, Suzanne Panacek

  24. Adding Objects to the Canvas • The Editor • Adding an Arrow • Adding Text ROOT Day1, Suzanne Panacek

  25. Adding another Pad • Add a Pad • Select the new Pad • Draw a histogram • Add a title for the axis ROOT Day1, Suzanne Panacek

  26. Modifying the Statistics • The Canvas in the Browser • Setting the (7) statistics options • default = 0001111 ROOT Day1, Suzanne Panacek

  27. Dividing the Canvas • Create a new Canvas • Divide it in 2 • Draw two histograms. 1. Lego plot 2. LogY ROOT Day1, Suzanne Panacek

  28. Command Line Basics • Use up and down arrows to recall commands • $HOME/.root_hist • Use emacs commands to navigate ROOT Day1, Suzanne Panacek

  29. 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

  30. 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

  31. The ROOT File • A TFile is a directory structure like UNIX • Object in Memory (OBJ) Object on Disk (KEY) ROOT Day1, Suzanne Panacek

  32. 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

  33. 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

  34. 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

  35. Command Line Basics • Open and browse a file • Drawing histograms • Adding a Fit • Adding Error bars • Adding Color ROOT Day1, Suzanne Panacek

  36. 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

  37. 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

  38. 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

  39. 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

  40. Summary • Overview of ROOT • GUI Basics • Command line basics • Using the Class reference guide • PAW to ROOT conversion ROOT Day1, Suzanne Panacek

  41. 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

More Related