Skip to content

store origin navState instead of G4TouchableHandle in HostTrackData#487

Open
SeverinDiederichs wants to merge 1 commit intoapt-sim:masterfrom
SeverinDiederichs:store_originNavState_overTouchableHandle
Open

store origin navState instead of G4TouchableHandle in HostTrackData#487
SeverinDiederichs wants to merge 1 commit intoapt-sim:masterfrom
SeverinDiederichs:store_originNavState_overTouchableHandle

Conversation

@SeverinDiederichs
Copy link
Collaborator

@SeverinDiederichs SeverinDiederichs commented Feb 13, 2026

This PR fixes the origin Touchable handling in the HostTrackData Mapper.

Before, there was a ! missing in this if-Statement:

  if (hostTData.originTouchableHandle) {
    leakedTrack->SetOriginTouchableHandle(*hostTData.originTouchableHandle);
}

Thus, the originTouchableHandle was never set. Fixing it, a major run time regression was found.
Indeed creating G4TouchableHandle is very expensive.
Therefore, now the vecgeom::NavState is stored in the hostTrackData and the G4TouchableHandle is only created when the track is returned to G4 from the GPU and not already per step.

This mitigates the impact significantly. In the extreme case of testEm3 where each second layer is a GPU region, the overhead was drastically reduced, in normal cases it was fully mitigated.

As the origin Touchable so far is only needed by ATLAS, one might see if it should be guarded as a compile time option.

Example Master (with origin touchable) No origin touchable PR (with origin touchable)
Em3 Regions 142.28 89.9975 95.486
Em3 191.196 116.307 116.413

It was verified that this PR

  • Changes physics results
  • Does not change physics results

@phsft-bot
Copy link

Can one of the admins verify this patch?

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