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