Computing Technical Design Report
3.15 Integration of LCG Application Area Products
ATLAS is both a contributor to, and client of, products from the LCG Application Area. The major products that are used within ATLAS are:
-
SEAL;
-
POOL;
-
PI;
-
Simulation components;
-
Components and services supported by the SPI project;
-
The LCGCMT glue packages.
3.15.1 SEAL
The SEAL project [3-54] provides the software infrastructure, basic frameworks, libraries and tools that are common among the LHC experiments. The project addresses the selection, integration, development, and support of foundation and utility class libraries. These utilities cover a broad range of unrelated functionalities and it is essentially impossible to find a unique optimum provider for all of them. They should be developed or adapted as the need arises. In addition to these foundation and utility libraries, the project should develop a coherent set of basic framework services to facilitate the integration of LCG and non-LCG software to build coherent applications. SEAL contains the following major components:
-
Foundation and Utility Libraries. These include basic utility and system isolation libraries, utility classes for stream oriented I/O and support for I/O compression.
-
Math Libraries. These provide physics vector and linear algebra libraries, numerical algorithms (integration, differentiation, minimization, etc.) libraries, random-number generators and distributions.
-
Dictionary. The LCG Dictionary is an attempt to add introspection (reflection) functionality to the standard C++ language. The Reflection package provides the reflection API to the dictionary information. The ReflectionBuilder package is used to build at run-time the dictionary information in memory based on parsing of the C++ header files. A new version of the Reflection library called Reflex has been released in parallel and is being tested. This new version is closer to the ISO/IEC 14882 standard and will replace the Reflection and ReflectionBuilder libraries in the future.
-
Component Model and Plug-in Manager. This provides services for managing, querying, dynamic loading and unloading of plug-in components, and application bootstrapping (initialization), and the definition of an object lifetime strategy and support tools.
-
Framework and Services. This extends the component model by providing an infrastructure for component development and a set of concrete services.
-
Python Services. These provide Python language bindings for the standard services and utilities developed within SEAL, scripting support for applications, and Python bindings to ROOT services and utilities.
ATLAS makes heavy use of the Dictionary and Python services, and has begun incorporating aspects of the component model into its software. A migration from the existing Athena component model to the SEAL one is planned, although this has been deferred until after the reorganization of the LCG Application Area and a clarification of the SEAL/ROOT merger. Similarly, a migration towards more extensive use of the mathematical libraries has been deferred pending a similar evaluation.
3.15.2 POOL
The POOL project [3-55] has been created to implement a common persistency framework for the LHC Computing Grid (LCG) application area. POOL can store multi-petabyte experiment data and metadata in a distributed and Grid-enabled way. The project follows a hybrid approach combining C++ Object streaming technology, such as ROOT I/O [3-56], for the bulk data with a transaction-safe relational database (RDBMS) store, such as MySQL [3-57]. POOL uses a component approach based on the SEAL component model providing navigational access to distributed data without exposing details of the particular storage technology.
The use of POOL within the ATLAS software environment is described in more detail in Chapter 4, "Databases and Data Management".
3.15.3 PI
The Physicist Interface (PI) project [3-59] encompasses the interfaces and tools by which physicists will directly use the software. The project provides:
-
Analysis Services. These provide extensions to the AIDA [3-60] analysis APIs, the implementation of some of them using ROOT, and an extended AIDA API to SEAL and POOL services.
-
Analysis Environment. This provides a framework for interactive applications together with a set of core services based on POOL and SEAL.
-
Visualization support.
ATLAS uses the ROOT implementation of the AIDA histogram API provided by the PI project.
3.15.4 Simulation Components
The simulation project [3-61] of the LCG Applications Area encompasses common work among the LHC experiments on the development of a simulation framework and infrastructure for physics validation studies, CERN and LHC participation in Monte Carlo generator services, Geant4, Fluka and Garfield. Its work is guided by the reports of the simulation, the Monte Carlo generators and the detector description RTAGs. The relevant sub-projects are:
-
Simulation Framework. The general task of this sub-project is to provide flexible infrastructure and tools for the development, validation and usage of Monte Carlo simulation applications.
-
Geant4. This sub-project encompasses the effort undertaken in CERN PH/SFT group in maintaining, supporting and developing further the Geant4 simulation toolkit. The work plans prepared are driven by the requirements for support of LHC production usage, maintenance of a number of toolkit components, collection of new experiment requirements and creation of new functionality.
The work is carried out in close collaboration with Geant4 colleagues in many institutions around the world, working to address the requirements of these and other user communities and contributing to the development, support and maintenance of the complementary set of toolkit components. Together, in the Geant4 Collaboration, this sub-project provides the releases of the Geant4 toolkit for all users, including users in the LHC experiments, other HEP experiments and facilities, and for applications in fields as diverse as medicine and space.
-
Physics Validation. The work of this project includes:
-
Understanding the impact on LHC physics of uncertainties or inadequacies of the simulation on the quality of the physics results;
-
Providing feedback based on the test-beam activities of the LHC experiments;
-
Performing studies based on the actual detector geometries;
-
Performing electromagnetic studies and create optimized physics lists;
-
For hadronic studies looking at the impact of tracking, calorimeters and backgrounds;
-
Evaluating results from outside of the LHC;
-
Validating the performance and functionality of the simulation environment.
ATLAS has contributed significantly to the physics validation project as a result of feedback from a variety of test beams. This feedback continues since the analysis of the combined test-beam results is still in progress.
-
Generator Services. The mandate of this sub-project is to collaborate with Monte Carlo (MC) generator authors and with LHC experiments in order to prepare validated LCG-compliant code for both the theoretical and experimental communities at the LHC, sharing the user-support duties, providing assistance for the development of the new object-oriented generators, and guaranteeing the maintenance of the older packages on the LCG-supported platforms. Four different sub-projects have been defined:
-
Generator services library and new Object-Oriented MC generators;
-
Storage, event interfaces and particle services;
-
Shared generator-level event files: production and MC database;
-
Validation and tuning.
Wherever possible ATLAS uses versions of event generators that are supported and validated by this SEAL project. ATLAS performs significant validation and the results are propagated back so as to result in improvements to the generators and configuration information.
3.15.5 SPI Components
ATLAS uses the following SPI [3-62] components:
-
Savannah. This is a project support portal, but which is used within ATLAS primarily as a bug-tracking system.
-
Testing tools.
3.15.6 LCGCMT
The LCGCMT glue packages provide a mechanism whereby consistency across multiple external software package versions can be achieved. LCGCMT is used within ATLAS to ensure that the ATLAS offline uses a self-consistent set of external packages with the LCG Application Area software.
4 July 2005 - WebMaster Copyright © CERN 2005