In our simulation, we have a framework to attached SDs to any of the volumes in the geometry, and we are also able to define arbitrary “scoring volumes” (not the built-in Geant4 scorers) in a parallel world, in order to record the same kind of complex Hit objects as we used normally.
The use of those “scoring volumes” is somewhat limited in our simulations, so we only recently noticed that they do not appear to function correctly with MT builds (Geant4 10.06.p03-MT in particular).
With verbose printout, I see that our SD is properly created and attached to the parallel-world “scoring volume”, when our ParallelWorld::ConstructSD() function is called.
/tracking/verbose, I see that steps are properly limited at the boundary of one of our “scoring volumes”.
However, the “scoring volume” SD::Hit() function is not being called at those scoring-volume boundaries. In fact, it never gets called at all, neither for boundaries at the parallel-world volume nor for any other steps.
Is this a known problem, where SDs in the parallel world are just not active? Is there an extra action that we need to take with the parallel world to “turn on” SDs associated with the parallel word?