1 / 15

Libraries for HEP Computing (LHC++)

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.

Download Presentation

Libraries for HEP Computing (LHC++)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Libraries for HEP Computing (LHC++) Andreas Pfeiffer CERN IT andreas.pfeiffer@cern.ch¡ Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch

  2. Overview • Introduction • history • Present status • libraries • tools • Summary and Outlook Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. LHC++ packages and dependencies Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch

  9. 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

  10. 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

  11. 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

  12. Categories and dependencies Andreas Pfeiffer, CERN IT, andreas.pfeiffer@cern.ch

  13. 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

  14. 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

  15. 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

More Related