Attention

** Sign up for TOPAS Announcements Email List**
Get updates on user meetings, code releases, and more.

Volume Scorers#

Here are the available volume scorers:

Quantity

Description

DoseToMedium

sum of energy deposits divided by mass

DoseToWater

from energy-dependent stopping power conversion (see below)

DoseToMaterial

from energy-dependent stopping power conversion (see below)

TrackLengthEstimator

dose calculated using the track-length estimator technique

AmbientDoseEquivalent

sum of fluence times fluence-to-effective dose conversion coefficients

EnergyDeposit

sum of energy deposits

Fluence

sum of step lengths divided by volume

EnergyFluence

sum of step lengths times energy divided by volume

StepCount

counting number of Geant4 steps in the volume

OpticalPhotonCount

fills an ntuple with information about optical photons seen in volume

OriginCount

counts how many particles originate in a given component

Charge

counting method described below

EffectiveCharge

counting method described below

ProtonLET

various methods described below

Volume Scorers must indicate the relevant Component:

s:Sc/MyScorer/Component = "Phantom"

When your scoring component is the Parent of other components, you have the option to set scoring to record particles not only in the parent component, but also in its children:

b:Sc/MyScorer/PropagateToChildren = "True"

This action is recursive to all levels of subcomponents.

DoseToMaterial:#

The use of this scorer requires that you specify the Material:

s:Sc/MyScorer/Material = "SomeMaterial"

Note that in this case, the material name must exactly match the case defined in Geant4. To check what materials have been defined, add the parameter:

i:Ma/Verbosity = 1

TrackLengthEstimator:#

Dose is calculated using a linear Track Length Estimator (TLE). The TLE technique approximates the absorbed dose as electronic (collisional) kerma. The dose along the voxels a photon encounters in its path between successive collisions is accounted for, resulting in a drastic variance reduction.

Use of this scorer is demonstrated in examples/Brachytherapy/DoseTLE.txt

The TOPAS TrackLengthEstimator is further described at:

  • Francisco Berumen, Yunzhi Ma, José Ramos-Méndez, Joseph Perl, and Luc Beaulieu. “Validation of the TOPAS Monte Carlo toolkit for HDR brachytherapy simulations”, Brachytherapy (2021) https://doi.org/10.1016/j.brachy.2020.12.007

AmbientDoseEquivalent:#

Scoring is performed per single particle:

s:Sc/MyScorer/Quantity = "AmbientDoseEquivalent"
s:Sc/MyScorer/Component = "MyDetectorComponent"
s:Sc/MyScorer/GetAmbientDoseEquivalentForParticleNamed = 1 “neutron”

The scorer uses a track-length estimator, a variance reduction technique that consists of retrieving the absorbed dose at the scoring regions (voxels) located along the particle path until the point of interaction. That improves the computational efficiency substantially for neutral particles. To that end, the ambient dose equivalent is obtained by folding the incident particle fluence, defined as the particle’s track-length divided by the scorer’s volume [1], with linearly-interpolated fluence-to-effective dose conversion coefficients. Then, the user needs to provide the corresponding fluence-to-effective dose conversion coefficients for a range of incident energy values using a couple of dimensioned double vectors:

dv:Sc/MyScorer/FluenceToDoseConversionEnergies = 30 ... MeV
dv:Sc/MyScorer/FluenceToDoseConversionValues = 30 ... Sv*mm2

The example AmbientDoseEquivalent.txt provides a complete example for neutron particles. It uses the fluence-to-effective dose conversion coefficients from reference [2], downloaded from the FLUKA website on the 10th of March, 2021.

[1] Attix FH, Introduction to radiological physics and radiation dosimetry, 1986 Wyley-VCH, Chapter 1, Section III.D.

[2] Pelliccioni, M. Overview of Fluence-to-Effective Dose and Fluence-to-Ambient Dose Equivalent Conversion Coefficients for High Energy Radiation Calculated Using the FLUKA Code, Radiat. Prot. Dosim. 88(4), 279-297 (2000).

DoseToWater and DoseToMaterial:#

We use energy-dependent stopping power conversion as in:

dose_to_new_material = dose_to_medium * ( density_of_medium / density_of_new_material ) * ( dEdX_in_new_material / dEdX_in_medium )

The dEdX comes from the Geant4 EmCalculator utility.

The DoseToWater and DoseToMaterial scorers are somewhat slow since, for every hit, they need to compute stopping power ratios based on the current energy of the particle. You can obtain better speed by adding the option:

b:Sc/MyScorer/PreCalculateStoppingPowerRatios = "True" # defaults to "False"
  • False gives the best accuracy, calculating stopping power on-the-fly for the exact energy.

  • True gives the best speed, looking up stopping power from a pre-calculated table binned by energy. It is about 50% faster than the default option for typical patient simulations. The difference in accuracy is not significant for most studies.

For PreCalculateStoppingPowerRatios, the table of stopping power ratios can be tuned by:

Sc/MyScorer/ProtonEnergyBinSize # default is 1 MeV
Sc/MyScorer/MinProtonEnergyForStoppingPowerRatio # default is 1 MeV
Sc/MyScorer/MaxProtonEnergyForStoppingPowerRatio # default is 500 MeV
Sc/MyScorer/ElectronEnergyBinSize # default is 1 keV
Sc/MyScorer/MinElectronEnergyForStoppingPowerRatio # default is 1 keV
Sc/MyScorer/MaxElectronEnergyForStoppingPowerRatio # default is 1 MeV

Scaling output dose distributions:#

The output dose distribution computed with both DoseToMaterial and DoseToMedium can be weighted with a user-defined unitless parameter as follows:

u:Sc/MyScorer/OutputWeightingFactor = 1e6

This way, e.g., a calibration factor to scale up/down dose distributions can be applied.

Note

The OutputWeightingFactor can be changed with time features.

OriginCount:#

By combining this scorer with the OnlyIncludeParticlesNamed filter, one can create a scorer that tells how many particles of a given type were created in the component. That is, one can count reaction products.

So, for example, the following will count how many neutrons were created:

s:Sc/MyScorer/Quantity = "OriginCount"
s:Sc/MyScorer/Component = "MyComponent"
sv:Sc/MyScorer/OnlyIncludeParticlesNamed = 1 "neutron"

See example: examples/Scoring/OriginCount.txt

Charge and EffectiveCharge:#

  • If a particle reaches zero kinetic energy in the scoring volume, its charge is accumulated

  • If a particle is generated in the scoring volume, its charge is subtracted

  • For Charge, the charge comes from the particle definition’s PDGCharge

  • For EffectCharge, the charge comes from the PreStepPoint’s Charge

ProtonLET Scorer#

The ProtonLET scorer gives the LET of primary and secondary protons, including the energy deposited by associated secondary electrons. It uses techniques discussed in two recent articles on best practices to score LET in Geant4:

In particular, we adopt the methods developed by Granville and Sawakuchi. We compute dose-averaged LET, but you may instead request track-averaged:

s:Sc/MyScorer/WeightBy = "Track" # defaults to "Dose"

By default, the LET is computed by dividing the energy deposited by the step length. Such distributions can feature spurious spikes, caused by events where the step length is severely constrained by a voxel boundary crossing. Three solutions to this issue are provided:

  • By default, a step-by-step upper cut-off is set, such that steps contributing greater than this value are not be scored:

    d:Sc/MyScorer/MaxScoredLET = 100 MeV/mm/(g/cm3) # default 100 MeV/mm/(g/cm3)
    
  • Alternatively, you can set the LET computation to look up the electronic stopping power for the pre-step proton energy:

    b:Sc/MyScorer/UsePreStepLookup = "True" # defaults to “False”
    
  • Or you can increase the electron production threshold:

    d:Ph/Default/CutForElectron = 1 mm # defaults to 0.05 mm
    

The ProtonLET Scorer can give values that are too high in air, where the mean path length between discrete processes can be larger than the voxel size. This can be avoided by neglecting secondary electrons, with:

d:Sc/MyScorer/NeglectSecondariesBelowDensity = 0.1 g/cm3

Even when you do this, rare events that produce very low energy protons (e.g. a recoiling hydrogen nucleus) will produce spikes in LET. This is also seen in the PreStepLookup version of the scorer. They are not seen in the fluence-averaged version of the scorer, since they are rare events. For this reason we introduce the parameter:

d:Sc/MyScorer/UseFluenceWeightedBelowDensity = 0. g/cm3

We set this to zero by default because it is strange to mix both types of LET in a single distribution, and could be significantly wrong at the end of range. We expect users to want to enable this when making a pretty plot of LET to overlay on a CT scan, without spikes in cavities and outside the patient.