Upload
act001ro
View
215
Download
0
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/ROOT7/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-examples7/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/detectors7/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