celeritas icon indicating copy to clipboard operation
celeritas copied to clipboard

Track ORANGE geometry only on active geometry level

Open sethrj opened this issue 2 months ago • 0 comments

Unlike KENO, Geant4 geometry does not support the implicit truncation of child CSG objects. All volumes are strictly non-overlapping, which means that in theory, the only surfaces that can be crossed are those in a volume and its immediate children.

ORANGE currently tracks on all universe levels simultaneously, eliminating the outer boundaries of child universes since they are duplicates of the "truncating" parent universe. This is memory expensive and inefficient for HEP.

For the Geant4 representation, each state need only navigate using a stack of universe IDs, a local tracker, and a detailed mapping of parent->child universe boundaries (needed for #1260). We would want both a local position+direction for tracking, and a global position+direction for the rest of the code. (Internal note: this is similar to what GG did in SCALE. It required a "polarization" vector to correctly manage transformations; we could perhaps use quaternions for local tracking?)

sethrj avatar Oct 07 '25 17:10 sethrj