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

Inclusion of EIC packages in key4hep-spack #346

Open
wdconinc opened this issue Apr 18, 2022 · 4 comments
Open

Inclusion of EIC packages in key4hep-spack #346

wdconinc opened this issue Apr 18, 2022 · 4 comments
Labels
enhancement New feature or request

Comments

@wdconinc
Copy link
Contributor

We'd like to start including some of the EIC package in the key4hep-spack repository. This would initially mirror what we have on eic-spack, but due to the integration, we could imagine that eic-spack will start to depend on packages in the key4hep-spack repository.

A few points for discussion.

Targeted set of packages

Initially we would target inclusion of the following set of packages:

  • eicd (edm4hep-based data model, ultimately we hope for this to simply add on top of edm4hep)
  • juggler (gaudi algorithm collection, could become more streamlined with k4FW etc)
  • eic-ip6 (interaction region 6 beamline layout)
  • athena-eic (ATHENA experiment at EIC)
    This forms a complete and self-consistent set that allows for full simulation and reconstruction. We will need to add a version of the EIC project detector which will be different from athena-eic, but it makes sense to wait until after a name has been chosen...

Spack target branch

Our packages are currently targeted to Spack develop. That means that they depend on, for example, Acts 18. I think most other packages in key4hep-spack appear to target a different spack version.

@wdconinc wdconinc added the enhancement New feature or request label Apr 18, 2022
@vvolkl
Copy link
Contributor

vvolkl commented Apr 19, 2022

I think we'd be happy to include EIC packages here, just adding one point to the discussion

Use of upstream repositories

If existing installations of these packages should continue to be used, it'll probably be easier to keep the eic recipes in their current repository, as spack can be very picky about the namespace the packages were installed from ( even failing with an error when using --reuse see #344)

@vvolkl
Copy link
Contributor

vvolkl commented Apr 19, 2022

This repo assumes that the key4hep branch of the key4hep/spack fork of spack is used, which is usually somewhat close to develop, and any missing updates from develop can be cherry-picked. I think currently the main differences wrt. develop are a fix for building the nightlies and one for the aformentioned issue concerning --reuse with upstreams.

@andresailer
Copy link
Contributor

  • Duplication leads to package name clash in spack
  • Also Gaudi algorithm/services with same name clash
  • build things together, should see warnings for duplicated things
    • how to resolve?
      • Have to see if there is functionality that is needed
  • Wouter will PR packages to key4hep-spack

@wdconinc
Copy link
Contributor Author

wdconinc commented Sep 27, 2022

Currently in or related to eic-spack , propose to add bold ones to key4hep-spack:

  • afterburner: used to apply MC beam crossing angle, energy divergence, and crabbing effects to head-on events (stable)
  • algorithms: framework agnostic algorithms (WIP)
  • athena-eic: old ATHENA geometry in dd4hep (archived)
  • beagle: MCEG (WIP since depends on fluka)
  • bmf: Beast magnetic field utility library (obsolete)
  • cernlib: upstreamed WIP
  • dawn: Geant4 DAWN library (stable)
  • dawncut: Geant4 DAWN library for cross section geometries (stable)
  • dd4hep: local patches againts latest release (should not be necessary)
  • east: Geant4 frontend in development at JLab (no versions, WIP, should be upstreamed)
  • edm4eic: edm4hep extensions (WIP, but would be good to upstream)
  • eic: bundle meta-package (obsolete)
  • eicd: old name for emd4eic before we relied on edm4hep (obsolete)
  • eic-ip6: EIC IP6 geometry (current)
  • eicrecon: new JANA2-based reconstruction (current)
  • eicroot: FairRoot-based EIC framework (obsolete)
  • eic-smear: fast EIC smearing simulation (should be obsolete, but still current)
  • eictoymodel: minimal EIC geometry (obsolete)
  • ejana: old JANA2-based reconstruction (obsolete)
  • epic-eic: EIC EPIC geometry (current)
  • escalate: old JANA2-based reconstruction environment meta-package (obsolete)
  • estarlight: MCEG, upstreamed WIP
  • farmhash: dependency of tensorflow-lite below
  • fluka: MCEG, should be upstreamed now that manual downloads are not as frowned upon
  • g4e: old Geant4 simulation framework (obsolote)
  • gaudi: local patches overlay to fix gcc-12, fmt compilation
  • geant3-vmc: Geant3 virtual Monte Carlo (unused, but could be upstreamed)
  • geant4: local patches to add Birks constants (obsolete as of dd4hep setters, but not fully converted)
  • jana2: reconstruction framework (current, should be upstreamed)
  • juggler: gaudi-based reconstruction (current)
  • libodbcpp: something depended on this at some point (obsolete)
  • milou: MCEG, depends_on cernlib (current, cannot upstream due to cernlib)
  • nanocernlib: small cernlib with cmake support (current, as much as that is possible for cernlib)
  • npdet: ddsim for EIC which defaults optical photons and Cerenkov on, with local plugins (current)
  • pepsi: MCEG, depends_on cernlib (current, cannot upstream due to cernlib)
  • py-smear: python frontend to eic-smear (obsolete)
  • pythia6m: 'tuned' pythia6 (current, too much but unclear overlap with upstream pythia6)
  • sartre: MCEG, upstreamed WIP
  • tensorflow-lite: upstreamed WIP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: No status
Development

No branches or pull requests

3 participants