edm4hep

Generic event data model for HEP collider experiments

https://github.com/key4hep/edm4hep

Science Score: 85.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    6 of 17 committers (35.3%) from academic institutions
  • Institutional organization owner
    Organization key4hep has institutional domain (cern.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Generic event data model for HEP collider experiments

Basic Info
  • Host: GitHub
  • Owner: key4hep
  • License: apache-2.0
  • Language: C++
  • Default Branch: main
  • Homepage: https://cern.ch/edm4hep
  • Size: 834 KB
Statistics
  • Stars: 31
  • Watchers: 22
  • Forks: 41
  • Open Issues: 29
  • Releases: 24
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Key4hep build linux DOI

EDM4hep

A generic event data model for future HEP collider experiments.

Components

| | | | |-|-|-| | Vector4f | Vector3f | Vector3d | | Vector2f | TrackState | Quantity | | CovMatrix2f | CovMatrix3f | CovMatrix4f | | CovMatrix6f | | |

Datatypes

| | | | |-|-|-| | EventHeader | MCParticle | SimTrackerHit | | CaloHitContribution | SimCalorimeterHit | RawCalorimeterHit | | CalorimeterHit | ParticleID | Cluster | | TrackerHit3D | TrackerHitPlane | RawTimeSeries | | Track | Vertex | ReconstructedParticle | | TimeSeries | RecDqdx | |

Links

| | | | |-|-|-| | RecoMCParticleLink | CaloHitSimCaloHitLink | TrackerHitSimTrackerHitLink | | CaloHitMCParticleLink | ClusterMCParticleLink | TrackMCParticleLink | | VertexRecoParticleLink | | |

Generator related (meta-)data

| | | | |-|-|-| | GeneratorEventParameters | | | | GeneratorPdfInfo | | |

Interfaces

| | | | |-|-|-| | TrackerHit | | |

The tests and examples in the tests directory show how to read, write, and use these types in your code.

Status

This project is in a beta stage -- feedback and use of it in production is encouraged, but expect changes until a stable version is released.

Dependencies

Required:

Optional:

  • Doxygen (to build code reference)
  • HepMC (integration test)
  • HepPDT (integration test)

Build and Install

This project follows the key4hep guidelines and can be built with CMake:

sh source /cvmfs/sw-nightlies.hsf.org/key4hep/setup.sh git clone https://github.com/key4hep/EDM4hep cd EDM4hep; mkdir build; cd build cmake .. make make test

The library files and dictionaries (libedm4hep.so, ...) must be put somewhere in LD_LIBRARY_PATH.

Python bindings

There are python bindings for all the classes in the datamodel for working with the classes individually (for working with collections podio has its own bindings). Make sure that <CMAKE_INSTALL_PREFIX>/lib is in LD_LIBRARY_PATH, <CMAKE_PREFIX_PATH>/python is in PYTHONPATH and <CMAKE_INSTALL_PREFIX>/include is in ROOT_INCLUDE_PATH: ```python import edm4hep particle = edm4hep.MCParticle() # default initialized particle particle.getCharge() # 0.0

series = edm4hep.TimeSeries(1, 2, 3) # classes can be constructed with non-default parameters series.getCellID() # 1 series.getTime() # 2.0 series.getInterval() # 3.0

mc = edm4hep.MutableMCParticle() # mutable classes can also be modified mc.setPDG(2212) mc.getPDG() # 2212 ```

In an interactive session (with python or ipython, for example) it's possible to see all the classes by typing edm4hep. and then pressing TAB.

Dumping to JSON

The edm4hep2json tool can be used to dump the contents of an EMD4hep file in JSON format. E.g.

bash edm4hep2json some_events.edm4hep.root

This will produce an output file some_events.edm4hep.json. That has the following structure json { "Event <N>": { "<CollectionName>": { "collID": <ID>, "collType": <collectionType>, "collection": [ <elements> ] }, } }

As also stated in the podio documentation there is no plan to support reading JSON back in once it is dumped, so this should not be seen as a way to persistify data, but rather to interface it with tools that consume JSON.

Use edm4hep2json --help to see the available options for selecting which parts of the input file should be part of the output.

Example files

Example EDM4hep files can be obtained from the Continuous Integration (CI) workflows. From the EDM4hep github page, go to Actions -> Key4hep build, click one of the runs (the latest scheduled is preferred) and they will appear at the bottom, under Artifacts.

Contributing

Contributions and bug reports are welcome! See our contributing guidelines if you want to contribute code to EDM4hep.

Citing EDM4hep

If you wish to cite EDM4hep please reference this paper:

bibtex @article{Gaede:2022leb, author = "Gaede, Frank and Madlener, Thomas and Declara Fernandez, Placido and Ganis, Gerardo and Hegner, Benedikt and Helsens, Clement and Sailer, Andre and A. Stewart, Graeme and Völkl, Valentin", title = "{EDM4hep - a common event data model for HEP experiments}", doi = "10.22323/1.414.1237", journal = "PoS", volume = "ICHEP2022", pages = "1237", month = "11", year = "2022" }

Owner

  • Name: Key4hep: Turnkey Software for Future Colliders
  • Login: key4hep
  • Kind: organization

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: EDM4hep
message: >-
  If you use this software, please cite both the article
  from  preferred-citation and the software itself.
type: software
authors:
  - given-names: Frank
    family-names: Gaede
    email: frank.gaede@desy.de
    affiliation: DESY
    orcid: 'https://orcid.org/0000-0002-7055-9200'
  - given-names: Thomas
    family-names: Madlener
    email: thomas.madlener@desy.de
    affiliation: DESY
    orcid: 'https://orcid.org/0000-0002-0128-6536'
  - given-names: André Philippe
    family-names: Sailer
    affiliation: CERN
    email: andre.philippe.sailer@cern.ch
    orcid: 'https://orcid.org/0000-0002-9897-5214'
  - given-names: Valentin
    family-names: Völkl
    email: valentin.volkl@cern.ch
    affiliation: CERN
    orcid: 'https://orcid.org/0000-0002-9172-6629'
  - given-names: Juan Miguel
    family-names: Carceller
    email: j.m.carcell@cern.ch
    affiliation: CERN
    orcid: 'https://orcid.org/0000-0002-2254-1495'
  - given-names: Mateusz Jakub
    family-names: Fila
    email: mateusz.jakub.fila@cern.ch
    affiliation: CERN
    orcid: 'https://orcid.org/0000-0003-3917-2371'
identifiers:
  - type: doi
    value: 10.5281/zenodo.4785062
repository-code: 'https://github.com/key4hep/EDM4hep'
license: Apache-2.0
preferred-citation:
  title: EDM4hep - a common event data model for HEP experiments
  type: article
  authors:
    - given-names: Frank
      family-names: Gaede
      email: frank.gaede@desy.de
      affiliation: DESY
      orcid: 'https://orcid.org/0000-0002-7055-9200'
    - given-names: Thomas
      family-names: Madlener
      email: thomas.madlener@desy.de
      affiliation: DESY
      orcid: 'https://orcid.org/0000-0002-0128-6536'
    - given-names: Placido
      family-names: Declara Fernandez
      orcid: 'https://orcid.org/0000-0002-8432-2183'
    - given-names: Gerardo
      family-names: Ganis
      affiliation: CERN
      email: Gerardo.Ganis@cern.ch
      orcid: 'https://orcid.org/0000-0002-1175-206X'
    - given-names: Benedikt
      family-names: Hegner
      affiliation: CERN
      orcid: 'https://orcid.org/0009-0009-2020-1620'
      email: Benedikt.Hegner@cern.ch
    - given-names: Clement
      family-names: Helsens
      affiliation: CERN
      orcid: 'https://orcid.org/0000-0002-9243-7554'
    - given-names: André Philippe
      family-names: Sailer
      affiliation: CERN
      orcid: 'https://orcid.org/0000-0002-9897-5214'
      email: andre.philippe.sailer@cern.ch
    - given-names: Graeme Andrew
      family-names: Stewart
      email: graeme.andrew.stewart@cern.ch
      affiliation: CERN
      orcid: 'https://orcid.org/0000-0003-0182-7088'
    - given-names: Valentin
      family-names: Völkl
      email: valentin.volkl@cern.ch
      affiliation: CERN
      orcid: 'https://orcid.org/0000-0002-9172-6629'
  identifiers:
    - type: doi
      value: 10.22323/1.414.1237

GitHub Events

Total
  • Create event: 15
  • Release event: 1
  • Issues event: 25
  • Watch event: 6
  • Delete event: 14
  • Issue comment event: 129
  • Push event: 68
  • Pull request review event: 86
  • Pull request review comment event: 62
  • Pull request event: 77
  • Fork event: 6
Last Year
  • Create event: 15
  • Release event: 1
  • Issues event: 25
  • Watch event: 6
  • Delete event: 14
  • Issue comment event: 129
  • Push event: 68
  • Pull request review event: 86
  • Pull request review comment event: 62
  • Pull request event: 77
  • Fork event: 6

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 316
  • Total Committers: 17
  • Avg Commits per committer: 18.588
  • Development Distribution Score (DDS): 0.642
Top Committers
Name Email Commits
Valentin Volkl v****l@c****h 113
tmadlener t****r@d****e 97
Frank Gaede f****e@d****e 34
Andre Sailer a****r@c****h 25
wenxingfang 1****8@q****m 16
clementhelsens c****s@c****h 9
Placido Fernandez Declara p****z@c****h 6
Wouter Deconinck w****c@g****m 3
Juraj Smiesko 3****t@u****m 3
jmcarcell j****l@u****m 2
Graeme A Stewart g****t@c****h 2
Marko Petric m****c@c****h 1
Laurent Forthomme l****e@p****m 1
lintao l****1@g****m 1
Dmitry Kalinkin d****n@g****m 1
Placido Fernandez Declara 9****o@u****m 1
stoimenova 1****a@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 79
  • Total pull requests: 166
  • Average time to close issues: 9 months
  • Average time to close pull requests: 28 days
  • Total issue authors: 23
  • Total pull request authors: 23
  • Average comments per issue: 2.37
  • Average comments per pull request: 1.85
  • Merged pull requests: 132
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 32
  • Average time to close issues: 18 days
  • Average time to close pull requests: 24 days
  • Issue authors: 9
  • Pull request authors: 8
  • Average comments per issue: 0.7
  • Average comments per pull request: 1.31
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tmadlener (35)
  • wdconinc (10)
  • vvolkl (6)
  • fdplacido (6)
  • hegner (4)
  • peremato (4)
  • jmcarcell (4)
  • Zehvogel (2)
  • andresailer (2)
  • wenxingfang (1)
  • gganis (1)
  • samf25 (1)
  • BrieucF (1)
  • paulgessinger (1)
  • osbornjd (1)
Pull Request Authors
  • tmadlener (121)
  • jmcarcell (59)
  • m-fila (24)
  • vvolkl (7)
  • BrieucF (7)
  • kjvbrt (6)
  • wdconinc (5)
  • mirguest (3)
  • fdplacido (3)
  • paulgessinger (3)
  • andresailer (3)
  • graeme-a-stewart (3)
  • madbaron (2)
  • veprbl (2)
  • hegner (2)
Top Labels
Issue Labels
enhancement (26) discussion (11) documentation (4) bug (4) question (2) performance (1) breaking change (1) difference wrt lcio (1)
Pull Request Labels
needs schema evolution (4) breaking change (2) documentation (2) enhancement (1) discussion (1) schema change (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 6
  • Total maintainers: 3
spack.io: edm4hep

Event data model of Key4hep.

  • Versions: 6
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Average: 18.7%
Forks count: 21.3%
Stargazers count: 25.3%
Dependent packages count: 28.1%
Maintainers (3)
Last synced: 6 months ago

Dependencies

.github/workflows/key4hep_linux.yml actions
  • actions/checkout v3 composite
  • aidasoft/run-lcg-view v4 composite
  • cvmfs-contrib/github-action-cvmfs v3 composite
.github/workflows/lcg_linux_with_podio.yml actions
  • actions/checkout v3 composite
  • aidasoft/run-lcg-view v4 composite
  • cvmfs-contrib/github-action-cvmfs v3 composite
.github/workflows/pre-commit.yml actions
  • actions/checkout v3 composite
  • aidasoft/run-lcg-view v4 composite
  • cvmfs-contrib/github-action-cvmfs v3 composite
.github/workflows/downstream-build.yaml actions
  • actions/checkout v3 composite
  • cvmfs-contrib/github-action-cvmfs v3 composite
  • key4hep/key4hep-actions/downstream-build main composite