Skip to content

feat: Demonstrator for MillePede alignment of ACTS Kalman tracks#5256

Open
goblirsc wants to merge 14 commits intoacts-project:mainfrom
goblirsc:MG_MillePede_demo
Open

feat: Demonstrator for MillePede alignment of ACTS Kalman tracks#5256
goblirsc wants to merge 14 commits intoacts-project:mainfrom
goblirsc:MG_MillePede_demo

Conversation

@goblirsc
Copy link
Copy Markdown
Contributor

@goblirsc goblirsc commented Mar 18, 2026

Add a first demonstrator of MillePede alignment, using existing ACTS Kalman tracks.

--- END COMMIT MESSAGE ---

First step towards adding actual life to the MillePede ❤️ ACTS effort!

After making Mille available as a plugin in we use it to write ACTS-Kalman tracks out into binary files that can be fit with the MillePede package.

This path is simple (as we can re-use existing tracks), but computationally highly inefficient - we have to "undo" the track fit to bring the global covariance matrix of the Kalman tracks into the format expected by Millepede.
This should hence be seen as an initial proof of concept demonstrator.
For real-life usage, the GeneralBrokenLines track refit (planned for ACTS-integration in the near future) will likely be a better choice for the fitter component in the alignment. But the final implementation should be sufficiently modular to work with any fitter nonetheless.

In this MR, we add

  • (algebraic) machinery to translate the Kalman track alignment states to what Mille expects
  • Machinery to loosely emulate how Millepede reads the Mille binaries, allowing to populate ACTS TrackAlignmentStates from Mille binaries
  • an AlignedTelescopeDetector for a simple showcase setup
  • An example algorithm using the new machinery to write (existing) Kalman tracks out into MillePede fit inputs
  • A second example algorithm that will load back the Mille files and run an alignment fit with the ACTS solver. NB: This also fixes the problem of the existing alignment example solver only "seeing" one event at a time.
  • python bindings for the above
  • A unit test ensuring that Mille writing and reading back into ACTS results in consistent alignment problems
  • Steering to run a simple workflow with single muons on a misaligned telescope detector.

The alignment fit itself is performed outside ACTS using the MillePede package. Alternatively, it is possible to read the binaries back and solve using the ACTS tooling.

@goblirsc goblirsc changed the title Feat: Demonstrator for MillePede alignment of ACTS Kalman tracks feat: Demonstrator for MillePede alignment of ACTS Kalman tracks Mar 18, 2026
@goblirsc
Copy link
Copy Markdown
Contributor Author

Wow, the CI even checks the PR title?
I failed really early this time! 😭

@github-actions github-actions bot added this to the next milestone Mar 18, 2026
@github-actions github-actions bot added Component - Examples Affects the Examples module Component - Plugins Affects one or more Plugins labels Mar 18, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 18, 2026

📊: Physics performance monitoring for 38176e7

Full contents

physmon summary

@asalzburger
Copy link
Copy Markdown
Contributor

Amazing!

@goblirsc goblirsc marked this pull request as ready for review March 20, 2026 14:55
@goblirsc
Copy link
Copy Markdown
Contributor Author

Pausing updates for now to allow for review (sorry for the big PR - once the first bits were in place the extra features just kept coming by themselves 😇 )

@goblirsc goblirsc force-pushed the MG_MillePede_demo branch from ff4d2f2 to 38176e7 Compare March 30, 2026 09:59
@sonarqubecloud
Copy link
Copy Markdown

@goblirsc
Copy link
Copy Markdown
Contributor Author

goblirsc commented Apr 1, 2026

Could someone please review this?
image

@paulgessinger
Copy link
Copy Markdown
Member

I can have a look next week. In the meantime, maybe @pbutti or @knutzk could have a look?

@andiwand
Copy link
Copy Markdown
Contributor

andiwand commented Apr 1, 2026

It is also on my list but I didn't get to it yet. Let me also ping the review channel on MM https://mattermost.web.cern.ch/acts/channels/code-review

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 Component - Plugins Affects one or more Plugins

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants