GAUDI User Guide

Table of Contents

Document Control Sheet
Document Status Sheet

Chapter 1
Introduction

1.1 Purpose of the document
1.2 Conventions
1.3 Reporting problems
1.4 Editor's note

Chapter 2
The framework architecture

2.1 Overview
2.2 Why architecture?
2.3 Data versus code
2.4 Main components
2.5 Package structure

Chapter 3
Release notes and software installation

3.1 Release History
3.2 Current Functionality
3.3 Changes in the new release
3.4 Availability
3.5 Using the framework on NT with Developer Studio
3.6 Using the framework in Unix
3.7 Working with development releases

Chapter 4
Getting started

4.1 Overview
4.2 Creating a job
4.3 The main program
4.4 Configuring the job
4.5 Algorithms
4.6 Job execution
4.8 Other examples distributed with Gaudi

Chapter 5
Writing algorithms

5.1 Overview
5.2 Algorithm base class
5.3 Derived algorithm classes
5.4 Nesting algorithms
5.5 Algorithm sequences, branches and filters

Chapter 6
Accessing data

6.1 Overview
6.2 Using the data stores
6.3 Using data objects
6.4 Object containers
6.5 Using object containers
6.6 Data access checklist
6.7 Defining new data types
6.8 The SmartDataPtr/SmartDataLocator utilities
6.9 Smart references and Smart reference vectors
6.10 Saving data to a persistent store

Chapter 7
LHCb Event Data Model

7.1 Glossary
7.2 Top level event data structures
7.3 Monte Carlo event
7.4 Raw event
7.5 Reconstructed event
7.6 Analysis event
7.7 Utilities

Chapter 8
Detector Description

8.1 Overview
8.2 Detector Description Database
8.3 Using the Detector Data transient store
8.4 General features of the geometry tree
8.5 Persistent representation

Chapter 9
Histogram facilities

9.1 Overview
9.2 The Histogram service.
9.3 Using histograms and the histogram service
9.4 Persistent storage of histograms.

Chapter 10
N-tuple and Event Collection facilities

10.1 Overview
10.2 N-tuples and the N-tuple Service
10.3 Event Collections
10.4 Interactive Analysis using N-tuples
10.5 Known Problems

Chapter 11
Framework services

11.1 Overview
11.2 Requesting and accessing services
11.3 The Job Options Service
11.4 The Standard Message Service
11.5 The Particle Properties Service
11.6 The Chrono & Stat service
11.7 The Auditor Service
11.8 The Random Numbers Service
11.9 The Incident Service
11.10 Developing new services

Chapter 12
Tools and ToolSvc

12.1 Overview
12.2 Tools and Services
12.3 The ToolSvc
12.4 GaudiTools

Chapter 13
Converters

13.1 Overview
13.2 Persistency converters
13.3 Collaborators in the conversion process
13.4 The conversion process
13.5 Converter implementation - general considerations
13.6 Storing Data using the ROOT I/O Engine
13.7 The Conversion from Transient Objects to ROOT Objects
13.8 Storing Data using other I/O Engines

Chapter 14
Accessing SICB facilities

14.1 Overview
14.2 Reading tapes
14.3 Populating the GAUDI transient data store: SICB Converters
14.4 Access to the Magnetic Field
14.5 Accessing the SICB detector geometry from Gaudi
14.6 Using FORTRAN code in Gaudi
14.7 Handling pile up in Gaudi.

Chapter 15
Analysis utilities

15.1 Overview
15.2 CLHEP
15.3 HTL
15.4 NAG C
15.5 ROOT

Chapter 16
Visualization Facilities

16.1 Overview
16.2 The GaudiLab service

Chapter 17
Design considerations

17.1 Generalities
17.2 Designing within the Framework
17.3 Analysis Phase
17.4 Design Phase

Appendix A
References

Appendix B
Options for standard components

Appendix C
Job Options Grammar and Error Codes

C.1 The EBNF grammar of the Job Options files
C.2 Job Options Error Codes and Error Messages

Appendix D
LHCb Event Data Model