Commit ff1a61b5066fa43fa50fb762f85622e3e2c9fa1b
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 | ... | ... |