Commit 05b49446b822f8c3d8f761b30aa8d304722c25ae
1 parent
817bb2df
Adapt for energy dispersion handling
Showing
3 changed files
with
56 additions
and
31 deletions
src/ctlike/ctlike.cpp
| ... | ... | @@ -241,6 +241,18 @@ void ctlike::run(void) |
| 241 | 241 | log << std::endl; |
| 242 | 242 | } |
| 243 | 243 | |
| 244 | + // Set energy dispersion flag for all CTA observations and save old | |
| 245 | + // values in save_edisp vector | |
| 246 | + std::vector<bool> save_edisp; | |
| 247 | + save_edisp.assign(m_obs.size(), false); | |
| 248 | + for (int i = 0; i < m_obs.size(); ++i) { | |
| 249 | + GCTAObservation* obs = dynamic_cast<GCTAObservation*>(m_obs[i]); | |
| 250 | + if (obs != NULL) { | |
| 251 | + save_edisp[i] = obs->response().apply_edisp(); | |
| 252 | + obs->response().apply_edisp(m_apply_edisp); | |
| 253 | + } | |
| 254 | + } | |
| 255 | + | |
| 244 | 256 | // Write observation(s) into logger |
| 245 | 257 | if (logTerse()) { |
| 246 | 258 | log << std::endl; |
| ... | ... | @@ -275,6 +287,14 @@ void ctlike::run(void) |
| 275 | 287 | log << m_obs.models() << std::endl; |
| 276 | 288 | } |
| 277 | 289 | |
| 290 | + // Restore energy dispersion flag for all CTA observations | |
| 291 | + for (int i = 0; i < m_obs.size(); ++i) { | |
| 292 | + GCTAObservation* obs = dynamic_cast<GCTAObservation*>(m_obs[i]); | |
| 293 | + if (obs != NULL) { | |
| 294 | + obs->response().apply_edisp(save_edisp[i]); | |
| 295 | + } | |
| 296 | + } | |
| 297 | + | |
| 278 | 298 | // Return |
| 279 | 299 | return; |
| 280 | 300 | } |
| ... | ... | @@ -403,8 +423,9 @@ void ctlike::get_parameters(void) |
| 403 | 423 | |
| 404 | 424 | } // endif: no models were associated with observations |
| 405 | 425 | |
| 406 | - // Get standard parameters | |
| 407 | - m_refit = (*this)["refit"].boolean(); | |
| 426 | + // Get other parameters | |
| 427 | + m_refit = (*this)["refit"].boolean(); | |
| 428 | + m_apply_edisp = (*this)["edisp"].boolean(); | |
| 408 | 429 | |
| 409 | 430 | // Optionally read ahead parameters so that they get correctly |
| 410 | 431 | // dumped into the log file |
| ... | ... | @@ -486,12 +507,13 @@ void ctlike::init_members(void) |
| 486 | 507 | m_irf.clear(); |
| 487 | 508 | m_outmdl.clear(); |
| 488 | 509 | m_obs.clear(); |
| 489 | - m_refit = false; | |
| 490 | - m_max_iter = 100; // Set maximum number of iterations | |
| 491 | - m_max_stall = 10; // Set maximum number of stalls | |
| 492 | - m_logL = 0.0; | |
| 493 | - m_opt = NULL; | |
| 494 | - m_read_ahead = false; | |
| 510 | + m_refit = false; | |
| 511 | + m_max_iter = 100; // Set maximum number of iterations | |
| 512 | + m_max_stall = 10; // Set maximum number of stalls | |
| 513 | + m_logL = 0.0; | |
| 514 | + m_opt = NULL; | |
| 515 | + m_read_ahead = false; | |
| 516 | + m_apply_edisp = false; | |
| 495 | 517 | |
| 496 | 518 | // Set logger properties |
| 497 | 519 | log.date(true); |
| ... | ... | @@ -509,17 +531,18 @@ void ctlike::init_members(void) |
| 509 | 531 | void ctlike::copy_members(const ctlike& app) |
| 510 | 532 | { |
| 511 | 533 | // Copy attributes |
| 512 | - m_stat = app.m_stat; | |
| 513 | - m_refit = app.m_refit; | |
| 514 | - m_caldb = app.m_caldb; | |
| 515 | - m_irf = app.m_irf; | |
| 516 | - m_outmdl = app.m_outmdl; | |
| 517 | - m_obs = app.m_obs; | |
| 518 | - m_max_iter = app.m_max_iter; | |
| 519 | - m_max_stall = app.m_max_stall; | |
| 520 | - m_logL = app.m_logL; | |
| 521 | - m_opt = app.m_opt->clone(); | |
| 522 | - m_read_ahead = app.m_read_ahead; | |
| 534 | + m_stat = app.m_stat; | |
| 535 | + m_refit = app.m_refit; | |
| 536 | + m_caldb = app.m_caldb; | |
| 537 | + m_irf = app.m_irf; | |
| 538 | + m_outmdl = app.m_outmdl; | |
| 539 | + m_obs = app.m_obs; | |
| 540 | + m_max_iter = app.m_max_iter; | |
| 541 | + m_max_stall = app.m_max_stall; | |
| 542 | + m_logL = app.m_logL; | |
| 543 | + m_opt = app.m_opt->clone(); | |
| 544 | + m_read_ahead = app.m_read_ahead; | |
| 545 | + m_apply_edisp = app.m_apply_edisp; | |
| 523 | 546 | |
| 524 | 547 | // Return |
| 525 | 548 | return; | ... | ... |
src/ctlike/ctlike.hpp
| ... | ... | @@ -71,11 +71,12 @@ protected: |
| 71 | 71 | void free_members(void); |
| 72 | 72 | |
| 73 | 73 | // User parameters |
| 74 | - std::string m_stat; //!< Optimisation statistics (poisson/gaussian) | |
| 75 | - bool m_refit; //!< Refitting | |
| 76 | - std::string m_caldb; //!< Calibration database | |
| 77 | - std::string m_irf; //!< Instrument response functions | |
| 78 | - std::string m_outmdl; //!< Source model output XML file | |
| 74 | + std::string m_stat; //!< Optimisation statistics (poisson/gaussian) | |
| 75 | + bool m_refit; //!< Refitting | |
| 76 | + std::string m_caldb; //!< Calibration database | |
| 77 | + std::string m_irf; //!< Instrument response functions | |
| 78 | + std::string m_outmdl; //!< Source model output XML file | |
| 79 | + bool m_apply_edisp; //!< Apply energy dispersion? | |
| 79 | 80 | |
| 80 | 81 | // Members |
| 81 | 82 | GObservations m_obs; //!< Observations | ... | ... |
src/ctlike/ctlike.par
| ... | ... | @@ -17,13 +17,14 @@ |
| 17 | 17 | # |
| 18 | 18 | # General parameters |
| 19 | 19 | #=================== |
| 20 | -infile, f, a, "test/data/crab_events.fits.gz",,,"Event list, counts map or observation definition file" | |
| 21 | -stat, s, h, "POISSON",,, "Optimization statistics" | |
| 22 | -refit, b, h, no,,, "Do refitting?" | |
| 23 | -caldb, s, a, "",,, "Calibration database" | |
| 24 | -irf, s, a, "cta_dummy_irf",,, "Instrument response function" | |
| 25 | -srcmdl, f, a, "test/data/crab.xml",,, "Source model" | |
| 26 | -outmdl, f, a, "crab_results.xml",,, "Source model output file" | |
| 20 | +infile, f, a, "events.fits",,,"Event list, counts map or observation definition file" | |
| 21 | +stat, s, h, "POISSON",,, "Optimization statistics" | |
| 22 | +refit, b, h, no,,, "Do refitting?" | |
| 23 | +edisp, b, h, no,,, "Apply energy dispersion?" | |
| 24 | +caldb, s, a, "$CTOOLS/share/caldb/data/cta/dummy",,, "Calibration database" | |
| 25 | +irf, s, a, "cta_dummy_irf",,, "Instrument response function" | |
| 26 | +srcmdl, f, a, "$CTOOLS/share/models/crab.xml",,, "Source model" | |
| 27 | +outmdl, f, a, "crab_results.xml",,, "Source model output file" | |
| 27 | 28 | # |
| 28 | 29 | # Standard parameters |
| 29 | 30 | #==================== | ... | ... |