Commit 396a007ca517a1eb61a88f16ff4132351361c19a

Authored by Jürgen Knödlseder
1 parent 15a65dfd

Add energy margin to energy boundary containment check.

Without the energy margin, roundoff errors may lead to the exclusion of the energy bin in case that a single energy bin is used.
src/ctbin/ctbin.cpp
... ... @@ -40,6 +40,9 @@
40 40  
41 41 /* __ Coding definitions _________________________________________________ */
42 42  
  43 +/* __ Constants __________________________________________________________ */
  44 +const GEnergy g_energy_margin(1.0e-12, "TeV");
  45 +
43 46  
44 47 /*==========================================================================
45 48 = =
... ... @@ -530,8 +533,8 @@ void ctbin::fill_cube(GCTAObservation* obs)
530 533 // Determine energy bin. Skip if we are outside the energy range
531 534 int index = m_ebounds.index(event->energy());
532 535 if (index == -1 ||
533   - !obs_ebounds.contains(m_ebounds.emin(index),
534   - m_ebounds.emax(index))) {
  536 + !obs_ebounds.contains(m_ebounds.emin(index)+g_energy_margin,
  537 + m_ebounds.emax(index)-g_energy_margin)) {
535 538 num_outside_ebds++;
536 539 continue;
537 540 }
... ...
src/ctmodel/ctmodel.cpp
... ... @@ -39,6 +39,9 @@
39 39  
40 40 /* __ Coding definitions _________________________________________________ */
41 41  
  42 +/* __ Constants __________________________________________________________ */
  43 +const GEnergy g_energy_margin(1.0e-12, "TeV");
  44 +
42 45  
43 46 /*==========================================================================
44 47 = =
... ... @@ -617,8 +620,8 @@ void ctmodel::fill_cube(const GCTAObservation* obs)
617 620 // Skip bin if it is outside the energy range of the observation
618 621 int index = cube_ebounds.index(bin->energy());
619 622 if (index == -1 ||
620   - !obs_ebounds.contains(cube_ebounds.emin(index),
621   - cube_ebounds.emax(index))) {
  623 + !obs_ebounds.contains(cube_ebounds.emin(index)+g_energy_margin,
  624 + cube_ebounds.emax(index)-g_energy_margin)) {
622 625 num_outside_ebds++;
623 626 continue;
624 627 }
... ...