Commit 9a6d4bbe8a90dc3ff4f570123cb01faac8482ee2

Authored by Alexander Ziegler
1 parent 0d92b43b

First working version using gaussian error propagation.

Showing 1 changed file with 8 additions and 11 deletions
src/ctbutterfly/ctbutterfly.cpp
@@ -245,7 +245,7 @@ void ctbutterfly::run(void) @@ -245,7 +245,7 @@ void ctbutterfly::run(void)
245 245
246 // Get covariance matrix. 246 // Get covariance matrix.
247 GObservations::likelihood likelihood = m_obs.function(); 247 GObservations::likelihood likelihood = m_obs.function();
248 - if(!gepmode) { 248 + if(!m_gepmode) {
249 m_covariance = likelihood.curvature()->invert(); 249 m_covariance = likelihood.curvature()->invert();
250 } 250 }
251 else { 251 else {
@@ -275,7 +275,7 @@ void ctbutterfly::run(void) @@ -275,7 +275,7 @@ void ctbutterfly::run(void)
275 likelihood.eval(pars); 275 likelihood.eval(pars);
276 276
277 // Get covariance matrix. 277 // Get covariance matrix.
278 - if(!gepmode) { 278 + if(!m_gepmode) {
279 m_covariance = likelihood.curvature()->invert(); 279 m_covariance = likelihood.curvature()->invert();
280 } 280 }
281 else { 281 else {
@@ -312,6 +312,8 @@ void ctbutterfly::run(void) @@ -312,6 +312,8 @@ void ctbutterfly::run(void)
312 double prefactor_mean = (*skymodel)["Prefactor"].value(); 312 double prefactor_mean = (*skymodel)["Prefactor"].value();
313 double index_mean = (*skymodel)["Index"].value(); 313 double index_mean = (*skymodel)["Index"].value();
314 double pivot_mean = (*skymodel)["PivotEnergy"].value(); 314 double pivot_mean = (*skymodel)["PivotEnergy"].value();
  315 + double prefactor_scale = (*skymodel)["Prefactor"].scale();
  316 + double index_scale = (*skymodel)["Index"].scale();
315 GEnergy pivot(pivot_mean, "MeV"); 317 GEnergy pivot(pivot_mean, "MeV");
316 318
317 // Write parameter indices into logger 319 // Write parameter indices into logger
@@ -373,11 +375,11 @@ void ctbutterfly::run(void) @@ -373,11 +375,11 @@ void ctbutterfly::run(void)
373 375
374 // Compute prefactor and index 376 // Compute prefactor and index
375 double prefactor = (major * cos_t * vector1[0] + 377 double prefactor = (major * cos_t * vector1[0] +
376 - minor * sin_t * vector2[0]) +  
377 - prefactor_mean; 378 + minor * sin_t * vector2[0]) * prefactor_scale +
  379 + prefactor_mean;
378 double index = (major * cos_t * vector1[1] + 380 double index = (major * cos_t * vector1[1] +
379 - minor * sin_t * vector2[1]) +  
380 - index_mean; 381 + minor * sin_t * vector2[1]) * index_scale +
  382 + index_mean;
381 383
382 // Write prefactor and index into logger 384 // Write prefactor and index into logger
383 log_value(EXPLICIT, "Angle "+gammalib::str(t*gammalib::rad2deg), 385 log_value(EXPLICIT, "Angle "+gammalib::str(t*gammalib::rad2deg),
@@ -452,11 +454,6 @@ void ctbutterfly::run(void) @@ -452,11 +454,6 @@ void ctbutterfly::run(void)
452 454
453 // Get the energy of current bin 455 // Get the energy of current bin
454 GEnergy energy = m_ebounds.elogmean(i); 456 GEnergy energy = m_ebounds.elogmean(i);
455 -  
456 - // Log status info  
457 - std::string msg = "Computing butterfly for bin number "+  
458 - gammalib::str(i)+" at "+energy.print();  
459 - log_string(NORMAL, msg);  
460 457
461 // Initialise model flux value 458 // Initialise model flux value
462 double model_flux = 0.0; 459 double model_flux = 0.0;