Commit 2e74f2e290fdbe9967558a21981c4ada06479ccc

Authored by knodlseder
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.
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 */
... ...