Skip to content

feat: Python-only histogram writer and plotting utilities#5276

Draft
benjaminhuth wants to merge 30 commits intoacts-project:mainfrom
benjaminhuth:feature/boost-hist-python-binding
Draft

feat: Python-only histogram writer and plotting utilities#5276
benjaminhuth wants to merge 30 commits intoacts-project:mainfrom
benjaminhuth:feature/boost-hist-python-binding

Conversation

@benjaminhuth
Copy link
Member

No description provided.

@github-actions github-actions bot added this to the next milestone Mar 22, 2026
@github-actions github-actions bot added the Component - Examples Affects the Examples module label Mar 22, 2026
@benjaminhuth benjaminhuth force-pushed the feature/boost-hist-python-binding branch from 81acf9e to bd73cb3 Compare March 23, 2026 10:26
@github-actions
Copy link
Contributor

github-actions bot commented Mar 23, 2026

📊: Physics performance monitoring for 32f9389

Full contents

physmon summary

benjaminhuth and others added 19 commits March 23, 2026 17:08
After acts-project#5223 I cannot locally compile `Examples/Detectors/MuonSpectrometerMockupDetector/src/GeoMuonMockupExperiment.cpp` anymore. I suspect that the captured lambda does not trigger the type switch correctly while using `auto` does because the lambda will be effectively templated.
After we fully migrated to the new non-templated seeding and space point algorithms and EDM it is time to deprecate the templated ones. Apart from this tests are already removed. A future breaking change will remove the code completely and rename the new implementation to remove the `2`, for examples `SpacePointContainer2` -> `SpacePointContainer`.

Quick update guide:
- `SeedFinder` -> `TripletSeeder`
- `CylindricalSpacePointGrid` -> `CylindricalSpacePointGrid2`
- `Seed` -> `SeedContainer2`, `SeedProxy2`
- new space point EDM `SpacePointContainer2`, `SpacePointProxy2`
- `SpacePointBuilder` -> `PixelSpacePointBuilder`
- `StripSpacePointBuilder` -> `StripSpacePointBuilder`

Moving our Examples from the old EDM to the new one was done here acts-project#5088
Fixes the association of spacepoints to tracks that was broken since acts-project#5088.

Also improve python scripts and add track finder performance writer and track selection to have meaningful metrics.
Also put the schedule on the weekend so reviewers won't get bored on Sundays and merge everything until Monday morning.
This moves the subspace encoding / decoding into headers that are located with the EDM.
… 26.1.0 to 26.3.1 (acts-project#5273)

Bumps [https://github.com/psf/black-pre-commit-mirror](https://github.com/psf/black-pre-commit-mirror) from 26.1.0 to 26.3.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/psf/black-pre-commit-mirror/commit/fa505ab9c3e0fedafe1709fd7ac2b5f8996c670d"><code>fa505ab</code></a> black 26.3.1</li>
<li><a href="https://github.com/psf/black-pre-commit-mirror/commit/044edd3b57c805fa7a0165b7936d44f6e56ecfd8"><code>044edd3</code></a> black 26.3.0</li>
<li>See full diff in <a href="https://github.com/psf/black-pre-commit-mirror/compare/26.1.0...26.3.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=https://github.com/psf/black-pre-commit-mirror&package-manager=pre_commit&previous-version=26.1.0&new-version=26.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
…from v22.1.0 to 22.1.1 (acts-project#5272)

Bumps [https://github.com/pre-commit/mirrors-clang-format](https://github.com/pre-commit/mirrors-clang-format) from v22.1.0 to 22.1.1.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pre-commit/mirrors-clang-format/commit/88c364bab316f4b6b18f6c298133bbbf32d7cd15"><code>88c364b</code></a> Mirror: 22.1.1</li>
<li>See full diff in <a href="https://github.com/pre-commit/mirrors-clang-format/compare/v22.1.0...v22.1.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=https://github.com/pre-commit/mirrors-clang-format&package-manager=pre_commit&previous-version=v22.1.0&new-version=22.1.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
…to 0.26.1 (acts-project#5274)

Bumps [https://github.com/BlankSpruce/gersemi](https://github.com/BlankSpruce/gersemi) from 0.26.0 to 0.26.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/BlankSpruce/gersemi/releases">https://github.com/BlankSpruce/gersemi's releases</a>.</em></p>
<blockquote>
<h2>0.26.1</h2>
<h2>Added</h2>
<ul>
<li>Support for new keywords in native commands available in CMake 4.3.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/BlankSpruce/gersemi/blob/master/CHANGELOG.md">https://github.com/BlankSpruce/gersemi's changelog</a>.</em></p>
<blockquote>
<h2>[0.26.1] 2026-03-13</h2>
<h3>Added</h3>
<ul>
<li>Support for new keywords in native commands available in CMake 4.3.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/BlankSpruce/gersemi/commit/79ddf2c9f3a84d766fce4e39fb2f83eac62b34f7"><code>79ddf2c</code></a> Release 0.26.1</li>
<li>See full diff in <a href="https://github.com/BlankSpruce/gersemi/compare/0.26.0...0.26.1">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=https://github.com/BlankSpruce/gersemi&package-manager=pre_commit&previous-version=0.26.0&new-version=0.26.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>
Requires a new module map file due to changes in the definition of the
geometric cuts. For now, the new patched module map files have the
min/max values of the affected `deta` and `diff_dydx` cuts inflated to
`+/- inf` to avoid regeneration of the module map files.

Should go in after acts-project#5263 

--- END COMMIT MESSAGE ---

Any further description goes here, @-mentions are ok here!

- Use a *conventional commits* prefix: [quick
summary](https://www.conventionalcommits.org/en/v1.0.0/#summary)
- We mostly use `feat`, `fix`, `refactor`, `docs`, `chore` and `build`
types.
- A milestone will be assigned by one of the maintainers

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…project#5243)

Generalizes external surfaces from `Navigator::Options` to `NavigatorPlainOptions` which is the base for all our navigators. This way all navigators fulfill the interface necessary to deal with external surfaces. The `DirectNavigator` now also uses this central external surface list.

Also
- adapt `Navigator` to handle the new option vs the previous 2 lists
- rename `Navigator::State::reset` to `resetForRenavigation`
- rename `insertExternalSurface` to `appendExternalSurface` to hit that order is important
- improve `appendExternalSurface` doc
- downstream changes
@benjaminhuth benjaminhuth force-pushed the feature/boost-hist-python-binding branch from 88798d4 to e147061 Compare March 23, 2026 19:03
@sonarqubecloud
Copy link

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants