Commit 80ac5b7ecc710a9589540c7fb990adc1dfd9ec00

Authored by Jürgen Knödlseder
1 parent 81c788f1

Also output the total number of fit iterations, which is the sum of the fit+refit iterations

Showing 1 changed file with 14 additions and 0 deletions
src/ctlike/ctlike.cpp
@@ -329,6 +329,7 @@ void ctlike::run(void) @@ -329,6 +329,7 @@ void ctlike::run(void)
329 // Write results into logger 329 // Write results into logger
330 log_header1(NORMAL, "Maximum likelihood optimisation results"); 330 log_header1(NORMAL, "Maximum likelihood optimisation results");
331 log_string(NORMAL, m_opt.print(m_chatter)); 331 log_string(NORMAL, m_opt.print(m_chatter));
  332 + log_value(NORMAL, "Total number of iterations", m_iter);
332 log_value(NORMAL, "Maximum log likelihood", gammalib::str(m_logL,3)); 333 log_value(NORMAL, "Maximum log likelihood", gammalib::str(m_logL,3));
333 log_value(NORMAL, "Observed events (Nobs)", gammalib::str(m_nobs,3)); 334 log_value(NORMAL, "Observed events (Nobs)", gammalib::str(m_nobs,3));
334 log_value(NORMAL, "Predicted events (Npred)", gammalib::str(m_npred,3)+ 335 log_value(NORMAL, "Predicted events (Npred)", gammalib::str(m_npred,3)+
@@ -634,15 +635,27 @@ double ctlike::reoptimize_lm(void) @@ -634,15 +635,27 @@ double ctlike::reoptimize_lm(void)
634 log_header1(TERSE, "Maximum likelihood re-optimisation"); 635 log_header1(TERSE, "Maximum likelihood re-optimisation");
635 log.indent(1); 636 log.indent(1);
636 637
  638 + // Initialise number of iterations
  639 + int iter = 0;
  640 +
637 // Create a clone of the optimizer for the re-optimisation 641 // Create a clone of the optimizer for the re-optimisation
638 GOptimizer* opt = m_opt.clone(); 642 GOptimizer* opt = m_opt.clone();
639 643
640 // Perform LM optimization 644 // Perform LM optimization
641 m_obs.optimize(*opt); 645 m_obs.optimize(*opt);
642 646
  647 + // Add number of iterations
  648 + iter += opt->iter();
  649 +
643 // Optionally refit 650 // Optionally refit
644 if (refit(opt)) { 651 if (refit(opt)) {
  652 +
  653 + // Refit
645 m_obs.optimize(*opt); 654 m_obs.optimize(*opt);
  655 +
  656 + // Add number of iterations
  657 + iter += opt->iter();
  658 +
646 } 659 }
647 660
648 // Store maximum log likelihood value 661 // Store maximum log likelihood value
@@ -652,6 +665,7 @@ double ctlike::reoptimize_lm(void) @@ -652,6 +665,7 @@ double ctlike::reoptimize_lm(void)
652 log.indent(0); 665 log.indent(0);
653 log_header1(EXPLICIT, "Maximum likelihood re-optimisation results"); 666 log_header1(EXPLICIT, "Maximum likelihood re-optimisation results");
654 log_string(EXPLICIT, opt->print(m_chatter)); 667 log_string(EXPLICIT, opt->print(m_chatter));
  668 + log_value(EXPLICIT, "Total number of iterations", iter);
655 log_value(EXPLICIT, "Maximum log likelihood", gammalib::str(logL,3)); 669 log_value(EXPLICIT, "Maximum log likelihood", gammalib::str(logL,3));
656 log_value(EXPLICIT, "Observed events (Nobs)", gammalib::str(m_nobs,3)); 670 log_value(EXPLICIT, "Observed events (Nobs)", gammalib::str(m_nobs,3));
657 log_value(EXPLICIT, "Predicted events (Npred)", gammalib::str(m_obs.npred(),3)+ 671 log_value(EXPLICIT, "Predicted events (Npred)", gammalib::str(m_obs.npred(),3)+