Memory problem using process/em/setDirectionalSplitting

I want to simulate a X-ray tube, and improve it’s efficiency with biasing (dirctional bremsstrahlung splitting).
If I add the following commands into my run.mac file.

/process/em/setDirectionalSplitting true
/process/em/setDirectionalSplittingTarget 0 0 30 mm # x, y, z components of center
/process/em/setDirectionalSplittingRadius 6 mm
/process/em/setSecBiasing eBrem Target 50 300 keV # region, splitting factor, max energy
/process/em/setSecBiasing Rayl Target 50 300 keV
/process/em/setSecBiasing phot Target 50 300 keV
/process/em/setSecBiasing compt Target 50 300 keV
/process/em/setSecBiasing annihil Target 50 300 keV

The program would use more and more system memory gradually, fanally taking up all of the usable memory, leading to a “segmentation fault” or “Killed”.
I guess it’s because the program forget to delete the photons it do not want to track, leaving them wasting the memory (just like what I did when I tried to modify the UBS example to DBS).
Have anyone met the same problem before? How can I solve it? Or can I get to the people who’s in charge of this function?

1 Like

Hi, this was fixed in Geant4 version 10.6. Are you using an earlier version? If so, could you please try 10.6.

1 Like

Thank you so much. I forgot to mention the Geant4 version I use is 10.5. I’ll have a try, thanks a lot.

Can I ask about the PhysicsList used in this simulation,

Sorry for a late reply.
EMPenelopePhsysics was used, because some articles shown that it’s a little more accurate than others in X-ray energy range, but, not for certain.