Second release of the 3.x series (mucoll-stack@3.1). It consolidates the layered build to two
images, removes the Marlin/ILCSoft/LCIO reconstruction chain in favour of the native key4hep path,
brings back the GNN tracking pipeline, and pins the stack to tagged key4hep/MuColl releases instead
of tracking main.
Added
- Event generators in the
simimage. New+genvariant pulling inwhizard +openloops,
madgraph5amc, andpythia8. The publishedsimlayer is now built as+sim+gen— both the
mucoll-layeredenvironment and the CI (amd64/arm64). k4gaudipandorain the+simlayer, providing the Gaudi ↔ PandoraPFA interface that replaces
the droppedDDMarlinPandorapath. It is required as@0.3.0 ~ddkaltest:~ddkaltesttakes
the track states already present on the input tracks instead of recomputing them at the
calorimeter, which avoids thek4reco +conformal_trackingdependency (and with it LCIO).- ACTS overlay recipe (
packages/acts) so the material-mapping workflow of
k4ActsTracking/doc/material_mapping.mdactually works againstacts@main: it passes the renamed
ACTS_BUILD_PYTHON_BINDINGS/ACTS_BUILD_EXAMPLES_ROOTcmake options (the builtin package's
names are silent no-ops onmain), installs theExamples/Scripts/Pythonhelper scripts, and
exportsPYTHONPATH/ACTS_EXAMPLES_SCRIPTS. ACTS is now required as
+dd4hep+json+edm4hep+examples+geant4+hepmc3+python cxxstd=20. - GNN tracking pipeline back in the default build. The stack requires
k4actstracking@00-05 +gnn, which pullsacts +gnn+onnx+torchtogether withpy-torchand
py-onnxruntime. The pipeline is now selected by a variant on a tagged release rather than by
a branch pin, and needs no ACORN (GNN4ITk) dependency. - Concretization CI now exercises the real image bootstrap.
concretize-template.yamlbuilds
Docker/Dockerfile.base --target concretizeinstead of running inside the key4hep externals
image, so it uses exactly the same pinned spack / spack-packages commits, key4hep-spack and local
.cherry-pick, LLVM-20/rust externals and buildcache mirror that the published images use.
Nothing is installed, so the check stays cheap while failing on exactly the concretization
problems a real build would hit; the concretized spec is uploaded asspec-<target>.log. - Geant4
examplesvariant via cherry-pick..cherry-picknow cherry-picks the key4hep-spack
commit that adds theexamplesvariant togeant4, so the build can turn the examples off
without vendoring a full localgeant4recipe.
Changed
- Simplified the layered build from three images to two. Collapsed the
analysis ⊂ sim ⊂ mlchain intoanalysis ⊂ sim: the machine-learning tools (+ml) are now
folded into the base analysis layer instead of shipping as a separatemucoll-mlimage, and both
theanalysisandsimroots carry+ml. Removed the dedicated+analysisvariant — the
edm4hep/podio analysis stack is now the always-installed base of every layer. Movedhepmc3
into the+simlayer. The roots are nowmucoll-stack~devtools+pytools+ml~simand
mucoll-stack~devtools+pytools+ml+sim+gen. - Pinned the stack to tagged releases rather than tracking upstream
main:edm4hep@1.1,
k4fwcore@1.7,k4geo@0.26,k4gen@0.1pre16,k4gaudipandora@0.3.0,k4actstracking@00-05,
k4reco@0.3(new version added to the recipe and made preferred).k4simgeant4still tracks
@main. - Physics-validation plotting moved to the
mucoll-benchmarkspython studies. The plot step now
runsanalysis/python/edm4hep/study_{tracks,seeds,hits}.py(andstudy_photons.pyfor photons)
instead of the retiredTrackingPlotssubmodule (RunAnalysis.C->PlotAll.C), which no longer
exists upstream. The studies fuse ntuple writing and plotting into a single RDataFrame event loop,
so there is no intermediate ntuple stage.validation/RunAnalysis.confis replaced by
validation/plot_settings.sh, whose settings can all be overridden from the environment. - Pinned
numpy(@:2.2, the numba-compatible ceiling),py-sympy@1.13.3,eigen@3.4,
py-fsspec +httpandvalgrind ~boostinpackages.yamlso theanalysisandsimroots stay
shareable underunify: when_possible— each of these otherwise forks the expensive
py-torch/onnxruntimesubtree across the two roots. - Disabled Geant4 examples (
geant4 ~examples) to trim the build, and dropped+lciofrom the
dd4hepand Whizard specs (nowwhizard +openloops). k4geois still required as~beampipe_stl— it skips the network download of the FCC-ee MDI
beampipe CAD, which MuColl does not use and which intermittently breaks the build. The variant
itself now comes from upstream, so it no longer needs a local overlay to exist.
Removed
- Removed Marlin, ILCSoft, and LCIO from the stack. Dropped the entire Marlin/ILCSoft
reconstruction chain (marlin,marlinreco,marlintrk,marlinutil,marlindd4hep,
marlinfastjet,marlinkinfit*,pandorapfa/pandoraanalysis,gear,kaltest/ddkaltest,
kitrack*,clicperformance,fcalclusterer,generalbrokenlines,aidatt,raida,sio,
ced/cedviewer,garlic,lcfiplus/lcfivertex, …) together withk4marlinwrapperand the
lciopin from the stack's direct dependencies, along with the now-unusedmuoncvxddigitiserand
mybibutilsrecipes. Reconstruction is now driven entirely by the native key4hep/k4recopath
(k4geostill pulls upstreamlcio. The changes needed to avoid this will land later). - Dropped the version requirements on
k4simdelphesandk4edm4hep2lcioconv. - Dropped the local
k4geo,k4actstrackingandk4gaudipandorarecipes in favour of the
upstream Spack packages, which now carry everything the overlays were adding (thebeampipe_stl,
gnnandddkaltestvariants).packages/is down toacorn,acts,k4reco,mucoll-stack,
pelicanand the python/ML helpers. - Removed the
mucoll-release-debugenvironment (and its entry from the concretization matrix).
Full Changelog: v3.0...v3.1