Angle of incidence for optical photon

If you know the volume you’re in (which you will from the Track or Step), then you can go from PV to LV to Solid.

Use the volume’s Touchable (which you can also get from the Step) to get the global-to-local coordinate transformation.

Take the step position, transform it to local coordinates for the volume, and call G4VSolid::SurfaceNormal(pos).

This will return the outward normal at that position, which you can use appropriately to apply Snell’s law.