Skip to content

Commit f47561c

Browse files
authored
Merge pull request #112 from cis-imaging/fixing_old_benchmark_t17
Improving descriptions to old benchmark t17 and new benchmark t35
2 parents b02b219 + b801a5a commit f47561c

2 files changed

Lines changed: 27 additions & 13 deletions

File tree

t17_extended_source/readme.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
# Benchmark for ExtendedVSource
1+
# Benchmark for ExtendedVSource (legacy)
2+
3+
> **Note:** `ExtendedVSource` is the legacy implementation of positronium gamma emission.
4+
> It has been superseded by `PositroniumSource`, which is tested in benchmark `t35_positronium_source`.
5+
> `ExtendedVSource` is retained for backward compatibility but is no longer actively developed.
26
37
Runs 4 simulations for 4 different decays:
48

t35_positronium_source/readme.md

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,31 @@
1-
# Benchmark for PositroniumSource based on the ExtendedVSource benchmark
1+
# Benchmark for PositroniumSource
22

3-
Runs 4 simulations for 4 different decays:
3+
`PositroniumSource` is the current implementation of positronium gamma emission in Gate, superseding the legacy `ExtendedVSource` (benchmarked in `t17_extended_source`).
4+
Key improvements over the legacy source:
45

5-
* pPs --> 2 gammas
6-
* pPs* --> 2 gammas + prompt gamma
7-
* oPs --> 3 gammas
8-
* oPs* --> 3gammas + prompt gamma
6+
* Configurable positronium fractions, lifetimes, and decay kinds per component via dedicated macro commands.
7+
* Support for oPs pick-off/quenching (a `k2Gamma` channel from an oPs component), which the legacy source did not model.
8+
* Optional positron range smearing.
9+
* Explicit `setPositronInteractions` command for precise ROOT-level tagging of each decay channel as `kParaPs`, `kOrthoPs`, or `kDirect`. When this command is omitted, `sourceType` in the ROOT output defaults to `1` (generic source gamma); use `setPositronInteractions` when per-species classification is needed in analysis.
910

10-
where pPs is para-positronium, oPs is ortho-positronium, prompt gamma is deexcitation gamma.
11+
## Simulated decays
1112

12-
We simulate a point source with spherical detector.
13+
Runs 4 simulations for 4 different decay configurations:
1314

14-
The test compares reference energy deposition distributions with ones generated during simulations and validates them by using the two-sample Kolmogorov-Smirnov test.
15+
* pPs → 2 gammas
16+
* pPs\* → 2 gammas + prompt gamma
17+
* oPs → 3 gammas
18+
* oPs\* → 3 gammas + prompt gamma
1519

16-
Null hypothesis is that two two distributions are identical with p-value threshold equals 0.05 (5%).
20+
where pPs is para-positronium, oPs is ortho-positronium, and the prompt gamma is a deexcitation gamma emitted alongside the positronium decay.
1721

18-
Additionally, if data contains signals from other particles test fails because we do not expect them to be present for given macros.
22+
A point source at the origin is surrounded by a spherical scintillator detector. Each run simulates 1,000,000 primaries.
23+
24+
## Validation
25+
26+
The test compares reference energy deposition distributions (stored in `data/`) with those generated during simulation, validated using the two-sample Kolmogorov–Smirnov test (p-value threshold 0.05).
27+
28+
An additional check verifies that all recorded hits originate from the expected source gammas (`sourceType == 1`). The test fails if any KS test fails or if unexpected particles are detected.
1929

2030
## How to run
2131

@@ -34,7 +44,7 @@ python3 runAnalysis.py output
3444
Or run both steps at once from the `GateBenchmarks/` root:
3545

3646
```bash
37-
./runBenchmark.py -t t31_positronium_source
47+
./runBenchmark.py -t t35_positronium_source
3848
```
3949

4050
## Expected results

0 commit comments

Comments
 (0)