ROOT Introduction

Embed Size (px)

Citation preview

  • 7/28/2019 ROOT Introduction

    1/26

    ROOT Framework OOP

  • 7/28/2019 ROOT Introduction

    2/26

    WHERE is ROOT

    http://root.cern.ch

    http://root.cern.ch/http://root.cern.ch/
  • 7/28/2019 ROOT Introduction

    3/26

    WHAT is ROOT

    http://en.wikipedia.org/wiki/ROOT

    CERN maintained a program library writtenin FORTRAN for many years; developmentand maintenance were discontinued in

    2003 in favour of ROOT, written in C++.ROOT development was initiated by RenBrun and Fons Rademakers in 1994.

    Why C/C++:

    Scalability - Incapsulation, Polymorphism,Inheritance - Steep learning curve, OS

    dependentBorn as the orphan child, currently suffers frompositive discrimination, but indeed ROOT doesmany things...

    http://en.wikipedia.org/wiki/ROOThttp://en.wikipedia.org/wiki/ROOT
  • 7/28/2019 ROOT Introduction

    4/26

    WHAT is ROOT (2)

    The backbone of the ROOT architecture is alayered class hierarchy with, currently, around1200 classes grouped in about 60 frameworks(libraries) divided in 19 main categories(modules). This hierarchy is organized in a

    mostly single-rooted class library, that is, mostof the classes inherit from a common baseclass TObject.

    ROOT Base, Containers (Data), Physics,Matrix, Histograms, Minimization, Trees,2D/3D Graphics, Image processing, Detector

    geometry, GUI, SQL interface

  • 7/28/2019 ROOT Introduction

    5/26

    Save data. You can save your data (and any C++ object) in a compressed binary form in a ROOTfile. The object format is also saved in the same file. ROOT provides a data structure that isextremely powerful for fast access of huge amounts of data - orders of magnitude faster than anydatabase.

    Access data. Data saved into one or several ROOT files can be accessed from your PC, from theweb and from large-scale file delivery systems used e.g. in the GRID. ROOT trees spread overseveral files can be chained and accessed as a unique object, allowing for loops over hugeamounts of data.

    Process data. Powerful mathematical and statistical tools are provided to operate on your data.The full power of a C++ application and of parallel processing is available for any kind of datamanipulation. Data can also be generated following any statistical distribution, making it possibleto simulate complex systems.

    Show results. Results are best shown with histograms, scatter plots, fitting functions, etc. ROOTgraphics may be adjusted real-time by few mouse clicks. High-quality plots can be saved in PDFor other format(image, c macro, etc).

    Interactive or built application. You can use the CINT C++ interpreter or Python for yourinteractive sessions and to write macros, or compile your program to run at full speed. In bothcases, you can also create a GUI.

  • 7/28/2019 ROOT Introduction

    6/26

    Introducing ROOT Team

    Rene Brun

    Fons Rademakers

    Andrei Gheata

    Andrei works since 2001 in the offline group of the ALICE experiment. He is an experimentalnuclear physicist who worked before ALICE on data analysis for heavy-ion experiments inemulsions. In 2000 he started collaborating with the ROOT project and implemented theTreeViewer interface. Andrei is currently the main developer of the ROOT geometry package. He

    integrated the geometry in the Virtual Monte Carlo framework by developing interfaces for theGEANT3, GEANT4 and FLUKA particle transport engines.

    Extremely active, only a bunch of people (physicists, not programmers), large community

  • 7/28/2019 ROOT Introduction

    7/26

    Hands-On histograms

    Starting ROOT

    Create a simple histogram

    Fit the histogram (params, stats...)

    Save the results (.C, .root, image)

    Resuming work

    Command line Vs. Interactive tools

    Other

    2D/3D histograms, demos.C

    More examples:http://root.cern.ch/drupal/content/graphics-exampleshttp://root.cern.ch/drupal/category/image-galleries/basic-graphicshttp://root.cern.ch/drupal/category/image-galleries/data-analysis-visualization

    http://root.cern.ch/drupal/content/graphics-exampleshttp://root.cern.ch/drupal/category/image-galleries/basic-graphicshttp://root.cern.ch/drupal/category/image-galleries/data-analysis-visualizationhttp://root.cern.ch/drupal/category/image-galleries/data-analysis-visualizationhttp://root.cern.ch/drupal/category/image-galleries/basic-graphicshttp://root.cern.ch/drupal/content/graphics-examples
  • 7/28/2019 ROOT Introduction

    8/26

    WHO uses ROOT officially!

    Running Experiments:ALICE, Antares, ATLAS, BaBar, BRAHMS,CB-ELSA/TAPS, CDF, CMS, COMPASS, DZero, H1, LHCb,MINERA, MINOS, NEXT, PEN, PHENIX, PHOBOS, STAR, T2K,ZEUS, CRESST, OPERA

    Future Experiments: NOA, CBM, PANDA, BELLE II, Long BaselineNeutrino Experiment (LBNE)

    Astrophysics Experiments: AMS, ANTARES, DMTPC, Fermi,ICECUBE, H.E.S.S., MAGIC, Milagro (experiment), Pierre AugerObservatory, VERITAS, PAMELA, PoGOLite

  • 7/28/2019 ROOT Introduction

    9/26

    WHO uses ROOT (2)

  • 7/28/2019 ROOT Introduction

    10/26

    WHO uses ROOT (3)

  • 7/28/2019 ROOT Introduction

    11/26

    WHO uses ROOT (4)

  • 7/28/2019 ROOT Introduction

    12/26

    WHO uses ROOT (5)

  • 7/28/2019 ROOT Introduction

    13/26

    WHO uses ROOT (6)

  • 7/28/2019 ROOT Introduction

    14/26

    WHO uses ROOT (7)

  • 7/28/2019 ROOT Introduction

    15/26

    Where ROOT meets Experiment

    Large data sets ~Petabytes/year collisions event particles

    Planning the experiment detector simulations, detector

    response via simulated data

    RAW data Physicalinformation (tracks, particles)via parallel processing, gridcomputing RAW LTR->GTR ESD-trees

    Analysis, model datacomparisons

    Papers

  • 7/28/2019 ROOT Introduction

    16/26

    What Experiments do

    Take ROOT Framework as base

    Develop ROOT specific code for:

    Online monitoring

    Detectors (calibrations, response)

    Data storage

    Workflow for reducing data

    ANALYSIS tools

    Example: brat, cbmroot, aliroot

    Containers(DATA classes) Modules(workhorses, no DATA)

  • 7/28/2019 ROOT Introduction

    17/26

    Hands-On binary objects

    Multiple source compilation

    Configure Makefile Shared Objects , Binaries

    ROOT examples osc2root

    SO in ROOT, BRAT, CBMROOT, ALIROOT

  • 7/28/2019 ROOT Introduction

    18/26

    ROOT treesHighly optimized datastructures for fast dataaccess and large storagesize, with sequentialaccess to the data

  • 7/28/2019 ROOT Introduction

    19/26

    Hands-On tree analysis

    Interpreted scripts

    TreeViewer

    Tree projections Treeiteration

    Compiled code with ACLIC

    Benchmarking

  • 7/28/2019 ROOT Introduction

    20/26

    Event Visualization

    Detailed experiment geometry

    Tracks/Hits

    CBM event viewer

    Other examples:

    http://root.cern.ch/drupal/category/image-galleries/detectors

    http://root.cern.ch/drupal/category/image-galleries/events-displays-root-applications

    http://root.cern.ch/drupal/category/image-galleries/detectorshttp://root.cern.ch/drupal/category/image-galleries/events-displays-root-applicationshttp://root.cern.ch/drupal/category/image-galleries/events-displays-root-applicationshttp://root.cern.ch/drupal/category/image-galleries/detectors
  • 7/28/2019 ROOT Introduction

    21/26

    Hands-On EVE

  • 7/28/2019 ROOT Introduction

    22/26

    PROOF

    Parallel ROOT Framework = distributetasks like event generation on multi-coremachines

  • 7/28/2019 ROOT Introduction

    23/26

    Hands-On PROOF

  • 7/28/2019 ROOT Introduction

    24/26

    Serious PROOF ?

    4 x 4 quadCore = 16 CPU x 10 BLADES = 160 CPU's

    16 Gbytes DDR2 RAM / blade

  • 7/28/2019 ROOT Introduction

    25/26

    Approach

    Learn ENGLISH

    Learn PHYSICS

    Learn PROGRAMMING

    Go to many conferences (grantscovering up to 100% expenses)

    Granted good jobs

    The question is NOTWhat can ROOT do for me?But What can I do for ROOT?

    ProgrammerREPEAT over and over thesame solutions + PATIENCE forfinding bugs

    Physicistinovation, open mind, getproblems esence, etc

    BLEEDING EDGEcombination !!!

  • 7/28/2019 ROOT Introduction

    26/26

    Instead of summary...

    Where to find these slides:

    http://brahms.fizica.unibuc.ro/teaching/rootpresentation.pdf

    THANK YOU!

    and WE are waiting for you when you're ready :-)

    http://brahms.fizica.unibuc.ro/teaching/rootpresentation.pdfhttp://brahms.fizica.unibuc.ro/teaching/rootpresentation.pdf