diff --git a/Framework/Cascade/Cascade.h b/Framework/Cascade/Cascade.h index d82f0a0cf0eedfdda86d361974fb0ce9c6cdb393..3880fba0d7413228c89c927a375e35463ffafdf2 100644 --- a/Framework/Cascade/Cascade.h +++ b/Framework/Cascade/Cascade.h @@ -16,6 +16,7 @@ #include <corsika/process/ProcessReturn.h> #include <corsika/random/RNGManager.h> #include <corsika/random/UniformRealDistribution.h> +#include <corsika/random/ExponentialDistribution.h> #include <corsika/setup/SetupTrajectory.h> #include <corsika/units/PhysicalUnits.h> @@ -115,8 +116,8 @@ namespace corsika::cascade { fProcessSequence.GetTotalInverseInteractionLength(particle, step); // sample random exponential step length in grammage - std::exponential_distribution expDist(total_inv_lambda * (1_g / (1_m * 1_m))); - GrammageType const next_interact = (1_g / (1_m * 1_m)) * expDist(fRNG); + corsika::random::ExponentialDistribution expDist(1 / total_inv_lambda); + GrammageType const next_interact = expDist(fRNG); std::cout << "total_inv_lambda=" << total_inv_lambda << ", next_interact=" << next_interact << std::endl; @@ -141,8 +142,8 @@ namespace corsika::cascade { fProcessSequence.GetTotalInverseLifetime(particle); // sample random exponential decay time - std::exponential_distribution expDistDecay(total_inv_lifetime * 1_s); - TimeType const next_decay = 1_s * expDistDecay(fRNG); + corsika::random::ExponentialDistribution expDistDecay(1 / total_inv_lifetime); + TimeType const next_decay = expDistDecay(fRNG); std::cout << "total_inv_lifetime=" << total_inv_lifetime << ", next_decay=" << next_decay << std::endl;