Skip to content

Improving Brik's correction calculation

The current implementation of Birk's correction is suboptimal:

  • eKine is the post-step point energy. This neglects the change of energy during the step and is not correct.
  • using the lookup table is expensive (and the lookup table is already being used in calculating the energy deposit)

Correct solution: get the dEdX directly from the step length and energy deposition

double length = aStep->GetStepLength();
if (charge != 0. && length > 0.) {
double dEdX = aStep->GetTotalEnergyDeposit() / length;
// apply Birk’s correction
}