Commit ff1a61b5066fa43fa50fb762f85622e3e2c9fa1b

Authored by Jürgen Knödlseder
2 parents 85fc450d 0c9ae016

Merge branch 'integration' into devel

Showing 1 changed file with 15 additions and 8 deletions
src/ctlike/ctlike.cpp
1 1 /***************************************************************************
2 2 * ctlike - Maximum likelihood fitting tool *
3 3 * ----------------------------------------------------------------------- *
4   - * copyright (C) 2010-2015 by Juergen Knoedlseder *
  4 + * copyright (C) 2010-2016 by Juergen Knoedlseder *
5 5 * ----------------------------------------------------------------------- *
6 6 * *
7 7 * This program is free software: you can redistribute it and/or modify *
... ... @@ -441,7 +441,9 @@ void ctlike::get_parameters(void)
441 441  
442 442  
443 443 /***********************************************************************//**
444   - * @brief Optimize model parameters using Levenberg-Marquardt method
  444 + * @brief Optimise model parameters
  445 + *
  446 + * Optimise model parameters using a maximum likelihood fit.
445 447 ***************************************************************************/
446 448 void ctlike::optimize_lm(void)
447 449 {
... ... @@ -518,8 +520,10 @@ void ctlike::optimize_lm(void)
518 520  
519 521  
520 522 /***********************************************************************//**
521   - * @brief Re-optimize model parameters using Levenberg-Marquardt method
522   - * for TS computation
  523 + * @brief Re-optimise model parameters for TS computation
  524 + *
  525 + * Re-optimise the model parameters using a maximum likelihood fit for
  526 + * computation of the Test Statistic value for a given source.
523 527 ***************************************************************************/
524 528 double ctlike::reoptimize_lm(void)
525 529 {
... ... @@ -530,23 +534,26 @@ double ctlike::reoptimize_lm(void)
530 534 log.indent(1);
531 535 }
532 536  
  537 + // Create a clone of the optimizer for the re-optimisation
  538 + GOptimizer* opt = m_opt->clone();
  539 +
533 540 // Perform LM optimization
534   - m_obs.optimize(*m_opt);
  541 + m_obs.optimize(*opt);
535 542  
536 543 // Optionally refit
537 544 if (m_refit) {
538   - m_obs.optimize(*m_opt);
  545 + m_obs.optimize(*opt);
539 546 }
540 547  
541 548 // Store maximum log likelihood value
542   - double logL = -(m_opt->value());
  549 + double logL = -(opt->value());
543 550  
544 551 // Write optimization results
545 552 log.indent(0);
546 553 if (logTerse()) {
547 554 log << std::endl;
548 555 log.header1("Maximum likelihood re-optimisation results");
549   - log << *m_opt << std::endl;
  556 + log << *opt << std::endl;
550 557 }
551 558  
552 559 // Return
... ...