Fix the dose values in egs++ 3ddose output #645
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix the value of dose in 3ddose files generated from egs++ apps using
egs_dose_scoring
. The dose was not being scaled by the correct mass/density of materials, because thegetMass
function in the ND geometry was not functioning properly for XYZ geometries unless they were defined using an egsphant file or density file. In other words, the dose was wrong if the XYZ geometry boundaries were defined using "slabs" or "planes".This is a critical bug in the value of dose reported and has been an issue since the ability to generate 3ddose files was added to
egs_dose_scoring
. Any old dose in 3ddose files generated this way should be considered unreliable, due to the undefined value of density, and those simulations should be repeated.Note that the doses reported by
egs_dose_scoring
by material, or by region were correct. Only the dose in 3ddose files fromegs_dose_scoring
has this issue. All 3ddose files from DOSXYZnrc are not affected.Big thanks to our reddit user u/5xum for reporting this issue, and @marenaud for determining it was a bug.