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: Combine material, measurement and hole handling in Core CKF filter #3723

Conversation

andiwand
Copy link
Contributor

@andiwand andiwand commented Oct 11, 2024

Combines the handling of material, measurements and holes in the Core CKF.


This pull request includes several changes to the CombinatorialKalmanFilter class in the Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp file to improve error handling, state management, and logging. Additionally, there is a minor change in the MeasurementSelector class to handle empty measurement candidates more gracefully.

Error Handling and State Management:

  • Added checks and logging for empty active branches to ensure the filter stops correctly when no branches are active. (Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp) [1] [2]
  • Modified the filter to reset and stop properly when all branches are stopped or when certain conditions are met, improving the robustness of the filtering process. (Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp) [1] [2]

Logging Improvements:

  • Enhanced logging to provide more detailed information about the state transitions and decisions made during the filtering process. (Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp) [1] [2] [3]

Code Simplification and Cleanup:

  • Simplified the handling of material and measurement surfaces by refactoring conditional checks and removing redundant code. (Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp) [1] [2]

Minor Change in MeasurementSelector:

  • Updated the MeasurementSelector::select method to return a success result when no measurement candidates are found, instead of returning an error. (Core/include/Acts/TrackFinding/MeasurementSelector.ipp)

@andiwand andiwand added this to the next milestone Oct 11, 2024
@andiwand
Copy link
Contributor Author

cc @paulgessinger @goetzgaycken

@github-actions github-actions bot added Component - Core Affects the Core module Track Finding labels Oct 11, 2024
Copy link

github-actions bot commented Oct 14, 2024

📊: Physics performance monitoring for b433310

Full contents

physmon summary

@andiwand
Copy link
Contributor Author

I observe similar CPU performance against main

Copy link

sonarcloud bot commented Oct 14, 2024

@kodiakhq kodiakhq bot merged commit e3b33cc into acts-project:main Oct 14, 2024
42 checks passed
@andiwand andiwand deleted the refactor-ckf-combine-filter-material-and-measurement-and-hole branch October 14, 2024 17:09
@paulgessinger paulgessinger modified the milestones: next, v37.1.0 Oct 16, 2024
Rosie-Hasan pushed a commit to Rosie-Hasan/acts that referenced this pull request Nov 13, 2024
… `filter` (acts-project#3723)

Combines the handling of material, measurements and holes in the Core CKF.

---

This pull request includes several changes to the `CombinatorialKalmanFilter` class in the `Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp` file to improve error handling, state management, and logging. Additionally, there is a minor change in the `MeasurementSelector` class to handle empty measurement candidates more gracefully.

### Error Handling and State Management:

* Added checks and logging for empty active branches to ensure the filter stops correctly when no branches are active. (`Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp`) [[1]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09R583-R590) [[2]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09R660-R673)
* Modified the filter to reset and stop properly when all branches are stopped or when certain conditions are met, improving the robustness of the filtering process. (`Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp`) [[1]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L592-R600) [[2]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L623-L642)

### Logging Improvements:

* Enhanced logging to provide more detailed information about the state transitions and decisions made during the filtering process. (`Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp`) [[1]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L716-R761) [[2]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L749-L925) [[3]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L950-R907)

### Code Simplification and Cleanup:

* Simplified the handling of material and measurement surfaces by refactoring conditional checks and removing redundant code. (`Core/include/Acts/TrackFinding/CombinatorialKalmanFilter.hpp`) [[1]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L716-R761) [[2]](diffhunk://#diff-55dd901875f5a87b6a9fee495de245296efbfd45aa9f9483036bcd299a277e09L749-L925)

### Minor Change in MeasurementSelector:

* Updated the `MeasurementSelector::select` method to return a success result when no measurement candidates are found, instead of returning an error. (`Core/include/Acts/TrackFinding/MeasurementSelector.ipp`)
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 Track Finding
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants