Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standalone Delphes with EDM4HEP output #56

Merged
merged 50 commits into from Aug 11, 2020
Merged

Standalone Delphes with EDM4HEP output #56

merged 50 commits into from Aug 11, 2020

Conversation

vvolkl
Copy link
Collaborator

@vvolkl vvolkl commented May 18, 2020

This PR disentangles the Delphes program from the ExRootAnalysis TreeWriter, and adds edm4hep output via the podio EventStore instead. The conversion is only a proof of principle now, and still WIP. The branches are created automatically from the TreeWriter configuration in the Delphes card.
I started out from DelphesROOT and cleared out some non-crucial code and replaced some raw pointers with smart pointers. Ultimately it would be good to make the input/output of the delphes standalone executables more modular (currently quite a bit of code is duplicated in 8 versions of Delphes with different inputs).
BEGINRELEASENOTES

  • Add a converter module for delphes that can output edm4hep files. The module is used in several standalone delphes executables that take different input formats (e.g. stdhep, pythia8, etc.) and standard delphes cards and produce edm4hep output root files. It can also be used in conjunction with gaudi. This is an early release to gather feedback and to iterate on that feedback. Currently not all of the input readers that come with standard delphes are implemented and also the information content of the edm4hep files is restricted to the most important information. More information can be added on demand. A brief introduction and some examples are included.

ENDRELEASENOTES

@tmadlener
Copy link
Contributor

I have rebased the pull request on the current master.
As discussed during todays meeting, I have removed the changes to the edm4hep::ReconstructedParticle (#69) and also the dependency on (podio/95).

Documentation of how the converter can be configured is still missing.

@vvolkl vvolkl changed the title [WIP] Standalone Delphes with EDM4HEP output Standalone Delphes with EDM4HEP output Jun 23, 2020
@andresailer
Copy link
Collaborator

I think you need to rebase again.

vvolkl and others added 24 commits July 6, 2020 13:29
- more conversions
- add isolation vars
- add D0/DZ vars
Co-authored-by: Thomas Madlener <thomas.madlener@desy.de>
With podio/95 they are no longer necessary
Needs to be done after the momentum has been set in order for the
calculation of the energy from the passed masses is done consistently
TODO: Check differences between delphes and edm4hep output
TODO: currently the edm4hep jets have much less associated clusters than
the delphes clusters
Had to introduce a new class of RecoParticleRef that allows us to store
collections of particle references which only point into the global
reconstructed particle collection. This is necessary to not duplicate
reconstructed particles when splitting them into subsets.
tmadlener and others added 10 commits July 6, 2020 13:29
A fork of this class was used up until now. The main goal was to be able
to use unchanged delphes cards. However, since the EDM4HepOutput module
has to be defined in any case, another change to the delphes card should
no longer be a real problem.
As discussed during the meeting, a final decision on how to best handle
this needs some more discussion. For now using a const_cast here, to
showt that some more work is necessary.
gcc8 (used in e.g. CI) would require separately linking in stdc++fs as
it is only merged into the stl library with gcc9.
plugins/delphes/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/delphes/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/delphes/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/delphes/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/delphes/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/delphes/DelphesPythia8Reader.h Outdated Show resolved Hide resolved
plugins/delphes/DelphesRootReader.h Outdated Show resolved Hide resolved
plugins/delphes/DelphesRootReader.h Outdated Show resolved Hide resolved
plugins/delphes/examples/common_helpers.h Show resolved Hide resolved
plugins/delphes/examples/common_helpers.h Outdated Show resolved Hide resolved
@andresailer
Copy link
Collaborator

TODO: Change to allow use of un-changed delphes cards

@gaede
Copy link
Collaborator

gaede commented Aug 4, 2020

@vvolkl and @tmadlener: please add a few lines to the Release notes

tmadlener and others added 3 commits August 5, 2020 16:02
@tmadlener
Copy link
Contributor

Hi @vvolkl,
Looking at your last commit I see that you introduce one global ParticleIDCollection. Would it make sense to have one collection per output collection? I am mainly thinking about the tooling support, like some utility functionality that facilitates accessing the information stored in the ParticleIDs. With different collection we could put, e.g. the meaning of the different indices, into the metadata of each collection. I am not entirely sure whether we need separate collections for that or whether we could still do that with one collection and slightly more elaborate metadata.

For now I think this can go in as it is, but we may need to revisit this in a future iteration. The question is mainly: Where do we want to do the bookkeeping.

This also needs to be rebased onto master again if we do not want to have a merge commit in the history.

@vvolkl
Copy link
Collaborator Author

vvolkl commented Aug 11, 2020

Hi Thomas,
Yes, I thought about this, but at the moment I don't see the need, and with one global collection it is simpler. But we can indeed revisit this in the future.

For me the rebase and merge button still works - I'll do one more round of testing, then I'll merge.

@vvolkl vvolkl merged commit b8ec3dc into master Aug 11, 2020
@vvolkl vvolkl deleted the delphes branch August 11, 2020 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants