Message: How do you measure KERMA? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Question How do you measure KERMA? 

Forum: Biasing and Scoring
Date: 11 Sep, 2015
From: Patrik Eschle <Patrik Eschle>


I'm interested in your opinion on how to get KERMA.

KERMA measures the energy per mass transferred to charged secondary particles by uncharged primary particles. KERMA is used to quantify e.g. x-radiation.

To measure KERMA in a sensitve volume, I check in ProcessHits if (1) the particle is charged, (2) is the child of a primary particle (photons are assumed here) and (3) makes its first step. Then I add up the kinetic energy at the vertex divided by the mass (see code below). This gives reasonable results.

How do you compute KERMA? Do you take into account e.g. annhiliation photons?

Thanks for you input,

  Patrik (

== KERMA scorer ProcessHits (as used for Topas)

 G4bool IampKermaScorer::ProcessHits(G4Step* aStep,G4TouchableHistory*)
    if (!fIsActive) {
        return false;
    // Geometry
    G4Track *aTrack     = aStep->GetTrack();
    G4double charge     = aTrack->GetParticleDefinition()->GetPDGCharge();
    G4double stepNumber = aTrack->GetCurrentStepNumber();
    G4double parentId   = aTrack->GetParentID();

    if ( (charge != 0) && (parentId == 1)){ // candiate - charged child of primary in volume
        if (stepNumber == 1){ // charged child of a primary, first step in volume
            G4double eKinVertex = aTrack->GetVertexKineticEnergy(); // Ekin at vertex
            G4double mass       =  aStep->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetMass();
            G4double kerma      = eKinVertex / mass;
            AccumulateHit(aStep, kerma);
            return true;
    return false;

 Add Message Add Message
to: "How do you measure KERMA?"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews