From 96602a11dc5a53703bbdb2a49c5bfc88311d5c35 Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Tue, 30 Jun 2015 23:27:40 +0200 Subject: [PATCH] Add warning to ctlike if all parameters are fixed. --- src/ctlike/ctlike.cpp | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/ctlike/ctlike.cpp b/src/ctlike/ctlike.cpp index 5d397eb..c86f694 100644 --- a/src/ctlike/ctlike.cpp +++ b/src/ctlike/ctlike.cpp @@ -259,8 +259,8 @@ void ctlike::run(void) if (ts_srcs.size() > 0) { // Store original maximum likelihood and models - double logL_src = m_logL; - GModels models = m_obs.models(); + double logL_src = m_logL; + GModels models = m_obs.models(); // Loop over stored models, remove source and refit for (int i = 0; i < ts_srcs.size(); ++i) { @@ -426,6 +426,29 @@ void ctlike::optimize_lm(void) log.indent(1); } + // Compute number of fitted parameters + int nfit = 0; + for (int i = 0; i < m_obs.models().size(); ++i) { + const GModel* model = m_obs.models()[i]; + for (int k = 0; k < model->size(); ++k) { + if ((*model)[k].is_free()) { + nfit++; + } + } + } + + // Notify if all parameters are fixed + if (nfit == 0) { + if (logTerse()) { + log << "WARNING: All model parameters are fixed!"; + log << std::endl; + log << " ctlike will proceed without fitting parameters."; + log << std::endl; + log << " All curvature matrix elements will be zero."; + log << std::endl; + } + } + // Perform LM optimization m_obs.optimize(*m_opt); -- libgit2 0.21.4