feat: Telescope style seeding
PR introduces the first version of the base class, tasked to perform seeding in the telescope-style detectors.
Given a set of SourceLinks the PathSeeder produces a set of seeds. Each seed includes the estimates of the IP parameters (vertex, energy, momentum) and a list of SourceLinks to be considered as candidates for the track hits.
In order to do that PathSeeder employs a list of delegates:
SourceLinkCalibratoris used to convert theSourceLinksattached local hits to global coordinatesPathWidthLookupis used to define theSourceLinkcollection region around the rough track estimate (see below)IntersectionLookupis used to collect the IDs of the surfaces being intersected by the rough track estimate, as well as the intersection coordinatesTrackEstimatoris used to estimate the energy of the track candidate, IP parameters, and the momentum direction at the first tracking layer
And a single interface:
ISourceLinkGridis used to sort theSourceLinks, associated with different telescope layers, into bins that can be used for fast lookup when constructing the seed
The Delegate-based structure of the algorithm allows for quite flexible extensions of the algorithm, thus accommodating for various experiment-specific optimizations. Locally, the algorithm was tested on the telescope geometries of various complexity, in presence and absence of the magnetic field.
This is a first version of the algorithm, so everything is up to discussion here. As soon as the structure of the class is agreed upon, I'll put up PRs with some possible implementations of the Delegate-holding classes, Examples FW algorithms, Python bindings, etc.
The intended use is showcased in the UnitTest coming with the PR.
As a side note, to accommodate the tests had to modify the TestSourceLink a bit, so that it supports the Detector geometry
📊: Physics performance monitoring for 133e026dd58f83a16487f6e042932383b21c24b1
physmon summary
- ✅ Particles fatras
- ✅ Particles geant4
- ✅ Particles ttbar
- ✅ Vertices ttbar
- ✅ Truth tracking (KF)
- ✅ Truth tracking (GSF)
- ✅ Truth tracking (GX2F)
- ✅ CKF | trackfinding | single muon | truth smeared seeding
- ✅ Track Summary CKF | trackfinding | single muon | truth smeared seeding
- ✅ Seeding trackfinding | single muon | truth estimated seeding
- ✅ CKF | trackfinding | single muon | truth estimated seeding
- ✅ Track Summary CKF | trackfinding | single muon | truth estimated seeding
- ✅ Seeding trackfinding | single muon | default seeding
- ✅ CKF | trackfinding | single muon | default seeding
- ✅ Track Summary CKF | trackfinding | single muon | default seeding
- ✅ Seeding trackfinding | single muon | orthogonal seeding
- ✅ CKF | trackfinding | single muon | orthogonal seeding
- ✅ Track Summary CKF | trackfinding | single muon | orthogonal seeding
- ✅ Seeding trackfinding | 4 muon x 50 vertices | default seeding
- ✅ CKF | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ Track Summary CKF | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ Ambisolver | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ IVF notime | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ AMVF gauss notime | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ AMVF grid time | trackfinding | 4 muon x 50 vertices | default seeding
- ✅ Seeding trackfinding | ttbar with 200 pileup | default seeding
- ✅ CKF | trackfinding | ttbar with 200 pileup | default seeding
- ✅ Track Summary CKF | trackfinding | ttbar with 200 pileup | default seeding
- ✅ Ambisolver | trackfinding | ttbar with 200 pileup | default seeding
- ✅ AMVF gauss notime | trackfinding | ttbar with 200 pileup | default seeding
- ✅ AMVF grid time | trackfinding | ttbar with 200 pileup | default seeding
Codecov Report
Attention: Patch coverage is 41.07143% with 33 lines in your changes missing coverage. Please review.
Project coverage is 47.29%. Comparing base (
7e1e819) to head (048f6d4). Report is 51 commits behind head on main.
| Files | Patch % | Lines |
|---|---|---|
| Core/include/Acts/Seeding/PathSeeder.hpp | 36.73% | 5 Missing and 26 partials :warning: |
| ...e/include/Acts/EventData/detail/TestSourceLink.hpp | 66.66% | 1 Missing and 1 partial :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #3300 +/- ##
==========================================
- Coverage 47.31% 47.29% -0.02%
==========================================
Files 512 514 +2
Lines 30437 30492 +55
Branches 14795 14826 +31
==========================================
+ Hits 14400 14422 +22
- Misses 5404 5410 +6
- Partials 10633 10660 +27
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
This is now good to go in.
Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
68.3% Coverage on New Code
0.0% Duplication on New Code