Repository navigation
Conversation
fix(positronium) command names
fix(digitizer): keep sourceID when the interaction volume name is empty
…-output fix(multiphoton) event without output
fix(output): do not index the hit tree vector after the run cleared it
|
Four independent fixes. Three are generic - they concern the ROOT output Each of them is documented separately, with its symptom, its cause, the exact commands to reproduce https://github.com/MateuszBala/opengate-gate-multiphoton-analysis-verification
1. Every simulation writing ROOT output aborted with libstdc++ assertionsReported from outside: with The consequence is worse than the report suggested: the abort happens before
In a plain Release build the same read passes silently and returns a stale but still valid pointer, Cause. Fix. The ordinary Release build was checked as well and still writes the full set of trees. 2. The digitizer reset sourceID when the scattering volume name was empty
if ((*inHC)[i]->GetComptonVolumeName().empty()) {
Digi->SetComptonVolumeName("NULL");
Digi->SetSourceID(-1); // side effect of an empty name
}
if ((*inHC)[i]->GetRayleighVolumeName().empty()) {
Digi->SetRayleighVolumeName("NULL");
Digi->SetSourceID(-1);
}The same code exists in the twin of that method, How it surfaced: with
The same macro with
Fix. The two 3. GateMultiPhotonAnalysis: a false warning, and an event with no detector responseTwo defects in the same branch of Every simulation using Always one event per run, always with Fixed by ending the processing of an event with
An event abandoned by the analysis produced no singles and no coincidences at all. Fixed with a scope guard in an anonymous namespace, The situation does not arise on its own, since GATE stores trajectories for all tracks, so it was
No regression in ordinary running: the same simulation gives the same 305 207 hits and 216 312 4. setPromptPhotonProbabilites renamed - breaking changeThe command configuring the emission probability of the prompt gamma was missing the No alias is registered. A macro using the old name does not merely warn on the new build, it Registering the old name as a deprecated alias with a warning is a two-line addition if the A second, purely cosmetic commit corrects the same misspelling in the text of an error message in VerificationThe repository linked above builds two variants of GATE - the commit this work started from and the
git clone https://github.com/MateuszBala/opengate-gate-multiphoton-analysis-verification.git
cd opengate-gate-multiphoton-analysis-verification
make env
cp external/scripts/environment.sh.template .environment.sh # set GEANT4 and ROOT
make clone-gate
make build-ref-develop && make build-ref-develop-assert
make build-ref-fix && make build-ref-fix-assert
make run-digitizer-scene-assert SIM_DIR=simulations/digitizer/reconstruction # aborts
make run-digitizer-scene-fix-assert SIM_DIR=simulations/digitizer/reconstruction # passes
make run-set SET_DIR=simulations/ref-fix/gate-multi-photon-analysis
make testsNot in this pull requestThe four fixes above are the part of the work that is independent of the multi-photon analysis Two items are documented there and deliberately left out entirely: initialising the remaining |
The fixes are prepared by @MateuszBala:
Detailed description is given in the first comment.
The command name fix: "setPromptPhotonProbabilities" imposes the changes to the benchmark tests (t35 from the list). The change to benchmarks are being prepared now.