diff --git a/corsika/detail/modules/energy_loss/BetheBlochPDG.inl b/corsika/detail/modules/energy_loss/BetheBlochPDG.inl index 75d12f949d284d9e6e0ab37d8932b6452032c3a7..5dcd7de4f6f092a5d5e003a2dbce3ce29390cb12 100644 --- a/corsika/detail/modules/energy_loss/BetheBlochPDG.inl +++ b/corsika/detail/modules/energy_loss/BetheBlochPDG.inl @@ -211,7 +211,11 @@ namespace corsika { int binEnd = grammageEnd / dX_; if (binEnd < 0) binEnd = 0; if (binEnd > maxBin) binEnd = maxBin; - + // in upward going showers binEnd may be smaller than binStart, but we don't care: + if (binStart>binEnd) { + std::swap(binStart, binEnd); + } + CORSIKA_LOG_DEBUG("energy deposit of -dE={} between {} and {}", -dE, grammageStart, grammageEnd);