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> Chapter 2 The framework architecture Version/Issue: 2.0.0<br />

ISvcLocator<br />

ApplicationManager<br />

EventDataService<br />

IDataProviderSvc<br />

IAlgorithm<br />

IProperty<br />

DetectorDataService<br />

HistogramService<br />

IDataProviderSvc<br />

IHistogramSvc<br />

ConcreteAlgorithm<br />

MessageService<br />

IMessageSvc<br />

ObjectA<br />

ObjectB<br />

ParticlePropertySvc<br />

IParticlePropertySvc<br />

Figure 2.1 The main components of the framework as seen by an algorithm object.<br />

Each of these services is provided by a component and the use of these components is via an interface.<br />

The interface used by algorithm objects is shown in the figure, e.g. for both the event data and detector<br />

data stores it is the IDataProviderSvc interface. In general a component implements more than<br />

one interface. For example the event data store implements another interface: IDataManager which<br />

is used by the application manager to clear the store before a new event is read in.<br />

An algorithm’s access to data, whether the data is coming from or going to a persistent store or whether<br />

it is coming from or going to another algorithm is always via one of the data store components. The<br />

IDataProviderSvc interface allows algorithms to access data in the store and to add new data to<br />

the store. It is discussed further in Chapter 7 where we consider the data store components in more<br />

detail.<br />

page 16<br />

The histogram service is another type of data store intended for the storage of histograms and other<br />

“statistical” objects, i.e. data objects with a lifetime of longer than a single event. Access is via the<br />

IHistogramSvc which is an extension to the IDataProviderSvc interface, and is discussed in<br />

Chapter 11. The n-tuple service is similar, with access via the INtupleSvc extension to the<br />

IDataProviderSvc interface, as discussed in Chapter 12.

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

Saved successfully!

Ooh no, something went wrong!