Title: Software%20Projects%20in%20the%20IT/API%20Group%20API%20=%20Applications%20for%20Physics%20and%20Infrastructure
1Software Projects in the IT/API GroupAPI
Applications for Physics and Infrastructure
- Software Panel of the LHC Computing Review
- Jürgen Knobloch
Slides available on http//nicewww.cern.ch/knobl
och/slides/hhapi/index.htm
2IT Division - Structure from January 2000
Division Leaders Office /
Divisional Officers
DL, DDL, TLO, DSO, DTO, DAO
User Support and Training
US
nning / Administrative Services
Project Support Team
Technical Services
TS
Divisional Pla
Communication Services
CS
User and Management Committees
CAEC, DTF, ELEC, FOCUS, LEPC, LHCC, MB, RB, SPSC
3IT Division - Structure from January 2000
Division Leaders Office /
Divisional Officers
DL, DDL, TLO, DSO, DTO, DAO
User Support and Training
US
nning / Administrative Services
Project Support Team
Technical Services
TS
Divisional Pla
Communication Services
CS
User and Management Committees
CAEC, DTF, ELEC, FOCUS, LEPC, LHCC, MB, RB, SPSC
4API Group
Group Organization
AIDA/Lizard/HTL/n-Tuple Fitting
GEANT 4
Commercial Components
CERNLIB-PAW
GEANT 3
CLHEP
WIRED
Software process support Languages, Software
Development Tools, Documentation
(LIGHT) Testing, Distribution, Installation,
License Management
Contact with Support of other projects JAS,
OpenScientist, EDMS, Pythia 7, CORAL ...
5What is the role of a CERN-IT software group?
- Experiments have recognized the need of common
solutions - Historic example CERNLIB
- Cannot do all the work in IT
- Example GEANT 4
- 3 staff in API, 2 FTE on average as visitors in
API - 60 people in the experiments and other institutes
- Act as catalyst
- Work with experiments on specific solutions
- Small components - short time to market
- Productize for other experiments
- Share the work with other labs and institutes
6Products
OO toolkit for simulation
Libraries for HEP Computing Was called LHC C
replacement of CERNLIB
Mathematical libraries, graphics
Event display in JAVA
(Mostly) FORTRAN software Limited maintenance
next and final release of CERNLIB ever 1Q/2002
7Geant4 object oriented toolkit for simulation,
- Slides prepared by
- John Apostolakis, CERN/IT/API
8Overview
- The Geant4 collaboration
- goals (transparent physics)
- software engineering approach (code in C)
- Structure of the toolkit
- Hadronic EM physics results models
- Geometry, visualization
- Collaboration milestones in year 2000
9Geant4 Collaboration
- Collaboration based on MoU, consists of
- Laboratories CERN, SLAC, KEK, TRIUMF, Jefferson,
- Experiments Atlas, CMS, LHCb, BaBar,
- Institutes, Groups IN2P3, IGD, TERA, Frankfurt
- for the production service, maintenance and
development of Geant4 - About 80 collaborators worldwide
- physicists and computer scientists
- G4 was developed by worldwide RD44 project
- RD44 ended with first production release in
December 98
10Class Category Diagram
11In Context Theoretical Hadronic Processes
- Theoretical models, from low E to high E
- Pre-Compound Model Evaporation Phase
- Cascades, CHIPS and QMD models
- String models
- Interface to event generator(s)
12Pre-Compound Model Evaporation Phase
- Traditional pre-equilibrium model
- as good as existing ones
- Evaporation
- Weisskopf-Ewing model
- Fermi breakup model
- Model for fission
- Multifragmentation model (Bondarf)
- Photon Evaporation
- only missing Internal Conversion
- (suppressed by more than 104)
- Future 2nd Pre-Compound, from HETC re-eng. (in
2000)
13Other Hadronics
- Data driven and parameterized approaches
- Neutrons
- from numerous evaluated data libraries
- down to thermal energies, up to 20 MeV
- Isotope production (see earlier slide)
- Induced Fission Capture (H.Fesefeld)
- used above 20 MeV
- Parameterized models
- Gheisha fixes
- New parameterizations
14High Energy K,pi on Al, Au
15Photon evaporation
MeV
MeV
Photon energy, discrete levels
16 Induced fission U235, 10 MeV neutrons
17Isotope Production
- Isotopes produced by neutrons on Lead 208
- Small dots evaluated data
- Circles with error bars Geant
- latest model
- is in currrent release Geant4 1.0
18Electro-Magnetic physics
- Gammas
- Gamma-conversion, Compton scattering,
Photo-electric effect - Leptons(e, mu) charged particles(hadrons,
ions) - Ionisation, Bremstrahlung, Energy loss, Multiple
scattering, transition radiation, Synchrotron
radiation, PI model energy loss - Photons
- Cerenkov, Rayleigh, Reflection, Refraction,
Absorption, Scintillation - High energy muons and lepton-hadron interactions
- Implementation of EM physics to 250 eV
- using ICRU and Ziegler parameterisations for
hadrons, ions - using evaluated data libraries (for e-, gammas)
19Shower profile
- 1 GeV electron
- in H2O
- G4
- Data
- G3
- Very good agreement seen with the data
20Sampling calorimeter
- Sampling calorimeter
- visible energy
- tests
- all EM processes for e-, e and photon
- Data from Sicapo Col. NIM A332 (85-90) 1993
21Multiple scattering
- Example of comparisons
- 6.56 MeV proton
- on 93 microns Si
22Changing cuts
- Results very stable with variation of cuts
- even track length
- Shower profiles for different cuts stable
- between 10mm and 50 microns
23Electromagnetic processes
- All processes at least at level of Geant-3
- New process Transition radiation
- Multiple Scattering new model
- no path length restriction
- added lateral displacement
- measured effect on result
- Energy Loss two types of approaches
- two approaches differential and integral
- several alternatives PAI model (thin), Super
E-loss - Integration of cross section over Energy
- hadronic resonances can be seen (future)
24Low energy EM processes
- Photons, electrons down to 250 eV
- Xsec from evaluations
- with thanks to J. Stepanek
- CERN/ ESA
- A. Forti
- M.G. Pia
- P. Nieminen
25Software Engineering
- Software Engineering in HEP
- The software process distributed development
- ESA PSS-05 URD v.06
- Object-Oriented methodology Boochunified
- OOAD Rational Rose CASE
- QA Insure, Logiscope, code inspection, coding
guidelines, scripts - Testing at class-level (ex 375 test-cases for
processes) - System integration testing
26Geant4 geometries
- EM Calorimeter, BaBar (SLAC)
- Borexino Detector for Low Energy Solar Neutrinos
- URL http//almime.mi.infn.it/
27CMS Geometry in GEANT4April 1999
- Beam Pipe
- Tracker
- Si Pixel Detectors
- Barrel Si Pixel
- Forward Si Pixel
- Si Strip Detectors
- Barrel Si Strip
- MSGC
- Barrel MSGC
- Calorimeters
- Electromagnetic Calorimeter
- Barrel ECAL
- Hadron Calorimeter
- Barrel HCAL
- Muon System
- Barrel Muon
28Prototype Atlas Geometry
29Milestones for Geant4 in 2000
- Comparison projects with experiments
- agree mini-projects, work publish together
- Create a training kit
- and continually improve documentation, examples
- Re-examine improve the software process
- Other goals
- new development
- publishing results
30Milestone 1 comparison projects
- Select key detector setups
- from experimental groups (eg test beams)
- Perform in-depth simulations
- with combined resources
- Analyse results and publish together
- Set of detectors should be complementary
- short projects ( 6 months), few at a time (3)
- e.g. Calorimeters - Trackers - Radiation studies
31Other Proposed Milestones
- Create a training kit
- to aid in teaching the capabilities of G4 toolkit
- bringing together all GEANT 4 training experience
- Must address needs of user communities
- type, length of training , proposed audiences
-
- Software Process Improvement
- Identify areas needing new analysis/design cycle
- Create team for QA optimisation monitoring
- Fully integrate testing QA in development
cycle.
32Libraries for HEP Computing (LHC)
Name is being changed!
- Slides extracted from CHEP2000 talk by
- Andreas Pfeiffer
- CERN/IT/API
- andreas.pfeiffer_at_cern.ch
33Strategy for AIDA, Lizard et al. (was LHC)
- Based on components
- Defining abstract interfaces
- Phasing out of Explorer
- Reuse of components developed previously
- C is still required
- Two purposes
- Out of the box analysis
- Toolset - Library
- Mathematical functions provided by external source
34LHC
- 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
35LHC 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
36LHC 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
37Present 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
38Present configuration (cont.)
- 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
39LHC packages and dependencies
Being replaced
40New 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 didnt 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
41OO 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
42User 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 experiments
framework - Plan for extensions
- Maximize flexibility/interoperability
- "plug-and-play-like" use of components from other
frameworks (shared libs using the same interfaces)
43Categories and dependencies
44Designing the Abstract Interfaces
- AIDA project started by HepVis99 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
45User 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 user interfaces easy by design
- "Controller" category defines interface to user
interface
46Status
- 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 HepVis99 workgroup)
- http//wwwinfo.cern.ch/asd/lhc/AIDA/index.html
47Plans
- AIDA
- Continue abstract interface definitions together
with users and other projects (JAS,
OpenScientist,) - Lizard
- Use AIDA interfaces where available
- First release in October 2000 (LINUX only)
- Histogramming, Ntuples, Vectors, Persistency
- Functions, plotting, fitting
- Scripting, GUI
- Release on LINUX first
- Next release in April 2001
48Lizard - October 2000 (1)
- Histograms
- create, destroy, manipulate, store/retrieve from
DB, plotting - Ntuples
- retrieve from DB, scan/project according to
'full' C cuts - Vectors
- retrieve/store from ASCII file, creation from
histogram, plotting - Functions
- definition of arbitrary functions, plotting
- Fitter chisquare/ML fitting of
vectors/histograms with simple models (Gaussian,
Exponential, Polynomial and linear combinations).
49Lizard - October 2000 (2)
- Plotter
- plotting on several zones, overlaying plots,
colors, titles/labels - 1D representations (histo,line,errors,markers)
- 2D representations (Box, Contour)
- Postscript
- Locate feature.
- Controller PAW like interface
- Analyzer
- dynamic compiling and loading of experiment
specific code,creation of histograms which can
then be accessed from Lizard
50Lizard - April 2001
- Ntuples creation/storing in DB
- Fitter
- fitting with user defined functions,
store/retrieve fit context from DB. - Plotter
- more graphics representations, more powerful
locate feature. Visual editor. - Lizard available on Linux, Solaris (and NT?).
- Another script interface (Tcl, Perl, CINT?)
- AIDA interfaces used where available.
51- WIRED
- World-Wide Web Interactive Remote Event Display
- Slides extracted from CHEP2000 talk by
- Mark Dönszelmann, IT/API, CERN
52Features
- Framework for building Event Displays
- 10 of code is experiment specific
- Client Server Architecture
- Client can be used as Application or Applet
(browser mode) - Written entirely in Java
- Client in Java, Server can be in a different
language - Access to data
- reads files or connects to Java, FORTRAN, C and
C - Graphics Engine to do HEP specific projections
- 3D as well as non-linear (fish-eye) projections
- ATLAS, BaBar, CHORUS, DELPHI and LHCb
- Development infrastructure available for
collaboration
53WIRED as Application (Delphi)
54WIRED as Applet in Netscape (BaBar)
55GUI (Views and Controls)
MenuBar
ToolBar
ViewTop
ControlTop
Console
56Infobus to connect Views to Controls
Comm. Status
Event Selector
Event Info
Command
Info Bus
Views
Parts Select
Info Bus
57Infrastructure for development
- Unix and NT support for development
- AFS to access repository --gt migrate to CVS
server - CVS repository and CVSWeb
- GNUMake
- Nightly build and test on different platforms
- JIndent for coding convention
- JInstall Toolkit to create distribution
58WIRED - Summary
- Now
- Graphics Engine, including picking, reasonably
complete - Printing in PostScript
- Easy event selection
- Access to Data in XML, RMI and CORBA
- Integration - Coupling to JAS
- Near Future
- Further Infobus integration
- Additional Controls
- Addition of the scripting engine
- Configuration saving and restoring (in XML)
- HepRep implementation
- Access to C objects directly (without CORBA)
59Software Development Tools (SDT)
- Providing expertise, making tools available at
the server at CERN. - Tools in production
- Analysis and Design
- Rational Rose and StP - OMT/Booch/UML analysis
and design tools with code generation - Programming and Debugging
- SNiFF Integrated development environment for
C, C, Java, Fortran and CORBA IDL - Graphical User Interface Builder
- X-Designer Interactive X-platform GUI builder
with OSF/Motif toolkit widgets, C, JAVA and
Windows codegeneration.
60SDT (2)
- Quality, Metrics and Testing
- Logiscope Tool Kit Source code analyser and test
coverage for C/C/Fortran. - Look! C dynamic visualization system.
- Insure Comprehensive tool for error detection
in C/C programs - Documentation
- LIGHT LIfecycle Global Hypertext
- FrameMaker Complete and integrated publishing
tool. - IXgen Indexing and marker management tool for
FrameMaker. - SoDA Software Documentation Automation.
- VisualThought Multipurpose drawing, diagramming
and flowcharting tool. - SDLT (API product) Software Documentation
Layout Templates, for FrameMaker. - User Guide Templates (API product) For
FrameMaker.
61SDT Statistics
Web accesses
Licenses served
62Conclusions
- Geant 4
- Comparisons with data very promising - continued
- Training program being developed
- Software process monitoring, improvements
- Analysis tools and libraries
- C components reused in adapted environment
- IRIS-Explorer will be replaced
- Role of Java increasing
- Java - C co-existence to be understood
- Software Development Tools
- Ensuring/enabling software quality
- API - few dedicated people ready to help the
experiments!