diff --git a/Environment/NuclearComposition.h b/Environment/NuclearComposition.h index 491f25a251ed7f6c9d5c1ccbde06ea225e88f47e..d97ba380880ddf018e685d010e688a9f639bd0ac 100644 --- a/Environment/NuclearComposition.h +++ b/Environment/NuclearComposition.h @@ -64,9 +64,13 @@ namespace corsika::environment { , fComponents(pComponents) , fAvgMassNumber(std::inner_product( pComponents.cbegin(), pComponents.cend(), pFractions.cbegin(), 0., - [](double x, double y) { return x + y; }, - [](auto const& compID, auto const& fraction) { - return corsika::particles::GetNucleusA(compID) * fraction; + std::plus<double>(), [](auto const compID, auto const fraction) -> double { + if (particles::IsNucleus(compID)) { + return particles::GetNucleusA(compID) * fraction; + } else { + return particles::GetMass(compID) / + units::si::ConvertSIToHEP(units::constants::u) * fraction; + } })) { assert(pComponents.size() == pFractions.size()); auto const sumFractions =