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 15 Converters Version/Issue: 2.0.0<br />

Chapter 15<br />

Converters<br />

15.1 Overview<br />

Consider a small piece of detector; a silicon wafer for example. This “object” will appear in many<br />

contexts: it may be drawn in an event display, it may be traversed by particles in a Geant4 simulation,<br />

its position and orientation may be stored in a database, the layout of its strips may be queried in an<br />

analysis program, etc. All of these uses or views of the silicon wafer will require code.<br />

One of the key issues in the design of the framework was how to encompass the need for these different<br />

views within <strong>Athena</strong>. In this chapter we outline the design adopted for the framework and look at how<br />

the conversion process works. This is followed by sections which deal with the technicalities of writing<br />

converters for reading from and writing to ROOT files.<br />

15.2 Persistency converters<br />

<strong>Athena</strong> gives the possibility to read event data from, and to write data back to, ROOT files. The use of<br />

ODBC compliant databases is also possible, though this is not yet part of the <strong>Athena</strong> release. Other<br />

persistency technologies have been implemented for LHCb, in particular the reading of data from<br />

LHCb DSTs based on ZEBRA.<br />

Figure 15.1 is a schematic illustrating how converters fit into the transient-persistent translation of<br />

event data. We will not discuss in detail how the transient data store (e.g. the event data service) or the<br />

persistency service work, but simply look at the flow of data in order to understand how converters are<br />

used.<br />

One of the issues considered when designing the <strong>Athena</strong> framework was the capability for users to<br />

“create their own data types and save objects of those types along with references to already existing<br />

page 137

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

Saved successfully!

Ooh no, something went wrong!