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

refactor!: Fitters use loggers more consistently #1727

Merged
merged 24 commits into from
Dec 19, 2022

Conversation

paulgessinger
Copy link
Member

First follow up to #1724 (includes that PR as well), which switches the KF, CKF, GSF and GX2F to use Logger directly, getting rid of the LoggerWrapper. This uses the new clone mechanism to create child loggers for the actor.

To remove the logger instance from the propagation options, I had to change all the actors and aborters, to take the logger as an explicit argument. I changed the ActionList and AbortList to just forward any arguments that are passed into the call operator, as that should be more flexible. Since this makes the sort-of-concept-style call signature checks very complex, I tentatively removed those as well now. I think it's fine to drop these, they don't provide too much value here, and the action and abort list are in need of an actual reimplementation anyway.

@paulgessinger paulgessinger added Component - Core Affects the Core module 🛑 blocked This item is blocked by another item labels Dec 9, 2022
@paulgessinger paulgessinger added this to the next milestone Dec 9, 2022
@paulgessinger paulgessinger removed the 🛑 blocked This item is blocked by another item label Dec 13, 2022
@codecov
Copy link

codecov bot commented Dec 13, 2022

Codecov Report

Merging #1727 (141f18c) into main (9758692) will decrease coverage by 0.13%.
The diff coverage is 68.00%.

@@            Coverage Diff             @@
##             main    #1727      +/-   ##
==========================================
- Coverage   49.28%   49.14%   -0.14%     
==========================================
  Files         395      395              
  Lines       21810    21800      -10     
  Branches     9929     9953      +24     
==========================================
- Hits        10748    10713      -35     
- Misses       4179     4187       +8     
- Partials     6883     6900      +17     
Impacted Files Coverage Δ
...ore/include/Acts/Propagator/MaterialInteractor.hpp 39.72% <ø> (-0.82%) ⬇️
.../include/Acts/Propagator/MultiEigenStepperLoop.ipp 31.25% <0.00%> (-8.93%) ⬇️
Core/include/Acts/Propagator/SurfaceCollector.hpp 57.14% <ø> (-1.95%) ⬇️
Core/include/Acts/Propagator/VolumeCollector.hpp 0.00% <ø> (ø)
.../include/Acts/Propagator/detail/LoopProtection.hpp 42.10% <ø> (-2.90%) ⬇️
.../include/Acts/Propagator/detail/SteppingLogger.hpp 41.66% <ø> (ø)
.../include/Acts/TrackFinding/MeasurementSelector.hpp 38.09% <ø> (ø)
...e/Acts/TrackFitting/detail/KalmanUpdateHelpers.hpp 12.28% <ø> (-2.98%) ⬇️
...clude/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp 80.00% <ø> (ø)
Core/src/Material/SurfaceMaterialMapper.cpp 7.11% <0.00%> (ø)
... and 31 more

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

@github-actions
Copy link

github-actions bot commented Dec 13, 2022

📊 Physics performance monitoring for 141f18c

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

@paulgessinger
Copy link
Member Author

I would propose overriding the coverage check here.

Copy link
Contributor

@tboldagh tboldagh left a comment

Choose a reason for hiding this comment

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

No significant comments.
Maybe one more philosophical. Should the logger be const in fact?
I.e. it is all about changing the state/side effects. I guess it has to in order to be usable in const methods.

@paulgessinger
Copy link
Member Author

No significant comments.
Maybe one more philosophical. Should the logger be const in fact?
I.e. it is all about changing the state/side effects. I guess it has to in order to be usable in const methods.

You're right that it technically has side-effects. The original decision predates me ( 😉 ) but I think the const is just used to communicate that it's safe to call from const methods, which it should be.

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.

took a quick look - I think that makes a lot of sense

Core/include/Acts/TrackFitting/KalmanFitter.hpp Outdated Show resolved Hide resolved
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.

lets get this in

@paulgessinger paulgessinger merged commit dd5a089 into acts-project:main Dec 19, 2022
@paulgessinger paulgessinger deleted the refactor/logger-clients branch December 19, 2022 12:16
@paulgessinger paulgessinger modified the milestones: next, v22.0.0 Dec 21, 2022
CarloVarni pushed a commit to CarloVarni/acts that referenced this pull request Dec 22, 2022
First follow up to acts-project#1724 (includes that PR as well), which switches the
KF, CKF, GSF and GX2F to use `Logger` directly, getting rid of the
`LoggerWrapper`. This uses the new clone mechanism to create child
loggers for the actor.

To remove the logger instance from the propagation options, I had to
change all the actors and aborters, to take the logger as an explicit
argument. I changed the ActionList and AbortList to just forward any
arguments that are passed into the call operator, as that should be more
flexible. Since this makes the sort-of-concept-style call signature
checks very complex, I tentatively removed those as well now. I think
it's fine to drop these, they don't provide too much value here, and the
action and abort list are in need of an actual reimplementation anyway.
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants