Presentation is loading. Please wait.

Presentation is loading. Please wait.

ROOT Class Day 1 An Object Oriented Data Analysis Framework

Similar presentations


Presentation on theme: "ROOT Class Day 1 An Object Oriented Data Analysis Framework"— Presentation transcript:

1 ROOT Class Day 1 An Object Oriented Data Analysis Framework
September 18 ROOT An Object Oriented Data Analysis Framework ROOT was created by Rene Brun and Fons Rademakers in CERN, CINT was created by Masaharu Goto. The website for this class is at: www-pat.fnal.gov/root/ The ROOT system website is at: Day 1 21 September 2018 ROOT Day1 Fons Rademakers

2 The Early ROOT Team 21 September 2018 ROOT Day1 ROOT Class Day 1
Fons Rademakers

3 http://root.cern.ch The ROOT Web Pages General Information and News
Download source and binaries HowTo’s & tutorials User Guide & Reference Guide Roottalk mailing list & Forum Savannah bug reporting and 21 September 2018 ROOT Day1

4 Acknowledgements Suzanne Panacek (Fermilab) Philippe Canal (Fermilab)
ROOT Class Day 1 September 18 Acknowledgements Suzanne Panacek (Fermilab) Philippe Canal (Fermilab) For their help in developing this course 21 September 2018 ROOT Day1 Fons Rademakers

5 Class Schedule - Day 1 Overview of the ROOT Framework GUI basics
ROOT Class Day 1 September 18 Class Schedule - Day 1 Overview of the ROOT Framework GUI basics Command line basics Finding Information (class reference guide) Getting started with the exercises 21 September 2018 ROOT Day1 Fons Rademakers

6 Class Schedule - Day 2 ROOT commands and CINT Discuss exercises
ROOT Class Day 1 September 18 Class Schedule - Day 2 ROOT commands and CINT Discuss exercises Functions and fitting Building ROOT Trees Reading Trees Using Trees in Analysis 21 September 2018 ROOT Day1 Fons Rademakers

7 Class Schedule - Day 3 Copying Trees Chain of trees
ROOT Class Day 1 September 18 Class Schedule - Day 3 Copying Trees Chain of trees Adding your class to ROOT With the Interpreter With a compiler (Shared Library) With ACLiC Rootcint ROOT I/O details Remote I/O 21 September 2018 ROOT Day1 Fons Rademakers

8 ROOT Overview What is ROOT What about PAW
ROOT Class Day 1 September 18 ROOT Overview What is ROOT What about PAW Concepts: Object Oriented Design, Frameworks Services and Utilities Libraries Physical Organization 21 September 2018 ROOT Day1 Fons Rademakers

9 Prehistory In the beginning there was PAW
ROOT Class Day 1 September 18 Prehistory In the beginning there was PAW HBOOK ZEBRA KUIP COMIS SIGMA Mini/Micro-DST analysis was done using Ntuples Ntuples are basically simple tables Only basic types No data structures No cross reference between Ntuples Successful because simple and efficient Dead-end No way to grow to more complex data structures Difficult to extend Expensive to maintain Too many languages: Fortran, KUIP, SIGMA 21 September 2018 ROOT Day1 Fons Rademakers

10 Main Goals for New System
ROOT Class Day 1 September 18 Main Goals for New System Being able to support full data analysis chain Raw data, DSTs, mini-DSTs, micro-DSTs Being able to handle complex structures Complete objects Object hierarchies Support at least the PAW data analysis functionality Histogramming Fitting Visualization Only one language C++ Better maintainable Use OOP Make the system extensible Use OO framework technology 21 September 2018 ROOT Day1 Fons Rademakers

11 ROOT Class Day 1 September 18 ROOT in a Nutshell The ROOT system is an Object Oriented framework for large scale data handling applications Written in C++ Provides, among others, an efficient data storage and access system designed to support structured data sets (PetaBytes) a query system to extract data from these data sets a C++ interpreter advanced statistical analysis algorithms (multi dimensional histogramming, fitting, minimization and cluster finding) scientific visualization tools with 2D and 3D graphics an advanced Graphical User Interface The user interacts with ROOT via a graphical user interface, the command line or scripts The command and scripting language is C++, thanks to the embedded CINT C++ interpreter, and large scripts can be compiled and dynamically loaded 21 September 2018 ROOT Day1 Fons Rademakers

12 ROOT: An Open Source Project
ROOT Class Day 1 September 18 ROOT: An Open Source Project The project is developed as a collaboration between: Full time developers: 10 people full time at CERN 2 developers at FermiLab 1 developer in Japan (Agilent Technologies) 2 developers at MIT Large number of part-time contributors Several thousand users giving feedback, comments, bug fixes and many small contributions An Open Source Project, source available under the LGPL license 21 September 2018 ROOT Day1 Fons Rademakers

13 ROOT Development Process
ROOT Class Day 1 September 18 ROOT Development Process We follow an Open Source development model “Release early, release often” Major releases 3-4 times per year Minor releases every 2-3 weeks Daily/nightly builds + regression testing + benchmarking (rootmarks) “Let user feedback drive the development” Bug reporting system Roottalk mailing list Annual workshop Open cvs repository Let users become developers 21 September 2018 ROOT Day1 Fons Rademakers

14 Object Oriented Concepts
ROOT Class Day 1 September 18 Object Oriented Concepts Class: the description of a “thing” in the system Object: instance of a class Methods: functions for a class TObject Members: a “has a” relationship to the class. Inheritance: an “is a” relationship to the class. IsA Event HasA HasA HasA If you would like to refresh or even learn C++, we have a C++ on-line tutorial available at: www-pat/fnal/gov/root/CPlusPlus/index.html Or you can read the chapter "A little C++" in the ROOT User's Guide Segment Track Vertex HasA HasA HasA Momentum MeanCharge MassSquare 21 September 2018 ROOT Day1 Fons Rademakers

15 provides utilities and services
ROOT Class Day 1 September 18 A Framework provides utilities and services 21 September 2018 ROOT Day1 Fons Rademakers

16 ROOT's Services and Utilities
ROOT Class Day 1 September 18 ROOT's Services and Utilities Data analysis and visualization tools Histogramming and Fitting 2D and 3D graphics, Postscript, PDF, LateX Geometrical modeller Object persistency and Trees PROOF parallel query engine Collection Classes Run Time Type Identification Online services User Interface GUI: Browsers, Panels, Tree Viewer Command Line interface: C++ interpreter CINT Script Processor (C++ compiled  C++ interpreted) 21 September 2018 ROOT Day1 Fons Rademakers

17 Calling API vs Sub-classing API
ROOT Class Day 1 September 18 Calling API vs Sub-classing API Class Program using calling API Class A calls Class Y method B virtual method Z Class inherits Class Class Class newY Framework virtual method Z Program using sub-classing API 21 September 2018 ROOT Day1 Fons Rademakers

18 ROOT Library Structure
ROOT Class Day 1 September 18 ROOT Library Structure ROOT libraries are a layered structure The CORE classes are always required (support for RTTI, basic I/O and interpreter) The optional libraries (you load only what you use). Separation between data objects and the high level classes acting on these objects. Example, a batch job uses only the histogram library, no need to link histogram painter library Shared libraries reduce the application link time Shared libraries reduce the application size ROOT shared libraries can be used with other class libraries Shared libraries are mostly loaded via the plug-in manager 21 September 2018 ROOT Day1 Fons Rademakers

19 The ROOT Libraries Over 1000 classes 1,350,000 lines of code
ROOT Class Day 1 September 18 The ROOT Libraries Over 1000 classes 1,350,000 lines of code CORE (12 Mbytes) CINT (2 Mbytes) Green libraries linked on demand via plug-in manager (only a subset shown) 21 September 2018 ROOT Day1 Fons Rademakers

20 Three User Interfaces GUI windows, buttons, menus
ROOT Class Day 1 September 18 Three User Interfaces GUI windows, buttons, menus Command line CINT (C++ interpreter) Macros, applications, libraries (C++ compiler and interpreter) 21 September 2018 ROOT Day1 Fons Rademakers

21 Differences from PAW Regular grammar (C++) on command line
ROOT Class Day 1 September 18 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. Regular grammar (C++) on command line Single language We have one single language C++ instead of a scripting and restricted language KUIP. The macros can be interpreted or dynamically executed via the compiler Object Oriented The main point is that from the interpreter one can call functions from the user classes if these classes have been run through rootcint. Because a full object dictionary is available we can do all kinds of things with the objects; All what is called reflection or introspection with Java is available in ROOT. This is an extremely important addition on top of C++. The dictionary is the heart of the system. It is with the dictionary that we can do automatic schema evolution for example or have the automatic context menus. Interactive User Interface  PAW had also an interactive interface (command line and also a mouse interface). The ROOT interface and the GUI is more advanced than PAW. This interface is user oriented. Picking is automatic in the pad. Well Documented code. HTML class descriptions for every class. The Root code is better documented than the PAW code. Html documentation for the source is generated automatically and available from the Web. User classes can also be documented automatically via the THtml class. Object I/O including Schema Evolution I/O in ROOT cannot be compared with PAW I/O. PAW I/O was limited to simple histograms or ntuples. ROOT can be used as the main I/O engine for user classes including automatic schema evolution. Root supports network classes (TCP/IP sockets, remote I/O via rootd) 21 September 2018 ROOT Day1 Fons Rademakers

22 PAW to ROOT File Conversion
ROOT Class Day 1 September 18 PAW to ROOT File Conversion Get the example PAW file from ftp://root.cern.ch/root/exercises.tar.gz exercises_files/day1/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: 21 September 2018 ROOT Day1 Fons Rademakers

23 A Data Analysis & Visualization Tools
ROOT Class Day 1 September 18 A Data Analysis & Visualization Tools 21 September 2018 ROOT Day1 Fons Rademakers

24 Graphics: 1,2,3-D functions
ROOT Class Day 1 September 18 Graphics: 1,2,3-D functions 21 September 2018 ROOT Day1 Fons Rademakers

25 Histograms 21 September 2018 ROOT Day1 ROOT Class Day 1 September 18
Fons Rademakers

26 Full LateX support on screen and postscript
ROOT Class Day 1 September 18 Full LateX support on screen and postscript Formula or diagrams can be edited with the mouse TCurlyArc TCurlyLine TWavyLine and other building blocks for Feynman diagrams 21 September 2018 ROOT Day1 Fons Rademakers

27 Alice 3 million nodes 21 September 2018 ROOT Day1 ROOT Class Day 1
Fons Rademakers

28 ROOT Overview Summary Concepts: Object Oriented Design, Frameworks
ROOT Class Day 1 September 18 ROOT Overview Summary Concepts: Object Oriented Design, Frameworks Services and Utilities Libraries Physical Organization PAW Compatibility Some Visual Examples 21 September 2018 ROOT Day1 Fons Rademakers

29 GUI Basics Browsing and opening files Drawing histograms
ROOT Class Day 1 September 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 21 September 2018 ROOT Day1 Fons Rademakers

30 GUI Basics Start root Quit root (just in case) Display the browser
ROOT Class Day 1 September 18 GUI Basics Start root > root Quit root (just in case) root[0] .q Display the browser TBrowser b; Step by Step: Start ROOT > root Quit Root root[0]> .q Start Root again and create a browser object. The constructor of the browser will automatically draw the browser root[0]> TBrowser b; 21 September 2018 ROOT Day1 Fons Rademakers

31 Displaying a Histogram
ROOT Class Day 1 September 18 Displaying a Histogram Open the ROOT file Browse the file Display a histogram The Canvas Step by Step: 1. select the Open menu item from the File menu 2. select “Example.root” and click on Open 3. Select the Refresh menu item in the View menu 4. Double click on Example.root 5. double click on myTree 6. double click on the xs1 21 September 2018 ROOT Day1 Fons Rademakers

32 Basic Navigation by Clicking
ROOT Class Day 1 September 18 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 pop pads freezes event status bar Step by Step To bring up the context menu Right Click on the object To drag an object Left Click, hold, and drag the mouse To select an object Left Click and hold To resize an object Place mouse over object border Left Click Drag the mouse To create a new canvas and activate a canvas Select the New Canvas item in the File menu on the c1 canvas Use the middle mouse button to activate the old canvas c1 Use the middle mouse button to activate the new canvas c1_n2 Note the colored frame around the canvas that is active 21 September 2018 ROOT Day1 Fons Rademakers

33 The Editor Panel The Event Status The Editor Panel Adding Error bars
ROOT Class Day 1 September 18 The Editor Panel The Event Status The Editor Panel Adding Error bars Changing colors Styles Step by Step To show the Event Status bar: - Select the Event Status menu item in the Options menu. - The Event Status bar shows the title of the selected object , the name, the coordinate in pixels, and other object specific information. To bring up the Draw Panel for the histogram - Select the horizontal part of the histogram - Right click to get the context menu - Select the Draw Panel To draw the error bars - On the Draw Panel select “E1:errors/edges” and “Same Picture” - Click Draw To zoom the histogram - select the left edge of the slider (the gray bar at the bottom) - drag it to the right, this moves the left edge of the histogram - do the same with the right side - select the slider and move it left or right to move the range To return to the defaults - On the Draw Panel select Defaults 21 September 2018 ROOT Day1 Fons Rademakers

34 The Editor Panel Sliders Rebining 21 September 2018 ROOT Day1
ROOT Class Day 1 September 18 The Editor Panel Sliders Rebining Step by Step To show the Event Status bar: - Select the Event Status menu item in the Options menu. - The Event Status bar shows the title of the selected object , the name, the coordinate in pixels, and other object specific information. To bring up the Draw Panel for the histogram - Select the horizontal part of the histogram - Right click to get the context menu - Select the Draw Panel To draw the error bars - On the Draw Panel select “E1:errors/edges” and “Same Picture” - Click Draw To zoom the histogram - select the left edge of the slider (the gray bar at the bottom) - drag it to the right, this moves the left edge of the histogram - do the same with the right side - select the slider and move it left or right to move the range To return to the defaults - On the Draw Panel select Defaults 21 September 2018 ROOT Day1 Fons Rademakers

35 Fitting, Coloring, and Zooming
ROOT Class Day 1 September 18 Fitting, Coloring, and Zooming Adding a gaussian fit Coloring the histogram Zooming/unzooming Step by Step To add a gaussian fit: - Select the horizontal part of the histogram outline - Right click to get the context menu - Select the Fit Panel - Select “gaus” and “Same Picture” - Select Fit To add color and fill - Select the horizontal part of the histogram - Select the “SetFillAttributes” - Select a color and your favorite pattern - Select Apply To zoom the X-Axis - Left click on the left axis point (the cursor changes to a hand) - Drag the mouse to the right axis point - Release To un zoom: - Right click on the X-axis. This brings up the context menu for the X axis. - Select unzoom from the context menu. 21 September 2018 ROOT Day1 Fons Rademakers

36 Adding Objects to the Canvas
ROOT Class Day 1 September 18 Adding Objects to the Canvas The Editor Adding an Arrow Adding Text Step by Step To add an Arrow - Select the Editor menu item from the Edit menu, this brings up the Editor pallet - Select the Arrow - Place the mouse on the canvas where you want the arrow to begin and left click and hold - Drag the mouse to where you want the arrow to end. Release. Now you should see an arrow. To add Text - From the Editor palette select the Text/Latex button - Place the mouse on the canvas where you want the text to begin and left click. - Type your text and type “Enter”. - now you should have text displayed on the canvas To delete an object - Bring up the context menu by right clicking - Select Delete 21 September 2018 ROOT Day1 Fons Rademakers

37 Adding Another Pad Add a Pad Select the new Pad Draw a histogram
ROOT Class Day 1 September 18 Adding Another Pad Add a Pad Select the new Pad Draw a histogram Add a title for the axis Step by Step To add a Pad and draw a histogram in it - Select the Editor menu item from the Edit menu, this brings up the Editor. If you have the Editor already open just click on it to bring it into the foreground - Select the Pad from the Editor - Left Click and hold on the canvas where you want the upper left corner of the new Pad to be. - Drag until the outline fits the size you want for the new Pad - Make the new pad the active one by clicking on it with the middle mouse button - Go to your browser and double click on xmain. - Check your canvas and you should see a histogram in your new Pad. To add a title to the axis: - Right click on the axis (x or y) to display the context menu - Select SetTitle from the context menu. - Type the string you want to appear on the axis. In this example “X-Axis” - To center the title, right click on the axis to display the context menu. - Select CenterTitle. The dialog shows the value kTrue, click OK. 21 September 2018 ROOT Day1 Fons Rademakers

38 Modifying the Statistics
ROOT Class Day 1 September 18 Modifying the Statistics The Canvas in the Browser Setting the (7) statistics options default = Step by Step To set the statistics options from the browser - Bring the Browser window to the foreground by clicking on it - Double click on the Canvases directory in the left panel - Click on c1 to display the object that are on the c1 canvas - Right click on “stats” to bring up the context menu for the statistics panel - Select SetOptStat. This brings up a new dialog called “TPaveStats::SetOptStat” - Enter “111111” in the text field in the dialog - Select OK Bring the canvas c1 to the foreground by clicking on it to see the new statistics. The mode has up to seven digits that can be set to on (1) or off (0). Mode = iourmen (default = ) ·         n = 1 the name of histogram is printed ·         e = 1 the number of entries printed ·         m = 1 the mean value printed ·         r = 1 the root mean square printed ·         u = 1 the number of underflows printed ·         o = 1 the number of overflows printed ·         i = 1 the integral of bins printed When trailing digits is left out, they are assumed 0 21 September 2018 ROOT Day1 Fons Rademakers

39 Dividing the Canvas Draw two histograms. Create a new Canvas
ROOT Class Day 1 September 18 Dividing the Canvas Create a new Canvas Divide it in 2 Draw two histograms. 1. Lego plot 2. LogY Step by Step To create a new canvas: On the Browser, select the File menu and New Canvas. To divide the canvas in two Right click on the new canvas. This will bring up the context menu. Select Divide from the context menu. This brings up the divide dialog. Enter 2 for the nx parameter and leave 1 for the ny parameter. These are the first two text fields in the dialog. To display the left histogram Activate the left canvas by middle clicking on it. Display the same histogram and select the Draw Panel for it. On the Draw panel select lego1 and Draw. To display the right histogram Activate the right canvas by middle clicking on it. Display the same histogram. Right click on lower right canvas. The context menu should say TPad::c1_2. Select the SetLogy item. 21 September 2018 ROOT Day1 Fons Rademakers

40 1-D Drawing Options Any object in the canvas is clickable and editable
ROOT Class Day 1 September 18 1-D Drawing Options Any object in the canvas is clickable and editable 21 September 2018 ROOT Day1 Fons Rademakers

41 2-D Drawing Options 21 September 2018 ROOT Day1 ROOT Class Day 1
Fons Rademakers

42 2-D Drawing Options 21 September 2018 ROOT Day1 ROOT Class Day 1
Fons Rademakers

43 All these plots can be rotated with the mouse
ROOT Class Day 1 September 18 2-D Drawing Options All these plots can be rotated with the mouse 21 September 2018 ROOT Day1 Fons Rademakers

44 2-D Drawing Options Same output on the screen and with
ROOT Class Day 1 September 18 2-D Drawing Options Same output on the screen and with vector Postscript 21 September 2018 ROOT Day1 Fons Rademakers

45 THStack Examples 21 September 2018 ROOT Day1 ROOT Class Day 1
Fons Rademakers

46 Filling with String Variables
ROOT Class Day 1 September 18 Filling with String Variables 21 September 2018 ROOT Day1 Fons Rademakers

47 Command Line Basics Use up and down arrows to recall commands
ROOT Class Day 1 September 18 Command Line Basics Use up and down arrows to recall commands $HOME/.root_hist Use emacs commands to navigate 21 September 2018 ROOT Day1 Fons Rademakers

48 Open a File Open a file for reading Look at the contents of the file
ROOT Class Day 1 September 18 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; Example ROOT tree KEY: TH1F totalHistogram; Total Distribution KEY: TH1F mainHistogram;1 Main Contributor KEY: TH1F s1Histogram;1 First Signal KEY: TH1F s2Histogram;1 Second Signal 21 September 2018 ROOT Day1 Fons Rademakers

49 Plotting a Variable Plot a variable Where did myTree come from?
ROOT Class Day 1 September 18 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 21 September 2018 ROOT Day1 Fons Rademakers

50 The ROOT File A TFile is a directory structure like UNIX
ROOT Class Day 1 September 18 The ROOT File This picture shows a TFile with five objects in the top directory (kObjA;1, kObjA;2, kObjB;1, kObjC;1 and kObjD;1). ObjA is on file twice with two different cycle numbers. It also shows four objects in memory (mObjE, mObjeF, mObjM, mObjL). It also shows several subdirectories. A TFile is a directory structure like UNIX Object in Memory (OBJ) Object on Disk (KEY) 21 September 2018 ROOT Day1 Fons Rademakers

51 The ROOT Tree Stores large quantities of same class objects:
ROOT Class Day 1 September 18 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 … Why use Trees We can use an example to illustrate the difference in saving individual objects vs. filling and saving the tree. Let's assume we have one million events and we write each one to a file, not using a tree. The TFile, being unaware that an event is always an event and the header information is always the same, will contain one million copies of the header. This header is about 60 bytes long, and contains information about the class, such as its name and title. For one million events, we would have 60,000,000 bytes of redundant information. For this reason, ROOT gives us the TTree class. A TTree is smart enough not to duplicate the object header, and is able to reduce the header information to about four bytes per object. 21 September 2018 ROOT Day1 Fons Rademakers

52 Fitting To add a Gaussian Fit Where did htemp come from?
ROOT Class Day 1 September 18 Fitting To add a Gaussian Fit root [] htemp->Fit("gaus") Where did htemp come from? automatically generated histogram by the TTree::Draw() command. 21 September 2018 ROOT Day1 Fons Rademakers

53 Color and Error Bars To add color Drawing Error Bars Many Draw Options
ROOT Class Day 1 September 18 Color and Error Bars To add color root [] htemp->SetFillColor(9) See pg. 134 of the Users Guide for color index Or in any Canvas choose View:Colors Drawing Error Bars root[] htemp->Draw("E1,same") Many Draw Options See the User's Guide 21 September 2018 ROOT Day1 Fons Rademakers

54 Command Line Basics Open and browse a file Drawing histograms
ROOT Class Day 1 September 18 Command Line Basics Open and browse a file Drawing histograms Adding a Fit Adding Error bars Adding Color 21 September 2018 ROOT Day1 Fons Rademakers

55 Class Reference Guide Find the class in the index, for example TH1.
ROOT Class Day 1 September 18 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 21 September 2018 ROOT Day1 Fons Rademakers

56 ROOT Class Day 1 September 18 Finding Examples The ROOT Tutorials: The ROOT How To's: For on-line help for a particular topic it's very useful to use their facility to search the ROOT site. 21 September 2018 ROOT Day1 Fons Rademakers

57 Summary Overview of ROOT GUI Basics Command line basics
ROOT Class Day 1 September 18 Summary Overview of ROOT GUI Basics Command line basics Using the Class reference guide PAW to ROOT conversion 21 September 2018 ROOT Day1 Fons Rademakers

58 Exercise Overview Session A Session B Use ROOT command line
ROOT Class Day 1 September 18 Exercise Overview Session A Use ROOT command line Write a named and un-named script Use the GUI to create objects and change their attributes Save your canvas to a PostScript file Fit a graph Session B Fit and rotate a histogram Use the Object Browser and the Tree Viewer Make a profile and contour graphs Build an event list from a cut Fill a histograms with random numbers Use ACLiC 21 September 2018 ROOT Day1 Fons Rademakers

59 Exercise Session C Session C:
ROOT Class Day 1 September 18 Exercise Session C Session C: Study an example analysis from H1 at DESY Learn about the TTree::MakeSelector() method to automatically create a class that loops over each entry in a tree. Save and retrieve a canvas to and from a ROOT file Compute the integral of a histogram Compute the integral of a function within a range 21 September 2018 ROOT Day1 Fons Rademakers

60 Installing ROOT Go to ROOT web page and download the latest version of ROOT Install according to description Set shell variables ROOTSYS, LD_LIBRARY_PATH and PATH Make sure you can do: root root [0] .q 21 September 2018 ROOT Day1

61 Getting Started with the Exercises
ROOT Class Day 1 September 18 Getting Started with the Exercises Find the exercises on line at: ftp://root.cern.ch/root/exercises.tar.gz Today Session A. 21 September 2018 ROOT Day1 Fons Rademakers


Download ppt "ROOT Class Day 1 An Object Oriented Data Analysis Framework"

Similar presentations


Ads by Google