Problem 1952

Summary: Incorrect replacement of mass-world step with parallel-world step in G4OpBoundaryProcess
Product: Geant4 Reporter: Michael Kelsey <kelsey>
Component: processes/opticalAssignee: Marc.Verderi
Status: RESOLVED DUPLICATE    
Severity: major CC: asai
Priority: P4    
Version: 10.2   
Hardware: All   
OS: All   

Description Michael Kelsey 2017-03-16 06:46:16 CET
In G4OpBoundaryProcess.cc lines 179-181, the code checks to see whether a parallel-world step (hStep = G4ParallelWorldProcess::HyperStep()) exists.  If it does, that step _replaces_ the normal (mass-world) step (aStep) passed into PostStepDoIt().

Unfortunately, this is not correct behaviour in general.  One problem for optical physics is that the HyperStep won't have the correct combinations of pre- and post-step points to satisfy the various conditions tested later in the code.  I suspect that to properly treat parallel-world optics, the code is going to have to carry around, and apply tests to, both aStep and hStep.

A second problem is that, at least in 10.02.p03 the HyperStep() is not always properly updated when a mass-world boundary crossing occurs.  I am reporting this issue separately (under processes/scoring).  One consequence of this second issue is that an optical photon can pass through an ingoing surface to a volume without triggering boundary actions, and later bounce around inside that volume when boundary actions are triggered.
Comment 1 asai 2017-06-13 18:03:26 CEST

*** This problem has been marked as a duplicate of problem 1953 ***