diff --git a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp index 3bfe457e09cd1dd2463d2635d5fc5f6ab3d811c0..b6da15e974436e2e2fadff1f042b00b8a70572c1 100644 --- a/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp +++ b/Framework/MDAlgorithms/src/CalculateCoverageDGS.cpp @@ -261,8 +261,17 @@ void CalculateCoverageDGS::exec() { // Qmax is at kf=kfmin or kf=kfmax m_ki = std::sqrt(energyToK * m_Ei); - m_kfmin = std::sqrt(energyToK * (m_Ei - m_dEmin)); - m_kfmax = std::sqrt(energyToK * (m_Ei - m_dEmax)); + if (m_Ei > m_dEmin) { + m_kfmin = std::sqrt(energyToK * (m_Ei - m_dEmin)); + } else { + m_kfmin = 0.; + } + if (m_Ei > m_dEmax) { + m_kfmax = std::sqrt(energyToK * (m_Ei - m_dEmax)); + } else { + m_kfmax = 0; + } + double QmaxTemp = sqrt(m_ki * m_ki + m_kfmin * m_kfmin - 2 * m_ki * m_kfmin * cos(ttmax)); double Qmax = QmaxTemp;