PODIO
  • Introduction
  • Quick-start
  • Design and Implementation Details
    • Layout of Objects
      • The User Layer
      • The Internal Data Layer
      • The POD Layer
      • The Collections
      • Vectorization support / notebook pattern
    • Handling mutability
  • Data Models and Data Model Definitions
    • Basic Concepts and Supported Features
    • Mandatory fields
    • Definition of custom components
    • Definition of custom data classes
      • Defining members
      • Definition of references between objects:
      • Explicit definition of methods
    • Definition of custom interfaces
      • Assigning to interface types
    • Global options
    • Extending a datamodel / using types from an upstream datamodel
      • Potential pitfalls
  • Examples for Supported Interface
    • Object Ownership
    • Object Creation and Storage
    • Object References
    • Looping through Collections
    • Cloneing objects
    • Support for Notebook-Pattern
    • podio::Frame container
    • Object Retrieval
    • User defined Meta Data
      • Python Interface
  • The Frame concept
    • Basic functionality of a Frame
      • Usage examples for collection data
        • Putting collection data into the Frame
        • Getting collection (references) from the Frame
      • Usage for Parameters
    • I/O basics and philosophy
      • Writing a Frame
      • Reading a Frame
      • Schema evolution
  • Frame implementation and design
  • Writing extra data outside an EDM
    • Example usage
    • Some limitations
      • No relations to other collections
      • Limited supported types
  • Storage details of files produced by podio
    • ROOT
      • Storage of Collection data
      • Storage of Frame parameters
      • Storage of podio related metadata
    • SIO
  • Building a new data model library with CMake
    • Exported CMake functions and macros
    • A simple example
  • Advanced Topics
    • Writing extra data outside the EDM
    • Changing / creating new templates
    • Persistency
      • Writing Back-End
      • Reading Back-End
      • Dumping JSON
    • Thread-safety
      • Changing user data
      • Serialization
      • Not-thread-safe components
    • Running pre-commit
    • Retrieving the EDM definition from a data file
      • Accessing the EDM definition programmatically
      • Technical details on EDM definition embedding
        • The DatamodelRegistry
        • I/O helpers for EDM definition storing
  • Changing / creating new templates
    • Preprocessing of yaml file
    • Existing templates
    • Adding a new template
    • Available information in the templates
      • General information
      • Components
      • Datatypes
      • MemberVariable
      • DataType
      • Julia code generation
  • Python interface for data models
    • Pythonizations
      • Developing new pythonizations
      • Considerations
  • PODIO Collection as a Container
    • Container Types
    • Container member functions and operators
    • Collection as an AllocatorAwareContainer
      • AllocatorAwareContainer types
      • AllocatorAwareContainer expression and statements
    • Collection iterators as an Iterator
      • Iterator summary
      • LegacyIterator
      • LegacyInputIterator
      • LegacyForwardIterator
      • LegacyOutputIterator
    • Collection iterators and standard iterator adaptors
    • Collection and standard algorithms
    • Standard range algorithms
  • C++ API documentation
    • Class list
      • Class podio::CollectionBase
        • CollectionBase
      • Class podio::CollectionBufferFactory
        • CollectionBufferFactory
      • Class podio::CollectionIDTable
        • CollectionIDTable
      • Class podio::DatamodelDefinitionCollector
        • DatamodelDefinitionCollector
      • Class podio::DatamodelDefinitionHolder
        • DatamodelDefinitionHolder
      • Class podio::DatamodelRegistry
        • DatamodelRegistry
      • Class podio::Frame
        • Frame
      • Class podio::GenericParameters
        • GenericParameters
      • Class podio::ICollectionProvider
        • ICollectionProvider
      • Class podio::ObjectID
        • ObjectID
      • Class podio::RNTupleReader
        • RNTupleReader
      • Class podio::RNTupleWriter
        • RNTupleWriter
      • Class podio::ROOTFrameData
        • ROOTFrameData
      • Class podio::ROOTLegacyReader
        • ROOTLegacyReader
      • Class podio::ROOTReader
        • ROOTReader
      • Class podio::ROOTWriter
        • ROOTWriter
      • Class podio::Reader
        • Reader
      • Class podio::RelationRange
        • RelationRange
      • Class podio::SIOBlock
        • SIOBlock
      • Class podio::SIOBlockFactory
        • SIOBlockFactory
      • Class podio::SIOBlockLibraryLoader
        • SIOBlockLibraryLoader
      • Class podio::SIOBlockUserData
        • SIOBlockUserData
      • Class podio::SIOCollectionIDTableBlock
        • SIOCollectionIDTableBlock
      • Class podio::SIOEventMetaDataBlock
        • SIOEventMetaDataBlock
      • Class podio::SIOFileTOCRecord
        • SIOFileTOCRecord
      • Class podio::SIOFrameData
        • SIOFrameData
      • Class podio::SIOLegacyReader
        • SIOLegacyReader
      • Class podio::SIONumberedMetaDataBlock
        • SIONumberedMetaDataBlock
      • Class podio::SIOReader
        • SIOReader
      • Class podio::SIOWriter
        • SIOWriter
      • Class podio::SchemaEvolution
        • SchemaEvolution
      • Class podio::UserDataCollection
        • UserDataCollection
      • Class podio::Writer
        • Writer
      • Class podio::utils::MaybeSharedPtr
        • MaybeSharedPtr
    • Struct list
      • Struct podio::CollectionReadBuffers
        • CollectionReadBuffers
      • Struct podio::CollectionWriteBuffers
        • CollectionWriteBuffers
      • Struct podio::Frame::FrameConcept
        • FrameConcept
      • Struct podio::Frame::FrameModel
        • FrameModel
      • Struct podio::RNTupleReader::CollectionInfo
        • CollectionInfo
      • Struct podio::RNTupleWriter::CategoryInfo
        • CategoryInfo
      • Struct podio::ROOTReader::CategoryInfo
        • CategoryInfo
      • Struct podio::ROOTWriter::CategoryInfo
        • CategoryInfo
      • Struct podio::Reader::ReaderConcept
        • ReaderConcept
      • Struct podio::Reader::ReaderModel
        • ReaderModel
      • Struct podio::RelationNames
        • RelationNames
      • Struct podio::SIOFileTOCRecordBlock
        • SIOFileTOCRecordBlock
      • Struct podio::SIOMapBlock
        • SIOMapBlock
      • Struct podio::SIOVersionBlock
        • SIOVersionBlock
      • Struct podio::SchemaEvolution::MapIndex
        • MapIndex
      • Struct podio::Writer::WriterConcept
        • WriterConcept
      • Struct podio::Writer::WriterModel
        • WriterModel
      • Struct podio::det::nonesuch
        • nonesuch
      • Struct podio::root_utils::CollectionBranches
        • CollectionBranches
      • Struct podio::root_utils::ParamStorage
        • ParamStorage
      • Struct podio::utils::MaybeSharedPtr::ControlBlock
        • ControlBlock
      • Struct podio::version::Version
        • Version
    • Namespace list
      • Namespace podio
        • podio
      • Namespace podio::Category
        • Category
      • Namespace podio::det
        • det
      • Namespace podio::root_utils
        • root_utils
      • Namespace podio::sio_helpers
        • sio_helpers
      • Namespace podio::utils
        • utils
      • Namespace podio::version
        • version
      • Namespace sio
        • sio
  • python
    • podio package
      • Subpackages
        • podio.pythonizations package
      • Submodules
      • podio.base_reader module
        • BaseReaderMixin
      • podio.base_writer module
        • AllWriters
        • BaseWriterMixin
      • podio.frame module
        • Frame
      • podio.frame_iterator module
        • FrameCategoryIterator
      • podio.reading module
        • RootFileFormat
        • get_reader()
      • podio.root_io module
        • LegacyReader
        • RNTupleReader
        • RNTupleWriter
        • Reader
        • Writer
      • podio.sio_io module
        • LegacyReader
        • Reader
        • Writer
      • Module contents
        • Frame
    • podio_class_generator module
      • clang_format_file()
      • has_clang_format()
      • read_upstream_edm()
    • podio_gen package
      • Submodules
      • podio_gen.cpp_generator module
        • CPPClassGenerator
        • IncludeFrom
        • replace_component_in_paths()
      • podio_gen.generator_base module
        • ClassGeneratorBaseMixin
        • write_file_if_changed()
      • podio_gen.generator_utils module
        • DataModel
        • DataModelJSONEncoder
        • DataType
        • DefinitionError
        • MemberVariable
        • get_julia_type()
      • podio_gen.julia_generator module
        • JuliaClassGenerator
      • podio_gen.podio_config_reader module
        • ClassDefinitionValidator
        • MemberParser
        • PodioConfigReader
      • Module contents
    • podio_schema_evolution module
      • AddedComponent
      • AddedDatatype
      • AddedMember
      • ChangedMember
      • DataModelComparator
        • DataModelComparator.compare()
        • DataModelComparator.get_changed_schemata()
        • DataModelComparator.heuristics()
        • DataModelComparator.heuristics_members()
        • DataModelComparator.print_comparison()
        • DataModelComparator.read()
        • DataModelComparator.read_evolution_file()
      • DroppedComponent
      • DroppedDatatype
      • DroppedMember
      • RenamedDataType
      • RenamedMember
      • RootIoRule
      • SchemaChange
      • root_filter()
      • sio_filter()
PODIO
  • Search


© Copyright 2023, Key4hep authors.

Built with Sphinx using a theme provided by Read the Docs.