From 29ec2618cba1bac4691511bf2dc755ab7e5ab0fe Mon Sep 17 00:00:00 2001 From: Felix Riehn <felix@matilda> Date: Fri, 15 Apr 2022 12:50:33 +0100 Subject: [PATCH] add convenience function to calculate center-of-mass energy --- corsika/framework/core/EnergyMomentumOperations.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/corsika/framework/core/EnergyMomentumOperations.hpp b/corsika/framework/core/EnergyMomentumOperations.hpp index c7abc940e..b7e44e77c 100644 --- a/corsika/framework/core/EnergyMomentumOperations.hpp +++ b/corsika/framework/core/EnergyMomentumOperations.hpp @@ -117,4 +117,17 @@ namespace corsika { return (sqrtS_sqr - static_pow<2>(m_proj) - static_pow<2>(m_targ)) / (2 * m_targ); } + /** + * \f[E_{com}=sqrt{2 * m_{proj} * m_{targ} * E_{lab} + m_{proj}^2 + m_{targ}^2} \f] + * + * @param E lab. energy. + * @param m particle mass. + * @return HEPEnergyType + */ + HEPEnergyType constexpr calculate_com_energy(HEPEnergyType Elab, + HEPMassType const m_proj, + HEPMassType const m_targ) { + return sqrt(2 * Elab * m_targ + static_pow<2>(m_proj) + static_pow<2>(m_targ)); + } + } // namespace corsika -- GitLab