From 44c91cdccbb220b5fa64e29cbac9b4ac4f4054e0 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Tue, 26 Jan 2021 09:52:21 +0100 Subject: [PATCH] std::min/max don't work for units right now --- corsika/detail/modules/energy_loss/BetheBlochPDG.inl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/corsika/detail/modules/energy_loss/BetheBlochPDG.inl b/corsika/detail/modules/energy_loss/BetheBlochPDG.inl index bfff9ffbb..89fe81c7b 100644 --- a/corsika/detail/modules/energy_loss/BetheBlochPDG.inl +++ b/corsika/detail/modules/energy_loss/BetheBlochPDG.inl @@ -210,9 +210,12 @@ namespace corsika { // only register the range that is covered by the profile int const maxBin = int(profile_.size() - 1); - int const binStart = std::min(std::max(grammageStart / dX_, 0), maxBin); - - int const binEnd = std::max(std::min(grammageEnd / dX_, maxBin), 0); + int binStart = grammageStart / dX_; + if (binStart < 0) binStart = 0; + if (binStart > maxBin) binStart = maxBin; + int binEnd = grammageEnd / dX_; + if (binEnd < 0) binEnd = 0; + if (binEnd > maxBin) binEnd = maxBin; CORSIKA_LOG_DEBUG("energy deposit of -dE={} between {} and {}", -dE, grammageStart, grammageEnd); @@ -230,7 +233,7 @@ namespace corsika { // fill longitudinal profile if (binStart == binEnd) { - fill(binStart, 1); + fill(binStart, deltaX); } else { fill(binStart, ((1 + binStart) * dX_ - grammageStart)); fill(binEnd, (grammageEnd - binEnd * dX_)); -- GitLab