Bug #2179
ctools science verification fails
| Status: | Closed | Start date: | 08/22/2017 | |
|---|---|---|---|---|
| Priority: | Urgent | Due date: | ||
| Assigned To: | % Done: | 100% | ||
| Category: | - | |||
| Target version: | 1.4.1 | |||
| Duration: |
Description
The science verification produces since April the following errors:
ctools science verification.Test nodes model: Mean -19088.02665 of Pull_Crab_Intensity0 should be within [-0.40,0.40] range
ctools science verification.Test nodes model: Standard deviation 17571.98646 of Pull_Crab_Intensity0 should be within [0.80,1.20] range
ctools science verification.Test nodes model: Mean -4.83094 of Pull_Crab_Intensity1 should be within [-0.40,0.40] range
ctools science verification.Test nodes model: Standard deviation 1.98642 of Pull_Crab_Intensity1 should be within [0.80,1.20] range
ctools science verification.Test nodes model: Mean -37.78501 of Pull_Crab_Intensity2 should be within [-0.40,0.40] range
ctools science verification.Test nodes model: Standard deviation 10.75212 of Pull_Crab_Intensity2 should be within [0.80,1.20] range
ctools science verification.Test nodes model: Mean -660.27252 of Pull_Crab_Intensity3 should be within [-0.40,0.40] range
ctools science verification.Test nodes model: Standard deviation 4405.75126 of Pull_Crab_Intensity3 should be within [0.80,1.20] range
ctools science verification.Test diffuse cube model: Mean -8.34991 of Pull_Crab_Prefactor should be within [-0.40,0.40] range
ctools science verification.Test diffuse cube model: Mean 13.47494 of Pull_Crab_Index should be within [-0.40,0.40] range
The following changes were done in GammaLib and ctools:
ctools
1 Add smoothly broken power law to science verification (#1948) (detail)
2 Optionally add LO_THRES and HI_THRES keywords to IRF (detail)
3 Enhance show_irf.py script (detail)
4 Introduce site-dependent energy range in make_pointings.py (detail)
5 Support of map cubes lying outside RoI in ctobssim (detail)
6 Do not fit smoothness parameter in smoothly broken power law for (detail)
7 Add user documentation for smoothly broken power law (detail)
8 Add unit test for show_irf.py example script (detail)
9 Correct debug message (detail)
10 Change show_irf.py so that it is also compliant with older matplotlib (detail)
GammaLib
1 Fixed issues with the GModelSpectralSmoothBrokenPlaw MC generation (detail)
2 Removed old code from GModelSpectralSmoothBrokenPlaw (#1948) (detail)
3 Enhance precision of GCTAEdisp2D::compute_ebounds_src (detail)
4 Set table boundaries in GCTAEdisp2D before normalizing the table (detail)
5 Revert to parallel tests (detail)
6 Correct model normalisation in test_model_spectral.py (detail)
7 Integrate smoothly broken power law spectrum (detail)
8 Correct comments (detail)
9 Add user documentation for smoothly broken power law (detail)
10 Make GModelSky::mc() method save against invalid energy ranges or model (detail)
11 Invert loop in GModelSpatialDiffuseCube::set_mc_cone to speed up (detail)
12 Assure that GCTAEdisp2D::mc() method does not block for empty energy (detail)
13 Add energy margin in response cube computation (detail)
Recurrence
No recurrence.
History
#1
Updated by Knödlseder Jürgen about 9 years ago
- Target version changed from 1.5.0 to 1.4.1
#2
Updated by Knödlseder Jürgen about 9 years ago
- Project changed from ctools to GammaLib
- Status changed from New to In Progress
- Target version changed from 1.4.1 to 1.4.1
- % Done changed from 0 to 90
It turned out that a bug introduced in GModelSpectralNodes::mc() produced that problem. In fact, the case that there is a single node in the MC cache led to an exception instead of using this single node, which is needed for extrapolation. Changing the code as follows solved the problem:
if (m_mc_cum.size() > 1) {
double u = ran.uniform();
for (inx = m_mc_cum.size()-1; inx > 0; --inx) {
if (m_mc_cum[inx-1] <= u) {
break;
}
}
}
else if (m_mc_cum.size() == 0) {
std::string msg = "No valid nodes found for energy interval ["+
emin.print()+","+emax.print()+"]. Either restrict "
"the energy range to the one covered by the "
"spectral nodes or extend the spectral nodes "
"in energy.";
throw GException::invalid_return_value(G_MC, msg);
}
#3
Updated by Knödlseder Jürgen about 9 years ago
- Status changed from In Progress to Closed
- % Done changed from 90 to 100
Fixed and merged into devel. A bugfix release 1.4.1 of GammaLib is in preparation.