GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — TPC SCD: explicit spline knots for createFromTrackResiduals by matthias-kleiner · Pull Request #16114 · AliceO2Group/AliceO2

Conversation

@matthias-kleiner

@matthias-kleiner matthias-kleiner commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

The spline knots of the FastTransform built from a voxel map were fixed to a knot at every second voxel bin, counted from both ends. With a non-uniform y/x binning (e.g. bins refined at the sector edges and at the sector centre) this skips knots in the refined bins, where the map is steepest, and with an even number of bins the two central bins get no knot at all (48 y/x bins refined at the centre: the FastTransform deviates from the map by up to ~0.4 mm there).

TPCFastSpaceChargeCorrectionHelper::setY2XKnots / setZ2XKnots take the knot positions explicitly, in the coordinate of the voxel binning (y/x scaled to -1..1, z/x to 0..1, as the bin boundaries given to TrackResiduals::setY2XBinning / setZ2XBinning). A row's spline spans its first to its last voxel bin centre, so these two are always knots; knots outside them are dropped with a warning, as are knots closer than half the narrowest voxel bin to their neighbouring knot (the knots are put on an integer grid with 1/10 of the smallest knot distance as step and the spline stores one table entry per grid step, so nearly coinciding knots would make the correction object arbitrarily large). A knot interval without any voxel centre is reported. Without explicit knots (default) the previous rule is used unchanged.

TPCFastTransformInit.C / TPCFastTransformInitCPM.C: optional arguments y2xKnots / z2xKnots (comma-separated); if empty, the user info "y2xKnots" / "z2xKnots" of the input voxel tree is used, so a map can carry its knots next to its binning.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@matthias-kleiner @claude
TPC SCD: explicit spline knots for createFromTrackResiduals
fb5df5b
The spline knots of the FastTransform built from a voxel map were fixed to a knot at every second
voxel bin, counted from both ends. With a non-uniform y/x binning (e.g. bins refined at the sector
edges and at the sector centre) this skips knots in the refined bins, where the map is steepest, and
with an even number of bins the two central bins get no knot at all (48 y/x bins refined at the
centre: the FastTransform deviates from the map by up to ~0.4 mm there).

TPCFastSpaceChargeCorrectionHelper::setY2XKnots / setZ2XKnots take the knot positions explicitly, in
the coordinate of the voxel binning (y/x scaled to -1..1, z/x to 0..1, as the bin boundaries given to
TrackResiduals::setY2XBinning / setZ2XBinning). A row's spline spans its first to its last voxel bin
centre, so these two are always knots; knots outside them are dropped with a warning, as are knots
closer than half the narrowest voxel bin to their neighbouring knot (the knots are put on an integer
grid with 1/10 of the smallest knot distance as step and the spline stores one table entry per grid
step, so nearly coinciding knots would make the correction object arbitrarily large). A knot interval
without any voxel centre is reported. Without explicit knots (default) the previous rule is used
unchanged.

TPCFastTransformInit.C / TPCFastTransformInitCPM.C: optional arguments y2xKnots / z2xKnots
(comma-separated); if empty, the user info "y2xKnots" / "z2xKnots" of the input voxel tree is used, so
a map can carry its knots next to its binning.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@matthias-kleiner
matthias-kleiner requested review from davidrohr, sgorbuno, shahor02 and wiechula as code owners November 12, 2026 14:33

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@davidrohr davidrohr Awaiting requested review from davidrohr davidrohr is a code owner
@sgorbuno sgorbuno Awaiting requested review from sgorbuno sgorbuno is a code owner
@wiechula wiechula Awaiting requested review from wiechula wiechula is a code owner
@shahor02 shahor02 Awaiting requested review from shahor02 shahor02 is a code owner

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@matthias-kleiner
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.