150 likes | 167 Views
An overview of LHC++ libraries and tools for physics data analysis in an OO-environment, including memory management, persistency, mathematical library, foundation classes, random number generators, histogramming, fitting, and simulation.
E N D
Libraries for HEP Computing (LHC++) Andreas Pfeiffer CERN IT andreas.pfeiffer@cern.ch¡ Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Overview • Introduction • history • Present status • libraries • tools • Summary and Outlook Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
LHC++ • Aim: physics data analysis in OO-environment • Needs libraries and tools • functionally as complete as possible (full replacement of CERNLIB) • making use of OO tools and methodologies • started in late 1995 Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
LHC++: what it is (I) • Modular replacement of current CERNLIB for use in HEP experiments • memory management (C++) • persistency (“I/O”) • mathematical library • foundation classes • random number generators • histogramming • fitting • simulation Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
LHC++: what it is (II) • Based on OO methodology • eases long term maintenance and extensibility • quick way to (basic) functionality • flexible wrt. changing user requirements • Initial choice: C++ • performance close to C/FORTRAN • Java for the future ? • In close collaboration with LHC (and other) experiments • “use standards as far as possible” Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Present configuration • Object persistency • from RD45 collaboration (Objectivity/DB) • Foundation classes • HEP specific foundation classes (CLHEP) • Random number generators (CLHEP) • Mathematical library from NAG (NAG_C) • covers broad range of functionality • extensions required by CERN will be added in next release (Mark 6) • quality assurance Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Present configuration (cont.) • Simulation: GEANT-4 • worldwide collaboration • complete OO design • Histogramming: HTL • Fitting: Gemini, HepFitting packages • interface to any minimizer (at present: NAG, Minuit) • Event generators • Lund people started Pythia-7 (C++) • StdHep++ in process to become part of CLHEP Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
LHC++ packages and dependencies Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
New Data Analysis Tool • First iteration on physics data anlysis tool (based on IRIS Explorer) • data driven approach • GUI based, not command line driven • majority of users didn’t like it • Request made in September 1999 to create new physics analysis tool • new requirements defined together with experiments • Try to maximise re-use of existing components Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
OO approach to create tool • Start with OO analysis • collection of user requirements • Study critical path(s) • user interface, distributed processing, ... • OO design phase • define categories and classes, find patterns • Create prototype • get feedback from users • Iterate Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
User requirements for a physics analysis tool • Easy to use for “end user” • "like PAW” • Foresee customization/integration wrt. existing frameworks of experiments • e.g., use persistency/messaging/... from experiment • needs to be compatible with experiment’s framework • Plan for extensions • Maximize flexibility/interoperability • "plug-and-play-like" use of components from other frameworks (shared libs using the same interfaces) Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Categories and dependencies Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Designing the Abstract Interfaces • AIDA project started by HepVis’99 workgroup: Abstract Interfaces for Data Analysis • http://wwwinfo.cern.ch/asd/lhc++/AIDA/index.html • In close collaboration with users and developers from experiments and providers of other packages • Iguana, HippoDraw, JAS, OpenScientist • Starting with Histogram classes • presently in final iteration • Next items are Ntuples, Vectors and Fitting Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
User interface design • Create abstract interface for UserIF • decouple functionality from presentation • makes UI independent of implementation • using SWIG for flexibility wrt. scripting language • Starting with Python based UserIF • OO scripting language • Other implementations will come • Also GUI based UserIF(s) easy by design • "Controller" category defines interface to UserIF Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch
Summary and Outlook • Libraries are ready • http://wwwinfo.cern.ch/asd/lhc++/index.html • Data analysis tool • first prototype ready • http://wwwinfo.cern.ch/asd/lhc++/Lizard/index.html • Work on defining interfaces • AIDA project (from HepVis’99 workgroup) • http://wwwinfo.cern.ch/asd/lhc++/AIDA/index.html Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch