Skip to content

Track extrapolation to ECAL calorimeter surface#64

Open
madbaron wants to merge 17 commits into
mainfrom
calosurface-extrapolation
Open

Track extrapolation to ECAL calorimeter surface#64
madbaron wants to merge 17 commits into
mainfrom
calosurface-extrapolation

Conversation

@madbaron

@madbaron madbaron commented Jun 3, 2026

Copy link
Copy Markdown
Member

BEGINRELEASENOTES

ENDRELEASENOTES

PR aimed at #55.

This PR will make the ACTS tracks directly consumable by the Pandora algorithms (the state at calo is required to do track-to-cluster matching)

The extrapolation to the calorimeter face is currently done with the VoidNavigator outside of the tracking volume. For detector concepts with significant material between the tracking systems and the calorimeters, this simplification will have a non-negligible effect.

I'd plan to change this in a follow-up PR once material handling is introduced throughout the package.

madbaron and others added 9 commits June 3, 2026 14:57
Fixes the pre-commit clang-format CI failure on PR #64.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The earlier clang-format pass used a newer clang-format that realigned the
pre-existing m_initialTrackError_* continuation lines; CI's version disagrees.
Restore the original alignment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
acts tightened the OnLayerReturnsNode concept in BlueprintBuilder.hpp to
require the callback result to be exactly std::shared_ptr<BlueprintNode>
(std::same_as), so unsetXYCoG returning the derived
std::shared_ptr<LayerBlueprintNode> no longer satisfies it and
ElementLayerAssembler::onLayer fails to resolve.

Return the base BlueprintNodePtr instead; `return layer;` upcasts implicitly.
This satisfies the current concept and remains valid if acts-project/acts#5563
(which relaxes same_as -> convertible_to) is merged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@madbaron

madbaron commented Jun 13, 2026

Copy link
Copy Markdown
Member Author

A couple of plots to validate the extrapolation against RefitFinal (using the MAIA geometry)

corr_radius corr_z res_drt res_dx res_dy res_dz

@madbaron madbaron changed the title [WIP] Track extrapolation to ECAL calorimeter surface Track extrapolation to ECAL calorimeter surface Jun 13, 2026
@madbaron madbaron requested a review from paulgessinger June 14, 2026 11:31

@paulgessinger paulgessinger left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not completely sure I understand the different between the ACTSSeededCKFTrackingAlg and the CKFTrackingAlg.

Otherwise, this is a way to do it. Pre-resolving the candidates by straight line intersect can sometimes fail. Another way (although I haven't tested this yet), would be to include the calo target surfaces as external surfaces in a regular navigation which includes the geometry. You could then attach a custom actor that terminates as soon as one of the surfaces in question is hit. That way, you wouldn't have to pre-resolve the candidates at all, and it would cleanly integrate the material handling, if needed.

Comment thread k4ActsTracking/src/components/ACTSSeededCKFTrackingAlg.cxx
Comment thread k4ActsTracking/src/components/CKFTrackingAlg.cpp Outdated
Comment thread k4ActsTracking/src/components/Helpers.cxx
@madbaron

Copy link
Copy Markdown
Member Author
res_drt res_dx res_dy res_dz

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants