Skip to content

CKF Tracking based on Gen3 geometry#49

Merged
madbaron merged 74 commits into
key4hep:mainfrom
tmadlener:dd4hep-gen3-ckf-tests
Jun 3, 2026
Merged

CKF Tracking based on Gen3 geometry#49
madbaron merged 74 commits into
key4hep:mainfrom
tmadlener:dd4hep-gen3-ckf-tests

Conversation

@tmadlener

@tmadlener tmadlener commented Mar 17, 2026

Copy link
Copy Markdown
Member

BEGINRELEASENOTES

  • Added an initial proof-of-concept CKF tracking workflow for Gen3/DD4hep geometries, including DD4hep-to-ACTS conversion, CellID-based seed selection, and reusable test helpers.
  • Added end-to-end test coverage for MAIA_v0, CLD, and ILD_FCCee_v01 tracking chains.

ENDRELEASENOTES

This is a first version of a CKF (largely copied from the existing one) for running tracking. It works for MAIA_v0 and should largely be seen as a proof of concept for now. Things that will (almost certainly) be out of scope for this PR:

  • Consideration of material effects
  • Optimized navigation
  • Any form of physics validation

Things that I would still like to tackle:

  • Improved setting of seed selection via DD4hep CellIDs. (The current implementation still carries some Marlin legacy traces around and could be made much more ergonomic)
  • Basic PoCs for other geometries for which we have a geometry conversion (and enough layers to do meaningful tracking, except potentially LUXE).

@tmadlener tmadlener force-pushed the dd4hep-gen3-ckf-tests branch from e7fb9c3 to 7660fa7 Compare March 23, 2026 09:18
@tmadlener tmadlener force-pushed the dd4hep-gen3-ckf-tests branch 2 times, most recently from 2646963 to a1ebf9e Compare April 21, 2026 15:03
@tmadlener

Copy link
Copy Markdown
Member Author

I have removed the test introduced in #39 because it doesn't work due to some geometry issues.

@tmadlener

Copy link
Copy Markdown
Member Author

MAIA_v0 tracking is working in prinicple for the other concepts I will still have to add some test configuration. It's not entirely trivial since everyone needs a simulation and a reconstruction step, where both of them influence each other (e.g. digitization, collection names, etc.). I have opened key4hep/k4FWCore#402 for further discussion, but that might not materialize in time for this PR.

@tmadlener tmadlener force-pushed the dd4hep-gen3-ckf-tests branch 2 times, most recently from 67e9300 to e37ed0a Compare April 27, 2026 19:16
Comment thread k4ActsTracking/include/k4ActsTracking/ACTSAlgBase.hxx Outdated
Comment thread k4ActsTracking/src/components/ACTSSeededCKFTrackingAlg.cxx
Comment thread k4ActsTracking/src/components/ActsGeoSvc.h
Comment thread k4ActsTracking/src/components/Helpers.cxx
Comment thread test/unittests/CMakeLists.txt Outdated
@tmadlener tmadlener force-pushed the dd4hep-gen3-ckf-tests branch from e37ed0a to 86c2f55 Compare April 27, 2026 19:41
@tmadlener tmadlener changed the title [WIP] CKF Tracking based on Gen3 geometry CKF Tracking based on Gen3 geometry Apr 27, 2026
tmadlener and others added 19 commits April 28, 2026 15:58
It looks like using only one event and EvtMax=-1 hides failures somehow
New seeded CKF tracking algorithm that is entirely independent from
ACTSAlgBase. Obtains tracking geometry, magnetic field, and
cellID→surface mapping directly from IActsGeoSvc instead of building
its own geometry from TGeo files.

- CKFTracking.hxx: reusable helpers parseSeedingLayers() and
  makeInitialCovariance() extracted from the existing algorithm
- CKFTrackingAlg.cpp: self-contained algorithm using ActsGeoSvc;
  default-constructs GeometryContext, MagneticFieldContext,
  CalibrationContext as required by the ACTS framework
- Helpers: accept shared_ptr<const MagneticFieldProvider> so both
  algorithms (const and non-const field pointers) can use the helper
- CMakeLists: register CKFTrackingAlg.cpp as a plugin source

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds an options file and CTest entry for the new CKFTrackingAlg that
uses ActsGeoSvc (Blueprint-based geometry) instead of algorithm-level
TGeo file loading. The test runs on the same simulated MAIA data as
the existing reco_MAIA test and verifies that the algorithm initialises
and processes hits without crashing.

SeedingLayers is left empty pending geometry-ID inspection of the Gen3
path; the test exercises the hit-conversion pipeline and CKF setup even
without seeds.
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp Outdated
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp Outdated
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp
Comment thread test/options/ILD_CKFTracking.py
@madbaron

madbaron commented Jun 2, 2026

Copy link
Copy Markdown
Member

The required tests are finally behaving, so I'd plan to merge this PR tomorrow

@madbaron madbaron merged commit 7caa91b into key4hep:main Jun 3, 2026
5 of 7 checks passed
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.

4 participants