-
Notifications
You must be signed in to change notification settings - Fork 173
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
feat: Telescope style seeding #3300
feat: Telescope style seeding #3300
Conversation
Codecov ReportAttention: Patch coverage is
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 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is in a first really good state, there's the one decision on shielding the code from Experimental
which I think we should at least do only at one stage.
The second comment is that I think we can make use the same logic frame for even more general geometries (it looks like everything is practically prepared for this).
This is now good to go in. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly minor points.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Main points were addressed, I'm okay to move ahead with this.
Quality Gate passedIssues Measures |
PR introduces the first version of the base class, tasked to perform seeding in the telescope-style detectors.
Given a set of
SourceLink
s thePathSeeder
produces a set of seeds. Each seed includes the estimates of the IP parameters (vertex, energy, momentum) and a list ofSourceLink
s to be considered as candidates for the track hits.In order to do that
PathSeeder
employs a list of delegates:SourceLinkCalibrator
is used to convert theSourceLinks
attached local hits to global coordinatesPathWidthLookup
is used to define theSourceLink
collection region around the rough track estimate (see below)IntersectionLookup
is used to collect the IDs of the surfaces being intersected by the rough track estimate, as well as the intersection coordinatesTrackEstimator
is used to estimate the energy of the track candidate, IP parameters, and the momentum direction at the first tracking layerAnd a single interface:
ISourceLinkGrid
is used to sort theSourceLink
s, associated with different telescope layers, into bins that can be used for fast lookup when constructing the seedThe 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 theDetector
geometry