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 18 Framework packages, interfaces and libraries Version/Issue: 2.0.0<br />

packA<br />

$PACKAROOT<br />

Version<br />

number<br />

v1 v1r1 v2<br />

cmt src packA doc i386- Linuxdbx<br />

linux22<br />

. . .<br />

Win32<br />

Debug<br />

internal include<br />

files and source<br />

code. Avoid many<br />

levels!<br />

external include files<br />

#include “packA/xxx.h”<br />

Avoid many levels!<br />

binaries<br />

Figure 18.1 Layout of Gaudi software packages<br />

18.2.2 Packaging <strong>Guide</strong>lines<br />

Packaging is an important architectural issue for the Gaudi framework, but also for the experiment<br />

specific software packages based on Gaudi. Typically, experiment packages consist of:<br />

• Specific event model<br />

• Specific detector description<br />

• Sets of algorithms (digitisation, reconstruction, etc.)<br />

The packaging should be such as to minimise the dependencies between packages, and must absolutely<br />

avoid cyclic dependencies. The granularity should not be too small or too big. Care should be taken to<br />

identify the external interfaces of packages: if the same interfaces are shared by many packages, they<br />

should be promoted to a more basic package that the others would then depend on. It is a good idea to<br />

discuss your packaging with the librarian and/or architect.<br />

page 159

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

Saved successfully!

Ooh no, something went wrong!