23.05.2014 Views

Athena Developer Guide

Athena Developer Guide

Athena Developer Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Chapter 2 The framework architecture Version/Issue: 2.0.0<br />

Chapter 2<br />

The framework architecture<br />

2.1 Overview<br />

In this chapter we outline some of the main features of the Gaudi architecture. A (more) complete view<br />

of the architecture, along with a discussion of the main design choices and the reasons for these choices<br />

may be found in reference [1].<br />

2.2 Why architecture?<br />

The basic “requirement” of the physicists is a set of programs for doing event simulation,<br />

reconstruction, visualisation, etc. and a set of tools which facilitate the writing of analysis programs.<br />

Additionally a physicist wants something that is easy to use and (though he or she may claim otherwise)<br />

is extremely flexible. The purpose of the Gaudi application framework is to provide software which<br />

fulfils these requirements, but which additionally addresses a larger set of requirements, including the<br />

use of some of the software online.<br />

If the software is to be easy to use it must require a limited amount of learning on the part of the user. In<br />

particular, once learned there should be no need to re-learn just because technology has moved on (you<br />

do not need to re-take your licence every time you buy a new car). Thus one of the principal design<br />

goals was to insulate users (physicist developers and physicist analysists) from irrelevant details such as<br />

what software libraries we use for data I/O, or for graphics. We have done this by developing an<br />

architecture. An architecture consists of the specification of a number of components and their<br />

interactions with each other. A component is a “block” of software which has a well specified interface<br />

and functionality. An interface is a collection of methods along with a statement of what each method<br />

actually does, i.e. its functionality.<br />

page 13

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

Saved successfully!

Ooh no, something went wrong!