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 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 Availability
3.4 Using the framework on NT with Developer Studio
3.5 Using the framework in Unix

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.7 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 Requesting additional services

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 Smart references and Smart reference vectors
6.9 Saving data to a persistent store
6.10 The SmartDataPtr/SmartDataLocator utilities

Chapter 7
LHCb Event Data Model

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

Chapter 8
Detector Description

8.1 Overview
8.2 Detector Description Database
8.3 Using the Detector Data transient store
8.4 Persistent representation

Chapter 9
Histogram facilities

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

Chapter 10
N-tuple facilities

10.1 Overview
10.2 Access to the N-tuple Service from an Algorithm.
10.3 Using the n-tuple service.

Chapter 11
Framework services

11.1 Overview
11.2 The Job Options Service
11.3 The Standard Message Service
11.4 The Particle Properties Service
11.5 Developing new services

Chapter 12
Converters

12.1 Overview
12.2 Persistency converters
12.3 Collaborators in the conversion process
12.4 The conversion process
12.5 Converter implementation - general considerations
12.6 SICB Converters
12.7 Storing Data using the ROOT I/O Engine (RIO)
12.8 The Conversion from Transient Objects to ROOT Objects

Chapter 13
Accessing SicB facilities

13.1 Overview
13.2 Reading DST tapes
13.3 Access to the Magnetic Field
13.4 Accessing the SicB detector geometry from Gaudi
13.5 Using fortran code in Gaudi

Chapter 14
Analysis utilities

14.1 Overview
14.2 LHC++
14.3 CLHEP
14.4 NAG C

Chapter 15
Visualization Facilities

15.1 Overview
15.2 Using the GaudiLab services

Chapter 16
Design considerations

16.1 Generalities
16.2 Designing within the Framework
16.3 Analysis Phase
16.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