Download presentation
Presentation is loading. Please wait.
1
ROOT Support and Developments at FNAL
ROOT For RUN II ROOT Support and Developments at FNAL Philippe Canal 7/10/2019
2
Philippe Canal, pcanal@fnal.gov
ROOT for Run II Selecting a Physics Analysis Tool Concerns Addressing the Concerns 7/10/2019 Philippe Canal,
3
Philippe Canal, pcanal@fnal.gov
Requirements Functional requirements Scripting language Run on several platforms Modular architecture Support requirements Portability Ease of maintenance Close collaboration Committees to understand requirements and support needs. Composition of the committees: Blend of physicist and computer professionals. 7/10/2019 Philippe Canal,
4
Philippe Canal, pcanal@fnal.gov
Candidates Histoscope No scripting language LHC++ Scheduled for use in 2005 – too late IDL Limitation on the size of the data set Root Closest to meeting the requirements Some requirements were only partially met - risky 7/10/2019 Philippe Canal,
5
Philippe Canal, pcanal@fnal.gov
A Visit to CERN Discuss issues (Some resolved on the spot) ROOT team is enthusiastic to collaborate Plans to hold a ROOT workshop at FNAL for US HENP experiments considering ROOT 7/10/2019 Philippe Canal,
6
Requests From The Workshop
Improved robustness STL support Improved documentation Persistence for CLHEP Multi-threading Interface to SQL 7/10/2019 Philippe Canal,
7
Philippe Canal, pcanal@fnal.gov
Improved Robustness External preprocessor FNAL ROOT team modified CINT and ROOT to implement this. Modularization of ROOT Implemented by ROOT team in v2_23 Automatic handling of STL Added by the ROOT team Available via the script compiler 7/10/2019 Philippe Canal,
8
Philippe Canal, pcanal@fnal.gov
Improved Robustness User support, deployment, and testing UPS/UPD Test on all released platforms Local support Central contact to voice user needs and during feature implementation 7/10/2019 Philippe Canal,
9
Philippe Canal, pcanal@fnal.gov
Script Compiler Advantages Five Times Faster than Interpreter Full C++ capability Syntax checking Can be used to add a class to a ROOT session. Disadvantages Can only load a C++ library once Compile time The Script Compiler gives the ROOT user the choice to compile a ROOT macro rather than using CINT and interpreting it. The Script Compiler compiles a ROOT macro and produces a shared library. The compiler and compiler switches used by default are the same as those used to build the current root executable (the one from which the script compiler is invoked). These default values can be easily changed. We will show you two demonstrations. In the first demonstration, we will show you how to invoke the script compile, and illustrate the difference in execution speed between the interpreted run and the compiled run. In the second demonstration, I will show you how you can add a class to root session by using the script compiler. cd script root –l gROOT->Time() .L ScriptCompilerDemo.C++ .files note the shared library Demo() note the time it takes .q root -l .L ScriptCompilerDemo.C Note the time it takes 7/10/2019 Philippe Canal,
10
Adding a Class with The Script Compiler
Step 1: Write the class definition in a separate file. Step 2: Add the ClassDef and ClassImp macro calls to the class definition. Step 3: Load the class with the script compiler. root[0] .L ABCClass.C++ root[1] ABC abc root[2] abc.a = 3.2; root[3] abc.b = 4.0; root[4] abc.Dump(); Step 1: Open the /v1/home/pcanal/root/script/ABCClass.C file. The class ABC is defined. Note the ClassDef and ClassImp. #include "TObject.h" // define the ABC class and make it inherit from // TObject so that we can write ABC to a root file class ABC : public TObject { public: Float_t a,b,c,p; ABC():a(0),b(0),c(0),p(0){}; // Define the class for the cint dictionary ClassDef(ABC,1) }; // Call the ClassImp macro to give the ABC class RTTI and // full I/O capabilities. #if !defined(__CINT__) ClassImp(ABC); #endif Then execute the following commands: .L ABCClass.C++ .files note the shared library ABCClass ABC abc abc.a = 3.2; abc.b = 4.0; abc.Dump(); 7/10/2019 Philippe Canal,
11
Improved Documentation
For the novice user Root 101 hands-on class with exercises Root files and GUI overview Tree viewer How to find more information Macros “Getting started with root” document 7/10/2019 Philippe Canal,
12
Improved Documentation
For the intermediate user Root 102 hands-on class with exercises Functions and fitting Building root trees Putting trees to work More about CINT Script complier C++ basics for root users document Extras Collections slide presentation XClasses implementation in ROOT 7/10/2019 Philippe Canal,
13
Philippe Canal, pcanal@fnal.gov
And … Interface to CLHEP PhysicsVector More to come Multi-threading Implemented by GSI Interface to SQL Implemented by the CERN ROOT team 7/10/2019 Philippe Canal,
14
Other FNAL/ROOT Projects
Automatic documentation Inline functions Point and click inheritance diagram Self describing object format Reading ROOT files without having the source file for the saved object. 7/10/2019 Philippe Canal,
15
Philippe Canal, pcanal@fnal.gov
Conclusion Confidence in our choice of ROOT Successfully addressed concerns Success factors Unprecedented support by ROOT team Make up of skills and personalities of the FNAL ROOT team Identification of specific issues to work on 7/10/2019 Philippe Canal,
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.