# Presentation: 362670

## Athena/POOL integration

- David Adams
- BNL
- May 14, 2003

- ATLAS Software Workshop
- Database Session

## Contents

- Cast
- Goal
- Design
- Plan
- Status
- Issues
- Longer term issues
- Schedule
- Conclusions

- Event Data History           David Adams   BNL

- December 2001

## Cast

- Many people contributing:
- Valeri Fine doing most of the implementation
- Alex Undrus providing special ATLAS builds
- David Adams, Victor Perevotzchikov, Hong Ma, Torre Wenaus helping with design
- Christian Arnault and RD Schaffer providing SEAL integration and CMT patterns
- Population LCG dictionary
- Automatic converter generation

- Event Data History           David Adams   BNL

- December 2001

## Goal

- Integrated Athena/POOL will enable:
- Writing event data from StoreGate to POOL
- Reading event data from POOL into StoreGate
- User interface similar to that for Oby and AthenaRoot
- Event data organized into ADB EventHeader
- Access via POOL Collection<EventHeader>
- Type definitions in SEAL dictionary
- POOL conversions based on this dictionary

- Event Data History           David Adams   BNL

- December 2001

## Design

- See _[http://www.usatlas.bnl.gov/~dladams/poolint/](http://www.usatlas.bnl.gov/~dladams/poolint/)__ and talk for last SW workshop_

- Identify systems and their dependencies
- Color coded
- Sequence diagrams (not shown here)
- Class diagram illustrates dependencies between components

- Event Data History           David Adams   BNL

- December 2001

## Slide 6

- Event Data History           David Adams   BNL

- December 2001

## Plan

- Development has three phases
- Write and read simple event data
- Full dictionary
- Automatic population in ATLAS
- Support complicated types
- Automatic conversion
- Support references between data objects

- Merged in 6.1 and 6.2

- Event Data History           David Adams   BNL

- December 2001

## Status

- Release 6.1.0
- Pool integration libraries build successfully
- Athena can be run with simple writing and reading job options
- Writing fails because of problems with dictionary
- Latest 6.2.0 nightly
- same???

- Event Data History           David Adams   BNL

- December 2001

## Issues

- LCG dictionary population
- CMT lcgdict pattern builds dictionary
- But definitions are not found at runtime
- Given class name, dictionary returns null
- Need SealSvc?
- Automatic converter generation
- Likely need to add another pattern
- E.g. lcgconv

- Event Data History           David Adams   BNL

- December 2001

## Issues (cont)

- Xerces 2.1 required for POOL
- ATLAS DetectorDescription using 1.7
- DD will switch (or drop Xerces) soon
- For 6.2?
- Have not yet seen a problem with the conflicting libraries, but we anticipate trouble

- Event Data History           David Adams   BNL

- December 2001

## Issues (cont)

- ROOT
- Ideally we would only have a runtime dependency
- In practice, ROOT libraries are linked explicitly using the AtlasROOT package
- Connection to ROOT in AtlasPOOL package
- Issue for Gaudi, SEAL, POOL, ...

- Event Data History           David Adams   BNL

- December 2001

## Issues (cont)

- EventHeader
- Important interface class: event data is accessed as Collection<EventHeader>
- Present impl. is AthenaPoolEventHeader
- vector<EventHeaderElement>
- EHE = CLID + key string + token string
- Should we introduce an event header class
- Should we move this outside of Athena
-  Database/EventHeader?
- Or should we replace token string with token?
- Pool could use a smaller (context-specific) string

- Event Data History           David Adams   BNL

- December 2001

## Issues (cont)

- POOL Collections
- Collection<T> not present
- Using untyped collection as workaround
- ROOT-based collection not present
- Do we want to use implicit collection?
- How about hierarchical collection?
- POOL 1.0
- When to switch from 0.5?
- Presumably as soon as integration SW builds
- ATLAS release 6.2

- Event Data History           David Adams   BNL

- December 2001

## Longer term issues

- Plan for references between objects (phase 3)
- POOL ROOT file format
- Data directly accessible in ROOT?
- Without POOL?
- Or other non-athena applications?
- Long term data storage
- When do we require that data written to POOL be accessible in the far future?
- Conditions data
- Can/should we store this data in POOL?

- Event Data History           David Adams   BNL

- December 2001

## Schedule

- If we want full EDM in 7.0
- There is not much time
- We need testing with persistent classes from users soon, i.e. in 6.2
- First must resolve dictionary and converter generation problems
- And decide how to handle object references
- And all the other issues discussed earlier

- Event Data History           David Adams   BNL

- December 2001

## Conclusions

- POOL appears to offer a sensible persistence strategy for ATLAS
- Share development and maintenance effort with other experiments
- Meets all ATLAS requirements
- No insurmountable problems yet
- But lots of work to do before release 7

- Event Data History           David Adams   BNL

- December 2001