Commit 2e74f2e290fdbe9967558a21981c4ada06479ccc
1 parent
ed9fa582
Read output file as last parameters as proper order parameter parsing is easier …
…to understand for the user. Instead of reading ahead the output parameter, I added a flag that signals when ahead reading is desired.
Showing
2 changed files
with
30 additions
and
24 deletions
src/ctlike/ctlike.cpp
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * ctlike - CTA maximum likelihood tool * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2010-2012 by Jurgen Knodlseder * | |
| 4 | + * copyright (C) 2010-2012 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | /** |
| 22 | 22 | * @file ctlike.cpp |
| 23 | 23 | * @brief CTA maximum likelihood tool implementation |
| 24 | - * @author J. Knodlseder | |
| 24 | + * @author J. Knoedlseder | |
| 25 | 25 | */ |
| 26 | 26 | |
| 27 | 27 | /* __ Includes ___________________________________________________________ */ |
| ... | ... | @@ -202,9 +202,8 @@ void ctlike::clear(void) |
| 202 | 202 | ***************************************************************************/ |
| 203 | 203 | void ctlike::execute(void) |
| 204 | 204 | { |
| 205 | - // Read ahead output filename so that it gets dumped correctly in the | |
| 206 | - // parameters log | |
| 207 | - m_outmdl = (*this)["outmdl"].filename(); | |
| 205 | + // Signal that some parameters should be read ahead | |
| 206 | + m_read_ahead = true; | |
| 208 | 207 | |
| 209 | 208 | // Bin the event data |
| 210 | 209 | run(); |
| ... | ... | @@ -383,6 +382,12 @@ void ctlike::get_parameters(void) |
| 383 | 382 | // Get standard parameters |
| 384 | 383 | m_refit = (*this)["refit"].boolean(); |
| 385 | 384 | |
| 385 | + // Optionally read ahead parameters so that they get correctly | |
| 386 | + // dumped into the log file | |
| 387 | + if (m_read_ahead) { | |
| 388 | + m_outmdl = (*this)["outmdl"].filename(); | |
| 389 | + } | |
| 390 | + | |
| 386 | 391 | // Return |
| 387 | 392 | return; |
| 388 | 393 | } |
| ... | ... | @@ -452,17 +457,17 @@ void ctlike::optimize_lm(void) |
| 452 | 457 | void ctlike::init_members(void) |
| 453 | 458 | { |
| 454 | 459 | // Initialise members |
| 455 | - //m_method.clear(); | |
| 456 | 460 | m_stat.clear(); |
| 457 | 461 | m_caldb.clear(); |
| 458 | 462 | m_irf.clear(); |
| 459 | 463 | m_outmdl.clear(); |
| 460 | 464 | m_obs.clear(); |
| 461 | - m_refit = false; | |
| 462 | - m_max_iter = 100; // Set maximum number of iterations | |
| 463 | - m_max_stall = 10; // Set maximum number of stalls | |
| 464 | - m_logL = 0.0; | |
| 465 | - m_opt = NULL; | |
| 465 | + m_refit = false; | |
| 466 | + m_max_iter = 100; // Set maximum number of iterations | |
| 467 | + m_max_stall = 10; // Set maximum number of stalls | |
| 468 | + m_logL = 0.0; | |
| 469 | + m_opt = NULL; | |
| 470 | + m_read_ahead = false; | |
| 466 | 471 | |
| 467 | 472 | // Set logger properties |
| 468 | 473 | log.date(true); |
| ... | ... | @@ -480,17 +485,17 @@ void ctlike::init_members(void) |
| 480 | 485 | void ctlike::copy_members(const ctlike& app) |
| 481 | 486 | { |
| 482 | 487 | // Copy attributes |
| 483 | - //m_method = app.m_method; | |
| 484 | - m_stat = app.m_stat; | |
| 485 | - m_refit = app.m_refit; | |
| 486 | - m_caldb = app.m_caldb; | |
| 487 | - m_irf = app.m_irf; | |
| 488 | - m_outmdl = app.m_outmdl; | |
| 489 | - m_obs = app.m_obs; | |
| 490 | - m_max_iter = app.m_max_iter; | |
| 491 | - m_max_stall = app.m_max_stall; | |
| 492 | - m_logL = app.m_logL; | |
| 493 | - m_opt = app.m_opt->clone(); | |
| 488 | + m_stat = app.m_stat; | |
| 489 | + m_refit = app.m_refit; | |
| 490 | + m_caldb = app.m_caldb; | |
| 491 | + m_irf = app.m_irf; | |
| 492 | + m_outmdl = app.m_outmdl; | |
| 493 | + m_obs = app.m_obs; | |
| 494 | + m_max_iter = app.m_max_iter; | |
| 495 | + m_max_stall = app.m_max_stall; | |
| 496 | + m_logL = app.m_logL; | |
| 497 | + m_opt = app.m_opt->clone(); | |
| 498 | + m_read_ahead = app.m_read_ahead; | |
| 494 | 499 | |
| 495 | 500 | // Return |
| 496 | 501 | return; | ... | ... |
src/ctlike/ctlike.hpp
| 1 | 1 | /*************************************************************************** |
| 2 | 2 | * ctlike - CTA maximum likelihood tool * |
| 3 | 3 | * ----------------------------------------------------------------------- * |
| 4 | - * copyright (C) 2010-2012 by Jurgen Knodlseder * | |
| 4 | + * copyright (C) 2010-2012 by Juergen Knoedlseder * | |
| 5 | 5 | * ----------------------------------------------------------------------- * |
| 6 | 6 | * * |
| 7 | 7 | * This program is free software: you can redistribute it and/or modify * |
| ... | ... | @@ -21,7 +21,7 @@ |
| 21 | 21 | /** |
| 22 | 22 | * @file ctlike.hpp |
| 23 | 23 | * @brief CTA maximum likelihood tool interface definition |
| 24 | - * @author J. Knodlseder | |
| 24 | + * @author J. Knoedlseder | |
| 25 | 25 | */ |
| 26 | 26 | |
| 27 | 27 | #ifndef CTLIKE_HPP |
| ... | ... | @@ -83,6 +83,7 @@ protected: |
| 83 | 83 | int m_max_stall; //!< Maximum number of stalls |
| 84 | 84 | double m_logL; //!< Maximum log likelihood |
| 85 | 85 | GOptimizer* m_opt; //!< Optimizer |
| 86 | + bool m_read_ahead; //!< Read ahead parameters | |
| 86 | 87 | }; |
| 87 | 88 | |
| 88 | 89 | #endif /* CTLIKE_HPP */ | ... | ... |