acts icon indicating copy to clipboard operation
acts copied to clipboard

feat: Variable size measurement for Examples

Open andiwand opened this issue 1 year ago • 7 comments

This is an attempt to implement a variable size measurement as an alternative to the fixed size measurement. Currently our Examples framework is using a variant over fixed size measurements to cope with measurements of different dimensions. This obfuscates the code a bit since accessing the actual measurement requires a visitor pattern to acquire the dimensional typed measurement.

Here I propose to switch this out for a variable size measurement which allocates the same amount of memory but stores the dimension as a direct member instead of pushing this detail to std::variant.

blocked by

  • https://github.com/acts-project/acts/pull/3192
  • https://github.com/acts-project/acts/pull/3331

andiwand avatar Apr 16 '24 15:04 andiwand

I saw a minor performance improvement with that but not as much as I hoped for. It is still not clear to me how we end up spending so much time in the pass through calibrator.

@paulgessinger suggested to tweak the calibrator to avoid the virtual function dispatch

andiwand avatar Apr 16 '24 15:04 andiwand

Codecov Report

Attention: Patch coverage is 72.56637% with 31 lines in your changes missing coverage. Please review.

Project coverage is 47.68%. Comparing base (cf9d872) to head (f2a1acb). Report is 20 commits behind head on main.

:exclamation: Current head f2a1acb differs from pull request most recent head 5f373bf

Please upload reports for the commit 5f373bf to get more accurate results.

Files Patch % Lines
Core/include/Acts/EventData/Measurement.hpp 73.07% 1 Missing and 6 partials :warning:
Core/include/Acts/EventData/TrackStateProxy.hpp 60.00% 0 Missing and 6 partials :warning:
Core/include/Acts/Utilities/detail/Subspace.hpp 87.80% 0 Missing and 5 partials :warning:
...ts/EventData/detail/MultiTrajectoryTestsCommon.hpp 0.00% 0 Missing and 4 partials :warning:
Core/include/Acts/EventData/MultiTrajectory.hpp 85.00% 0 Missing and 3 partials :warning:
...e/include/Acts/EventData/detail/TestSourceLink.hpp 25.00% 0 Missing and 3 partials :warning:
.../include/Acts/TrackFinding/MeasurementSelector.ipp 0.00% 0 Missing and 2 partials :warning:
...clude/Acts/EventData/detail/GenerateParameters.hpp 0.00% 0 Missing and 1 partial :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3107      +/-   ##
==========================================
+ Coverage   47.24%   47.68%   +0.44%     
==========================================
  Files         508      507       -1     
  Lines       30041    29214     -827     
  Branches    14586    14013     -573     
==========================================
- Hits        14192    13932     -260     
+ Misses       5375     5262     -113     
+ Partials    10474    10020     -454     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar May 27 '24 15:05 codecov[bot]

Are we moving forward with this after #3282?

paulgessinger avatar Jun 21 '24 06:06 paulgessinger

I think this might still be worth to be put into the examples and use it by default since it less complicated than the variant thingy. I have another branch somewhere where I built a container similar to what you did with the track EDM. That one needs a bit more time.

andiwand avatar Jun 21 '24 07:06 andiwand

Ok up to you. I'm just wondering how much effort we should put into the examples EDM at this point.

paulgessinger avatar Jun 21 '24 13:06 paulgessinger

image no performance changes observed

andiwand avatar Aug 07 '24 07:08 andiwand

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Coverage on New Code (required ≥ 25%)
0.0% Line Coverage on New Code (required ≥ 50%)

See analysis details on SonarCloud

sonarqubecloud[bot] avatar Aug 07 '24 14:08 sonarqubecloud[bot]

:white_check_mark: Athena integration test results [3a8a0e365db45af5f251c70f008cb71becf64c65]

:white_check_mark: All tests successful

status job report
:green_circle: report_pull_request
:green_circle: run_art_test: test_data18_13TeV_1000evt
:green_circle: run_art_test: test_ttbarPU40_reco
:green_circle: test_ActsDumpGeometryIdentifiers
:green_circle: test_ActsCheckObjectCountsCachedWorkflow
:green_circle: test_ActsCheckObjectCountsWorkflow
:green_circle: test_ActsEFTrackFit
:green_circle: test_ActsPersistifySeeds
:green_circle: test_ActsBenchmarkWithSpot
:green_circle: test_ActsAnalogueClustering
:green_circle: test_ActsWorkflowHeavyIons
:green_circle: test_ActsWorkflowFastTracking
:green_circle: test_ActsWorkflowCached
:green_circle: test_ActsWorkflow
:green_circle: test_ActsValidateAmbiguityResolution
:green_circle: test_ActsValidateResolvedTracks
:green_circle: test_ActsValidateTracks
:green_circle: test_ActsValidateActsCoreSpacePoints
:green_circle: test_ActsValidateActsSpacePoints
:green_circle: test_ActsValidateSeeds
:green_circle: test_ActsValidateOrthogonalSeeds
:green_circle: test_ActsValidateClusters
:green_circle: test_ActsPersistifyEDM
:green_circle: test_ActsGSFRefitting
:green_circle: test_ActsKfRefitting
:green_circle: test_ActsExtrapolationAlgTest
:green_circle: test_ActsITkTest
:green_circle: run_workflow_tests_run4_mc
:green_circle: run_workflow_tests_run2_mc
:green_circle: run_workflow_tests_run2_data
:green_circle: run_workflow_tests_run3_mc
:green_circle: run_workflow_tests_run3_data
:green_circle: run_unit_tests

acts-project-service avatar Aug 08 '24 10:08 acts-project-service