1 / 22

LCIO A persistency framework and data model for the linear collider

Learn about LCIO's persistency framework & data model for linear colliders, including implementation, design, data models, current status, and future plans. Explore LCIO SW architecture, data formats, and interfaces in Java, C++, & Fortran.

gharvey
Download Presentation

LCIO A persistency framework and data model for the linear collider

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. LCIO A persistency framework and data model for the linear collider CHEP 04, Interlaken Core Software, Wednesday 29.09.2004 Frank Gaede, DESY -IT-

  2. Outline • Introduction • Implementation/Design • Data Model • Status • Summary Frank Gaede, DESY -IT-

  3. Motivation for LCIO LCIO Persistency Framework Generator Analysis Recon- struction Simulation Java, C++, Fortran Java, C++, Fortran Geant3, Geant4 Java, C++, Fortran geometry Frank Gaede, DESY -IT-

  4. LCIO persistency framework LCIO data model contents data handling API implementation data format persistency Frank Gaede, DESY -IT-

  5. LCIO Project Overview • DESY and SLAC joined project: • provide common basis for ILC software • Requirements: • need Java, C++ and f77 (!) API • extendable data model for current and future simulation and testbeam studies • user code separated from concrete data format • easy to adapt LCIO in existing applications • no dependency on other frameworks -> keep it simple & lightweight Frank Gaede, DESY -IT-

  6. LCIO SW-Architecture generated from one source using AID compressed records, pointer retrieval JAS/AIDA root hbook Java API C++ API f77 API common API LCIO Java implementation LCIO C++ implementation *.slcio files (SIO) Frank Gaede, DESY -IT-

  7. Data Format (persistency): SIO • SIO: Simple Input Output • developed at SLAC for NLC simulation • already used in hep.lcd framework • features: • on the fly data compression  • some OO capabilities, e.g. pointers  • C++ and Java implementation available  • no direct access  -> use fast skip  Frank Gaede, DESY -IT-

  8. common Java, C++ interface: AID-tool from freehep.org define interfaces in Java-like language with C++ extensions -> generates files with Java interfaces -> generates C++ header files with pure abstract base classes Fortran interface: use C++-wrapper functions and cfortran.h one function for every class member function use integers to store pointers ! -> OO-like code in fortran Implementation details Frank Gaede, DESY -IT-

  9. LCIO Design abstract io abstract event concrete classes persistency implementation Frank Gaede, DESY -IT-

  10. Data Model I Frank Gaede, DESY -IT-

  11. Data Model II Frank Gaede, DESY -IT-

  12. Data Model III Frank Gaede, DESY -IT-

  13. Data Model IV Frank Gaede, DESY -IT-

  14. Data Model V Frank Gaede, DESY -IT-

  15. LCIO for transient data • The LCEvent can be used as container for transient data in an application, e.g. reconstruction • Application will call list of modules that read existing collections from the LCEvent and add resulting new Collections • LCIO has (Event/Run)-Listener classes that can serve as base classes for modules • easy to define an application framework based on LCIO for reconstruction and analysis: • org.lcsim (Java) , Marlin (C++) Frank Gaede, DESY -IT-

  16. LCEvent in a modular application LCEvent collection0 collection0 collection0 collection0 collection0 collection0 collection0 main MyInput2.slcio MyInput1.slcio MyInput0.slcio Module0 Module1 Module2 read and add collections … ModuleN MyOutput.slcio Outputmodule Frank Gaede, DESY -IT-

  17. LCIO status – new features • first official release v01-00 (Nov 2003) • simulation data model • new release v01-03 now: • reconstruction model (Rec.Particle,Tracks,Cluster) • user extensions (LCGenericObject) • raw data classes • support for CLHEP four vectors • transient data collections • StdHep interface • run, event and collection parameters -> store meta data describing what is in the collections Frank Gaede, DESY -IT-

  18. LCIO online documentation Frank Gaede, DESY -IT-

  19. LCIO on the web • LCIO homepage: http://lcio.desy.de • downloads and documentation • LCIO forum at: http://forum.linearcollider.org • user/developer questions and comments • discussions on new developments • LCIO bug reports at: http://bugs.freehep.org • bug report and new feature requests Frank Gaede, DESY -IT-

  20. LCIO Users • Geant4 Full simulations: • LCDG4, LCS, Mokka, Jupiter (planned) • Reconstruction: • org.lcsim, Brahms, Marlin • Fast simulation • Lelaps, Simdet • Testbeam • Calice: Ecal, Hcal PPTs • TPC prototypes • Analysis Tools • JAS3: file browser, code wizard • WIRED: generic event display (picking of LCIO objects) -> about to become de facto standard for ILC-software Frank Gaede, DESY -IT-

  21. JAS3 – LCIO plugin http://jas.freehep.org/jas3/index.html JAS3 provides native interfaces to LCIO: browser, code wizard, event display WIRED Frank Gaede, DESY -IT-

  22. LCIO is a persistency framework and data model for the linear collider DESY and SLAC joined project Provides Java, C++ and f77 API New version v01-03 released now simulation and reconstruction data model user extensions Future plans: react to user requests provide convenient methods handling of relationships handling of meta data bug fix patches Idea to develop a Java/C++ binding for LCIO -> would allow to have a mixed language reconstruction framework -> not so straight forward… Summary & Outlook Frank Gaede, DESY -IT-

More Related