1 / 17

Athena/POOL integration

Athena/POOL integration. AthenaPOOL components are components of the Athena framework. From the Atlas “Athena” framework point of view the POOL provides just a new kind of I/O technology.

alima
Download Presentation

Athena/POOL integration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Athena/POOL integration Valeri Fine fine@bnl.gov

  2. AthenaPOOL components are components of the Athena framework • From the Atlas “Athena” framework point of view the POOL provides just a new kind of I/O technology. • This means the “integration” within Athena means a concrete implementation of Athena Conversion service for POOL-technology first of all. • The implementation project was present collaboration http://www.usatlas.bnl.gov/~dladams/poolint/design.html Valeri Fine fine@bnl.gov

  3. Conversion Process See: Athena. Chapter 15 Converters AthenaPoolConverter AthenaPoolCnv<T> AthenaPoolCnv<T> AthenaPoolCnvSvc AthenaPoolCnv<T> AthenaPoolAddress Valeri Fine fine@bnl.gov

  4. POOL I/O for Athena algorithm File Catalog (XML) POOL Collection EventHeader (MySQL) Athena Algorithm jobOptions StoreGate C++ class headers AthenaPoolCnvSvc PoolSvc POOL SEAL POOL Db files (ROOT) IService Valeri Fine fine@bnl.gov

  5. AtlasPOOL CVS repository Valeri Fine fine@bnl.gov

  6. AtlasPOOL example package Valeri Fine fine@bnl.gov

  7. AthenaPOOL MySQL “collecton” - EventHeader Valeri Fine fine@bnl.gov

  8. Example of the AtlasPOOL collection Valeri Fine fine@bnl.gov

  9. Job option to read /write via POOL One needs to remember very few things: • Define the Athena Conversion service for POOL I/O technology. To do that it is sufficient to include in the jobOption file: #include "$ATHENAPOOLCNVSVCROOT/share/WriteAthenaPool_jobOptions.txt" This is to load and define two POOL-related Athena services: ApplicationMgr.DLLs += { "PoolSvc", "AthenaPoolCnvSvc" }; ApplicationMgr.ExtSvc += { "PoolSvc", "AthenaPoolCnvSvc" }; • Define the Athena Converter for each package involved ApplicationMgr.DLLs += { "AthenaPoolExampleLcgDictionaryX" }; where AthenaPoolExampleLcgDictionaryX name of the package user-provided converter share library • Provide the StoreGate Stream and the list of the class StoreGate ID’s for those instances of the classes one wants to be written out Stream1.ItemList += {"9876#*" }; • Define the POOL Db collection to keep the track about the stored events PoolSvc.Collection = "NewPoolTry"; where "NewPoolTry" is a unique name of the current session in the MySQL Db. and the name of the ROOT file to write these events out. PoolSvc.Output = "SimplePoolFile.root"; POOL collection factory should be provided with the several parameters to describe the various type collections Valeri Fine fine@bnl.gov

  10. Read the objects from the POOL To read the events backone has to load a special implementation of the Athena EventSelector class and the name of the input Db collection. • To define the POOL event Selector implementation one can add the include statement #include $ATHENAPOOLCNVSVCROOT/share/ReadAthenaPool_jobOptions.txt" to his/her jobOptions. • To define the POOL input collection the statement: EventSelector.InputCollection = "NewPoolTry"; where "NewPoolTry" is a name of the collection one wants to read the events from. The file ID is stored in the Db. By this reason one needs to provide NO file name to read the events back. Valeri Fine fine@bnl.gov

  11. Quick Db check The named collection can be seen via from MySql Db. To see the browse the Atlas default Db http://atlassw1.phy.bnl.gov/phpMyAdmin/index.php select "pool_collection" from the drop-down "(databases)" menu and the select the name of your collection. Valeri Fine fine@bnl.gov

  12. Conclusion At the moment the fundamental problem of providing a tool to build the class dictionary and object Athena converters automatically solved. The Atlas user can try it and the developer group can assist them to collect the valuable feedback, and provide the feedback to the POOL developers. Even though we may focus on other directions some problems should have been anticipated. Valeri Fine fine@bnl.gov

  13. C++ class serialization problem • There are two anticipated problems to be resolved: • Not enough SEAL/POOL capability to serialize some particular Athena C++ class: • Can be resolved by class redesign • Fix SEAL/POOL • Internal Athena class design problem caused its transient nature. The original I/O Gaudi paradigm came from the “Objectivity” that implied two hand-written classes, namely persistent class and class converter per each user data-class. Using ROOT-approach, generating automatically the class dictionary directly from its C++ definition eliminates those hand–written classes . However the classes originally were not design to be persistent that may have caused the problem. • Can be resolved by class redesign Valeri Fine fine@bnl.gov

  14. How to find the “broken” class • One has to try. It is a simplest way to find out the classes to be adjusted. • Conclusion: • The current level of implementation allows us to seek the collaboration-wide trial. Valeri Fine fine@bnl.gov

  15. Three ways to evolve • C++ class serialization problem (I/O and dictionary) – needs the collaboration participation. • It is not clear why one is required to provide the list of the class data-members. The LCG OO dictionary is in possession of this infomrstion. Required the user to change “selection.xml” as soon as his /her class evolves. This would have tremendously simplified the user life. • POOL Db related problem – just next Athena/POOL integration step to be done. • Athena/Pool Optimization • Removing the duplicated functionality • Selection the proper combination of the Db options POOL provides. These cause no immediate problem. We have time to work out Atlas own proper solution or wait POOL Data Service evolves. Valeri Fine fine@bnl.gov

  16. User doesn’t play with any file. The file name is an internal POOL unit and available through the POOL file catalog. The user defines the object he wants to be written out (in term of StoreGate) and the type Db to keep the “event track” (for example MySQL collection name) Questions to be addressed yet: Who allocates the POOL file space and where? How to choose the Db collection name to avoid clashes? Such kind of questions are not new for the Athena. It the same problem we faced to select and assign a unique class id for each class kept in StoreGate. POOL is an OO Db Valeri Fine fine@bnl.gov

  17. Thank you. ATLAS team: POOL/LCG team • David Adams (BNL) Dirk Dulleman • Christian Arnault Markus Frank • Hong Ma (BNL) Ioannis • David Melon Torre Wenaus • David Quarrie • RD Schaffer • Alex Undrus Valeri Fine fine@bnl.gov

More Related