diff --git a/Framework/Cascade/Cascade.h b/Framework/Cascade/Cascade.h
index 0edd50502ef35bdea96a608e0ab64b157394ff6d..4f506946889448aef4d9c594900e33a6f2330ec7 100644
--- a/Framework/Cascade/Cascade.h
+++ b/Framework/Cascade/Cascade.h
@@ -66,8 +66,9 @@ namespace corsika::cascade {
           fProcessSequence.GetTotalInverseInteractionLength(particle, step);
 
       // sample random exponential step length in grammage
-      std::exponential_distribution expDist((1_m * 1_m / 1_g) / total_inv_lambda);
-      GrammageType const next_interact = (1_g / (1_m * 1_m)) * expDist(fRNG);
+      auto constexpr grammageConversion = 1_g / (1_m * 1_m);
+      std::exponential_distribution expDist(1 / (grammageConversion * total_inv_lambda));
+      GrammageType const next_interact = grammageConversion * expDist(fRNG);
 
       std::cout << "total_inv_lambda=" << total_inv_lambda
                 << ", next_interact=" << next_interact << std::endl;