23.05.2014 Views

Athena Developer Guide

Athena Developer Guide

Athena Developer Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Athena</strong><br />

Chapter 18 Framework packages, interfaces and libraries Version/Issue: 2.0.0<br />

Chapter 18<br />

Framework packages, interfaces and<br />

libraries<br />

18.1 Overview<br />

It is clearly important to decompose large software systems into hierarchies of smaller and more<br />

manageable entities. This decomposition can have important consequences for implementation related<br />

issues, such as compile-time and link dependencies, configuration management, etc. A package is the<br />

grouping of related components into a cohesive physical entity. A package is also the minimal unit of<br />

software release.<br />

In this chapter we describe the Gaudi package structure, and how these packages are implemented in<br />

libraries.<br />

18.2 Gaudi Package Structure<br />

The Gaudi software is decomposed into the packages shown in Figure 18.1..<br />

At the lower level we find GaudiKernel, which is the framework itself, and whose only dependency<br />

is on the GaudiPolicy package, which contains the various flags defining the CMT [6]<br />

configuration management environment needed to build the Gaudi software. At the next level are the<br />

packages containing standard framework components (GaudiSvc, GaudiDb, GaudiTools,<br />

GaudiAlg, GaudiAud), which depend on the framework and on widely available foundation<br />

libraries such as CLHEP and HTL. These external libraries are accessed via CMT interface packages<br />

which use environment variables defined in the ExternalLibs package, which should be tailored to<br />

page 157

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!