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: Refitting algorithm #1940

Merged
merged 15 commits into from
Apr 13, 2023

Conversation

benjaminhuth
Copy link
Member

@benjaminhuth benjaminhuth commented Mar 13, 2023

So far, real refitting of tracks was not possible in the examples framework. The direct-fitter option of the ActsExamples::TrackFittingAlgorithm was broken due to the fact, that only measurement surfaces were added to the surface sequence, and thus e.g. the traversed material could differ.

This adds ActsExamples::RefittingAlgorithm, that uses the new Acts::TrackContainer infrastructure to enable a very simple interface: Just a input container and a output container.

Furthermore, the TrackFittingAlgorithm looses the directFit option. To make this work, also the TrackFitterFunction had to be refactored and was pulled out of the TrackFittingAlgorithm.

@benjaminhuth benjaminhuth added Component - Examples Affects the Examples module Feature Development to integrate a new feature labels Mar 13, 2023
@benjaminhuth benjaminhuth added this to the next milestone Mar 13, 2023
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.

Didn't look through all of it yet. Looks good as far as I can tell, a few remarks here.

Also, can we hold this until after #1939, and move to the DataHandles immediately?

@benjaminhuth benjaminhuth added 🛑 blocked This item is blocked by another item 🚧 WIP Work-in-progress labels Mar 13, 2023
@codecov
Copy link

codecov bot commented Mar 14, 2023

Codecov Report

Merging #1940 (111173c) into main (44cb837) will not change coverage.
The diff coverage is 71.42%.

❗ Current head 111173c differs from pull request most recent head 4193dec. Consider uploading reports for the commit 4193dec to get more accurate results

@@           Coverage Diff           @@
##             main    #1940   +/-   ##
=======================================
  Coverage   49.83%   49.83%           
=======================================
  Files         421      421           
  Lines       23900    23900           
  Branches    10844    10844           
=======================================
  Hits        11910    11910           
  Misses       4367     4367           
  Partials     7623     7623           
Impacted Files Coverage Δ
Core/include/Acts/EventData/MultiTrajectory.hpp 70.97% <71.42%> (ø)

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@benjaminhuth benjaminhuth removed the 🛑 blocked This item is blocked by another item label Mar 24, 2023
@benjaminhuth benjaminhuth removed the 🚧 WIP Work-in-progress label Apr 11, 2023
Copy link
Contributor

@andiwand andiwand left a comment

Choose a reason for hiding this comment

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

looks good to me

@github-actions
Copy link

github-actions bot commented Apr 13, 2023

📊 Physics performance monitoring for 4193dec

Full report
Seeding: seeded, truth estimated, orthogonal
CKF: seeded, truth smeared, truth estimated, orthogonal
IVF: seeded, truth smeared, truth estimated, orthogonal
Ambiguity resolution: seeded, orthogonal
Truth tracking
Truth tracking (GSF)

Vertexing

Vertexing vs. mu
IVF seeded

IVF truth_smeared

IVF truth_estimated

IVF orthogonal

Seeding

Seeding seeded

Seeding truth_estimated

Seeding orthogonal

CKF

CKF seeded

CKF truth_smeared

CKF truth_estimated

CKF orthogonal

Ambiguity resolution

seeded

Truth tracking (Kalman Filter)

Truth tracking

Truth tracking (GSF)

Truth tracking

@kodiakhq kodiakhq bot merged commit 08ef3cc into acts-project:main Apr 13, 2023
35 checks passed
@paulgessinger paulgessinger modified the milestones: next, v25.0.0 Apr 21, 2023
kodiakhq bot pushed a commit that referenced this pull request Apr 27, 2023
I'm currently working on implementing a few different measurement/cluster calibration methods for a bona fide calibration study. The easiest way to run such a study would be to have the option to swap the calibrators on the python side so one does not need to either recompile everytime or duplicate the TrackFitting example for each different methods.

Towards that end, I propose the following changes:

- Rename `MeasurementCalibrator` to `PassThroughCalibrator`;
- Create an abstract base class `MeasurementCalibrator` with a calibrate method which takes a measurement container as input;
- Created a `PairedMeasurementCalibrator` class that binds a calibrator to a `MeasurementContainer`, to pass to the actual fitter;
- Add machinery to instantiate the calibrators outside of the `execute()` loop. 

#1940 introduced a alternate path using a RefittingCalibrator instead of a MeasurementCalibrator. I did _not_ touch this code since I'm not sure if it makes sense to unify it with what I have planned -- any thoughts @benjaminhuth ? I propose to leave this as-is for the time being and re-assess once I push actual calibrators (shortly, hopefully).
@benjaminhuth benjaminhuth deleted the feature/refitting-algorithm branch May 10, 2023 07:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Examples Affects the Examples module Feature Development to integrate a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants