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

feat: Telescope style seeding #3300

Merged
merged 40 commits into from
Aug 22, 2024

Conversation

ssdetlab
Copy link
Contributor

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:

  • SourceLinkCalibrator is used to convert the SourceLinks attached local hits to global coordinates
  • PathWidthLookup is used to define the SourceLink 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 coordinates
  • TrackEstimator is used to estimate the energy of the track candidate, IP parameters, and the momentum direction at the first tracking layer

And a single interface:

  • ISourceLinkGrid is used to sort the SourceLinks, 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

Copy link

github-actions bot commented Jun 17, 2024

📊: Physics performance monitoring for 133e026

Full contents

physmon summary

@AJPfleger AJPfleger added this to the next milestone Jun 17, 2024
Copy link

codecov bot commented Jun 17, 2024

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 ⚠️
...e/include/Acts/EventData/detail/TestSourceLink.hpp 66.66% 1 Missing and 1 partial ⚠️
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.
📢 Have feedback on the report? Share it here.

@asalzburger asalzburger self-requested a review July 18, 2024 04:22
Copy link
Contributor

@asalzburger asalzburger left a 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).

Core/include/Acts/EventData/detail/TestSourceLink.hpp Outdated Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Outdated Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Show resolved Hide resolved
Core/include/Acts/EventData/detail/TestSourceLink.hpp Outdated Show resolved Hide resolved
@paulgessinger paulgessinger modified the milestones: next, v36.0.0 Jul 18, 2024
@asalzburger asalzburger self-requested a review August 15, 2024 07:44
asalzburger
asalzburger previously approved these changes Aug 15, 2024
@asalzburger
Copy link
Contributor

This is now good to go in.

Copy link
Member

@paulgessinger paulgessinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly minor points.

Tests/UnitTests/Core/Seeding/PathSeederTest.cpp Outdated Show resolved Hide resolved
Tests/UnitTests/Core/Seeding/PathSeederTest.cpp Outdated Show resolved Hide resolved
Tests/UnitTests/Core/Seeding/PathSeederTest.cpp Outdated Show resolved Hide resolved
Tests/UnitTests/Core/Seeding/PathSeederTest.cpp Outdated Show resolved Hide resolved
Core/include/Acts/Seeding/ISourceLinkGrid.hpp Outdated Show resolved Hide resolved
Core/include/Acts/Seeding/PathSeeder.hpp Show resolved Hide resolved
paulgessinger
paulgessinger previously approved these changes Aug 21, 2024
Copy link
Member

@paulgessinger paulgessinger left a 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.

Core/include/Acts/Seeding/PathSeeder.hpp Outdated Show resolved Hide resolved
Copy link

@kodiakhq kodiakhq bot merged commit 5c46e0d into acts-project:main Aug 22, 2024
42 checks passed
@paulgessinger paulgessinger modified the milestones: next, v36.2.0 Aug 26, 2024
@ssdetlab ssdetlab deleted the telescope-style-seeding branch October 11, 2024 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Core Affects the Core module Seeding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants