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> Table of Contents Version/Issue: 2.0.0<br />

page 4<br />

Writing algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.2 Algorithm base class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.3 Derived algorithm classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

5.3.1 Creation (and algorithm factories) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

5.3.2 Declaring properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

5.3.3 Implementing IAlgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

5.4 Nesting algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

5.5 Algorithm sequences, branches and filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

5.5.1 Filtering example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

Chapter 6<br />

Scripting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

6.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

6.2 Python scripting service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

6.3 Python overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

6.4 How to enable Python scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36<br />

6.4.1 Using a Python script for configuration and control. . . . . . . . . . . . . . . . . . . 36<br />

6.4.2 Using a job options text file for configuration with a Python interactive shell<br />

36<br />

6.5 Prototype functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

6.6 Property manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

6.7 Synchronization between Python and <strong>Athena</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

6.8 Controlling job execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

Chapter 7<br />

Accessing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

7.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

7.2 Using the data stores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

7.3 Using data objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45<br />

7.4 Object containers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

7.5 Using object containers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48<br />

7.6 Data access checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

7.7 Defining new data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

7.8 The SmartDataPtr/SmartDataLocator utilities . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

7.8.1 Using SmartDataPtr/SmartDataLocator objects . . . . . . . . . . . . . . . . . . . . . . 51<br />

7.9 Smart references and Smart reference vectors . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

7.10 Saving data to a persistent store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

Chapter 8<br />

StoreGate - the event data access model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

8.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

8.2 The StoreGate design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55<br />

8.2.1 System Features and Entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

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

Saved successfully!

Ooh no, something went wrong!