diff --git a/cscripts/Makefile.am b/cscripts/Makefile.am index a4ebb5f..75e8860 100644 --- a/cscripts/Makefile.am +++ b/cscripts/Makefile.am @@ -175,7 +175,7 @@ testdata = $(top_srcdir)/test/data/crab.xml \ $(top_srcdir)/test/data/pntdef_maximal.dat \ $(top_srcdir)/test/data/models.txt \ $(top_srcdir)/test/data/tsmaps.txt \ - $(top_srcdir)/test/data/model_cube_background.xml \ + $(top_srcdir)/test/data/model_cube_background1.xml \ $(top_srcdir)/test/data/model_cube_background2.xml \ $(top_srcdir)/test/data/crab_bkgcube.xml \ $(top_srcdir)/test/data/irf.root \ diff --git a/examples/make_ts_distributions.py b/examples/make_ts_distributions.py index 8ae5132..8106502 100755 --- a/examples/make_ts_distributions.py +++ b/examples/make_ts_distributions.py @@ -111,11 +111,10 @@ def make_ts_distribution(): # Loop over energy bands. The energy bands are those that are also # used for sensitivity computation. - for ieng in range(20): + for ieng in range(18): # Set energies - loge = -1.7 + ieng * 0.2 - #emean = pow(10.0, loge) + loge = -1.3 + ieng * 0.2 emin = pow(10.0, loge-0.1) emax = pow(10.0, loge+0.1) if loge < 0: diff --git a/test/data/crab.xml b/test/data/crab.xml index b65f128..4a73e2b 100644 --- a/test/data/crab.xml +++ b/test/data/crab.xml @@ -11,14 +11,11 @@ - - - - - + + + + + - - - - + diff --git a/test/data/crab_events.fits.gz b/test/data/crab_events.fits.gz index 6449c61..1888505 100644 --- a/test/data/crab_events.fits.gz +++ b/test/data/crab_events.fits.gz diff --git a/test/data/model_cube_background.xml b/test/data/model_cube_background1.xml index b76b9ce..5f055e5 100644 --- a/test/data/model_cube_background.xml +++ b/test/data/model_cube_background1.xml @@ -1,6 +1,6 @@ - + diff --git a/test/data/model_temporal_phasecurve.xml b/test/data/model_temporal_phasecurve.xml index 2ad10b5..8d90994 100644 --- a/test/data/model_temporal_phasecurve.xml +++ b/test/data/model_temporal_phasecurve.xml @@ -12,7 +12,7 @@ - + diff --git a/test/data/models.txt b/test/data/models.txt index 48de7d9..85dd9a2 100644 --- a/test/data/models.txt +++ b/test/data/models.txt @@ -1,2 +1,2 @@ -model_cube_background.xml +model_cube_background1.xml model_cube_background2.xml diff --git a/test/test_cslightcrv.py b/test/test_cslightcrv.py index c69b271..d2ee79e 100755 --- a/test/test_cslightcrv.py +++ b/test/test_cslightcrv.py @@ -76,8 +76,9 @@ class Test(test): cmd = cslightcrv+' inobs="'+self._events+'"'+ \ ' inmodel="'+self._model+'" srcname="Crab"'+ \ ' caldb="'+self._caldb+'" irf="'+self._irf+'"'+ \ - ' tbinalg="LIN" tmin="MJD 51544.50" tmax="MJD 51544.53"'+ \ - ' tbins=3 method="3D" enumbins=0 emin=0.1 emax=100.0'+ \ + ' tbinalg=LIN '+ \ + ' tmin=2020-01-01T00:00:00 tmax=2020-01-01T00:30:00'+ \ + ' tbins=3 method=3D enumbins=0 emin=0.1 emax=100.0'+ \ ' outfile="lightcurve_cmd1.fits"'+ \ ' logfile="cslightcrv_cmd1.log" chatter=1' @@ -90,14 +91,15 @@ class Test(test): 'Check successful execution from command line') # Check light curve - self._check_light_curve('lightcurve_cmd1.fits', 3, 1.6e-16) + self._check_light_curve('lightcurve_cmd1.fits', 3) # Setup cslightcrv command cmd = cslightcrv+' inobs="events_that_do_not_exist.fits"'+ \ ' inmodel="'+self._model+'" srcname="Crab"'+ \ ' caldb="'+self._caldb+'" irf="'+self._irf+'"'+ \ - ' tbinalg="LIN" tmin="MJD 51544.50" tmax="MJD 51544.53"'+ \ - ' tbins=3 method="3D" enumbins=0 emin=0.1 emax=100.0'+ \ + ' tbinalg=LIN '+ \ + ' tmin=2020-01-01T00:00:00 tmax=2020-01-01T00:30:00'+ \ + ' tbins=3 method=3D enumbins=0 emin=0.1 emax=100.0'+ \ ' outfile="lightcurve_cmd1.fits"'+ \ ' logfile="cslightcrv_cmd2.log" debug=yes' @@ -124,8 +126,8 @@ class Test(test): lcrv['caldb'] = self._caldb lcrv['irf'] = self._irf lcrv['tbinalg'] = 'LIN' - lcrv['tmin'] = 'MJD 51544.50' - lcrv['tmax'] = 'MJD 51544.53' + lcrv['tmin'] = '2020-01-01T00:00:00' + lcrv['tmax'] = '2020-01-01T00:30:00' lcrv['tbins'] = 3 lcrv['method'] = '3D' lcrv['enumbins'] = 0 @@ -142,14 +144,14 @@ class Test(test): lcrv.save() # Check light curve - self._check_light_curve('cslightcrv_py1.fits', 3, 1.6e-16) + self._check_light_curve('cslightcrv_py1.fits', 3) # Now use FILE as time bin algorithm. For this we need first to # create an ASCII file. We use now 6 time bins. The ASCII file # is saved into the file "lightcurve_py2.dat". csv = gammalib.GCsv(2,2) - tmin = 51544.50 - tdelta = 0.01 + tmin = 58849.00 + tdelta = 0.0104166 for i in range(csv.nrows()): csv[i,0] = '%.5f' % (tmin + i * tdelta) csv[i,1] = '%.5f' % (tmin + (i+1) * tdelta) @@ -177,7 +179,7 @@ class Test(test): lcrv.execute() # Check light curve - self._check_light_curve('cslightcrv_py2.fits', 2, 1.6e-16) + self._check_light_curve('cslightcrv_py2.fits', 2) # Now we setup an observation container on input. We attached the # model to the observation container so that cslightcrv should @@ -206,7 +208,7 @@ class Test(test): lcrv.execute() # Check light curve - self._check_light_curve('cslightcrv_py3.fits', 1, 1.6e-16) + self._check_light_curve('cslightcrv_py3.fits', 1) # Binned cslightcrv lcrv = cscripts.cslightcrv() @@ -216,8 +218,8 @@ class Test(test): lcrv['caldb'] = self._caldb lcrv['irf'] = self._irf lcrv['tbinalg'] = 'LIN' - lcrv['tmin'] = 'MJD 51544.50' - lcrv['tmax'] = 'MJD 51544.53' + lcrv['tmin'] = '2020-01-01T00:00:00' + lcrv['tmax'] = '2020-01-01T00:30:00' lcrv['tbins'] = 2 lcrv['method'] = '3D' lcrv['emin'] = 0.1 @@ -238,7 +240,7 @@ class Test(test): lcrv.execute() # Check light curve - self._check_light_curve('cslightcrv_py4.fits', 2, 1.6e-16) + self._check_light_curve('cslightcrv_py4.fits', 2) # cslightcrv with classical analysis lcrv = cscripts.cslightcrv() @@ -268,13 +270,13 @@ class Test(test): lcrv.execute() # Check light curve - self._check_light_curve('cslightcrv_py5.fits', 2, 6.e-16) + self._check_light_curve('cslightcrv_py5.fits', 2) # Return return # Check light curve result file - def _check_light_curve(self, filename, bins,pref): + def _check_light_curve(self, filename, bins, prefactor=5.7e-16): """ Check light curve file """ @@ -304,13 +306,11 @@ class Test(test): self.test_assert(table.contains(col), 'FITS file contains "'+col+'" column') - # Check that table has been filled - # Prefactor has right order of magnitude + # Check that the Prefactor has the right order of magnitude for s in range(table.nrows()): - self.test_value(table['Prefactor'][s], pref, 0.2*pref, + self.test_value(table['Prefactor'][s], prefactor, 0.2*prefactor, 'Check prefactor value') - # Close FITS file fits.close() diff --git a/test/test_csmodelmerge.py b/test/test_csmodelmerge.py index d0a1d70..15af7a8 100755 --- a/test/test_csmodelmerge.py +++ b/test/test_csmodelmerge.py @@ -44,7 +44,7 @@ class Test(test): # Set members self._model1 = self._datadir + '/crab.xml' - self._model2 = self._datadir + '/model_cube_background.xml' + self._model2 = self._datadir + '/model_cube_background1.xml' self._model3 = self._datadir + '/model_cube_background*.xml' self._model4 = '@' + self._datadir + '/models.txt' diff --git a/test/test_csspec.py b/test/test_csspec.py index a56b028..861cc0c 100755 --- a/test/test_csspec.py +++ b/test/test_csspec.py @@ -49,6 +49,7 @@ class Test(test): self._psfcube = self._datadir + '/crab_psfcube.fits' self._edispcube = self._datadir + '/crab_edispcube.fits' self._bkgcube = self._datadir + '/crab_bkgcube.fits' + self._bkgmodel = self._datadir + '/crab_bkgcube.xml' self._onoff_model = self._datadir + '/onoff_model.xml' # Return @@ -146,14 +147,14 @@ class Test(test): # Check result file self._check_result_file('csspec_py1.fits', 5) - # Set-up binned csspec + # Set-up stacked csspec spec = cscripts.csspec() spec['inobs'] = self._inobs spec['expcube'] = self._expcube spec['psfcube'] = self._psfcube spec['edispcube'] = self._edispcube spec['bkgcube'] = self._bkgcube - spec['inmodel'] = self._model + spec['inmodel'] = self._bkgmodel spec['srcname'] = 'Crab' spec['method'] = 'AUTO' spec['ebinalg'] = 'LOG' diff --git a/test/test_cstsdist.py b/test/test_cstsdist.py index b019ea7..ca3524d 100755 --- a/test/test_cstsdist.py +++ b/test/test_cstsdist.py @@ -145,7 +145,7 @@ class Test(test): return # Check result file - def _check_result_file(self, filename, ncols=11): + def _check_result_file(self, filename, ncols=9): """ Check result file diff --git a/test/test_csworkflow.py b/test/test_csworkflow.py index eeab642..dcab1c7 100755 --- a/test/test_csworkflow.py +++ b/test/test_csworkflow.py @@ -146,13 +146,11 @@ class Test(test): self.test_value(models['Crab'][2].value(), 5.71055e-16, 1.0e-5, 'Crab prefactor') self.test_value(models['Crab'][3].value(), - -2.463392, 1.0e-5, 'Crab index') - self.test_value(models['Background'][0].value(), - 3.008828, 1.0e-5, 'Background model sigma') - self.test_value(models['Background'][1].value(), - 6.27131e-05, 1.0e-5, 'Background model prefactor') - self.test_value(models['Background'][2].value(), - -1.833184, 1.0e-5, 'Background model index') + -2.46174095362681, 1.0e-5, 'Crab index') + self.test_value(models['CTABackgroundModel'][0].value(), + 1.01831847752743, 1.0e-5, 'Background model prefactor') + self.test_value(models['CTABackgroundModel'][1].value(), + 0.00742512418279459, 1.0e-5, 'Background model index') # Return return diff --git a/test/test_ctbin.py b/test/test_ctbin.py index 5d0a65c..3163f58 100755 --- a/test/test_ctbin.py +++ b/test/test_ctbin.py @@ -87,7 +87,7 @@ class Test(test): # Load counts cube and check content. evt = gammalib.GCTAEventCube('cntmap_cmd1.fits') - self._check_cube(evt, 5542) + self._check_cube(evt, 18483) # Setup ctbin command cmd = ctbin+' inobs="events_that_do_not_exist.fits"'+ \ @@ -115,7 +115,7 @@ class Test(test): # Load counts cube and check content. evt = gammalib.GCTAEventCube('cntmap_cmd3.fits') - self._check_cube(evt, 890) + self._check_cube(evt, 3689) # Check ctbin --help self._check_help(ctbin) @@ -174,15 +174,15 @@ class Test(test): binning.run() # Check content of observation container and counts cube - self._check_observation(binning, 5542) - self._check_cube(binning.cube(), 5542) + self._check_observation(binning, 18483) + self._check_cube(binning.cube(), 18483) # Copy ctbin tool cpy_bin = binning.copy() # Check content of observation container and counts cube - self._check_observation(cpy_bin, 5542) - self._check_cube(cpy_bin.cube(), 5542) + self._check_observation(cpy_bin, 18483) + self._check_cube(cpy_bin.cube(), 18483) # Run copy of ctbin tool again cpy_bin['logfile'] = 'ctbin_py2.log' @@ -201,7 +201,7 @@ class Test(test): # Load counts cube and check content evt = gammalib.GCTAEventCube('ctbin_py1.fits') - self._check_cube(evt, 5542) + self._check_cube(evt, 18483) # Now clear ctbin tool binning.clear() @@ -241,12 +241,12 @@ class Test(test): # Check content of observation and cube (need multiplier=3 since # three identical observations have been appended) - self._check_observation(binning, 5542, multiplier=3) - self._check_cube(binning.cube(), 5542, multiplier=3) + self._check_observation(binning, 18483, multiplier=3) + self._check_cube(binning.cube(), 18483, multiplier=3) # Load counts cube and check content. evt = gammalib.GCTAEventCube('ctbin_py3.fits') - self._check_cube(evt, 5542, multiplier=3) + self._check_cube(evt, 18483, multiplier=3) # And finally go for a fully Pythonic version with all parameters # being specified in a dictionary @@ -262,7 +262,7 @@ class Test(test): # Load counts cube and check content evt = gammalib.GCTAEventCube('ctbin_py4.fits') - self._check_cube(evt, 5542) + self._check_cube(evt, 18483) # Return return @@ -290,11 +290,11 @@ class Test(test): 'Check that the one observation is a CTA observation') self.test_value(obs.ontime(), 1800.0*multiplier, 1.0e-6, 'Check ontime of observation') - self.test_value(obs.livetime(), 1710.0*multiplier, 1.0e-6, + self.test_value(obs.livetime(), 1764.0*multiplier, 1.0e-6, 'Check livetime of observation') self.test_value(pnt.dir().ra_deg(), 83.63, 1.0e-6, 'Check pointing Right Ascension of observation') - self.test_value(pnt.dir().dec_deg(), 22.01, 1.0e-6, + self.test_value(pnt.dir().dec_deg(), 22.51, 1.0e-6, 'Check pointing Declination of observation') # Test event cube diff --git a/test/test_cterror.py b/test/test_cterror.py index b83f81a..baf3b1d 100755 --- a/test/test_cterror.py +++ b/test/test_cterror.py @@ -263,26 +263,30 @@ class Test(test): # If there are models in the container then check them if nmodels > 0: - self.test_value(models['Crab']['Prefactor'].value(), 1.58907e-16, - 1.0e-3, 'Check fitted Crab Prefactor') - self.test_value(models['Crab']['Prefactor'].error(), 0.0529105e-16, - 1.0e-3, 'Check Crab Prefactor error') - self.test_value(models['Crab']['Index'].value(), -2.43549, - 1.0e-3, 'Check fitted Crab Index') - self.test_value(models['Crab']['Index'].error(), 0.027804, - 1.0e-3, 'Check Crab Index error') - self.test_value(models['Background']['Prefactor'].value(), 61.6919e-6, - 1.0e-3, 'Check fitted background Prefactor') - self.test_value(models['Background']['Prefactor'].error(), 1.49438e-6, - 1.0e-3, 'Check background Prefactor error') - self.test_value(models['Background']['Index'].value(), -2.20535, - 1.0e-3, 'Check fitted background Index') - self.test_value(models['Background']['Index'].error(), 0.0113269, - 1.0e-3, 'Check background Index error') - self.test_value(models['Background']['Sigma'].value(), 3.04252, - 1.0e-3, 'Check fitted background Sigma') - self.test_value(models['Background']['Sigma'].error(), 0.0307008, - 1.0e-3, 'Check background Sigma error') + self.test_value(models['Crab']['Prefactor'].value(), + 5.767533e-16, 1.0e-4 * 5.767533e-16, + 'Check fitted Crab Prefactor') + self.test_value(models['Crab']['Prefactor'].error(), + 1.011887e-17, 1.0e-4 * 1.011887e-17, + 'Check Crab Prefactor error') + self.test_value(models['Crab']['Index'].value(), + -2.462279, 1.0e-4 * 2.462279, + 'Check fitted Crab Index') + self.test_value(models['Crab']['Index'].error(), + 0.0148518, 1.0e-4 * 0.0148518, + 'Check Crab Index error') + self.test_value(models['CTABackgroundModel']['Prefactor'].value(), + 1.0197698, 1.0e-4 * 1.0197698, + 'Check fitted background Prefactor') + self.test_value(models['CTABackgroundModel']['Prefactor'].error(), + 0.013578, 1.0e-4 * 0.013578, + 'Check background Prefactor error') + self.test_value(models['CTABackgroundModel']['Index'].value(), + 0.00836407, 1.0e-4 * 0.00836407, + 'Check fitted background Index') + self.test_value(models['CTABackgroundModel']['Index'].error(), + 0.00811674, 1.0e-4 * 0.00811674, + 'Check background Index error') # Return return diff --git a/test/test_ctlike.py b/test/test_ctlike.py index fcc6c92..98b850b 100755 --- a/test/test_ctlike.py +++ b/test/test_ctlike.py @@ -253,26 +253,30 @@ class Test(test): # If there are models in the container then check them if nmodels > 0: - self.test_value(models['Crab']['Prefactor'].value(), 1.58907e-16, - 1.0e-3, 'Check fitted Crab Prefactor') - self.test_value(models['Crab']['Prefactor'].error(), 0.0526982e-16, - 1.0e-3, 'Check Crab Prefactor error') - self.test_value(models['Crab']['Index'].value(), -2.43549, - 1.0e-3, 'Check fitted Crab Index') - self.test_value(models['Crab']['Index'].error(), 0.0248116, - 1.0e-3, 'Check Crab Index error') - self.test_value(models['Background']['Prefactor'].value(), 61.6919e-6, - 1.0e-3, 'Check fitted background Prefactor') - self.test_value(models['Background']['Prefactor'].error(), 1.49438e-6, - 1.0e-3, 'Check background Prefactor error') - self.test_value(models['Background']['Index'].value(), -2.20535, - 1.0e-3, 'Check fitted background Index') - self.test_value(models['Background']['Index'].error(), 0.0113269, - 1.0e-3, 'Check background Index error') - self.test_value(models['Background']['Sigma'].value(), 3.04252, - 1.0e-3, 'Check fitted background Sigma') - self.test_value(models['Background']['Sigma'].error(), 0.0307008, - 1.0e-3, 'Check background Sigma error') + self.test_value(models['Crab']['Prefactor'].value(), + 5.767533e-16, 1.0e-4 * 5.767533e-16, + 'Check fitted Crab Prefactor') + self.test_value(models['Crab']['Prefactor'].error(), + 1.018351e-17, 1.0e-4 * 1.018351e-17, + 'Check Crab Prefactor error') + self.test_value(models['Crab']['Index'].value(), + -2.462279, 1.0e-4 * 2.462279, + 'Check fitted Crab Index') + self.test_value(models['Crab']['Index'].error(), + 0.0151608, 1.0e-4 * 0.0151608, + 'Check Crab Index error') + self.test_value(models['CTABackgroundModel']['Prefactor'].value(), + 1.0197698, 1.0e-4 * 1.0197698, + 'Check fitted background Prefactor') + self.test_value(models['CTABackgroundModel']['Prefactor'].error(), + 0.013578, 1.0e-4 * 0.013578, + 'Check background Prefactor error') + self.test_value(models['CTABackgroundModel']['Index'].value(), + 0.00836407, 1.0e-4 * 0.00836407, + 'Check fitted background Index') + self.test_value(models['CTABackgroundModel']['Index'].error(), + 0.00811674, 1.0e-4 * 0.00811674, + 'Check background Index error') # Return return diff --git a/test/test_ctobssim.py b/test/test_ctobssim.py index a21d35a..1b51ac9 100755 --- a/test/test_ctobssim.py +++ b/test/test_ctobssim.py @@ -90,7 +90,7 @@ class Test(test): # Load counts cube and check content. evt = gammalib.GCTAEventList('ctobssim_cmd1.fits') - self._test_list(evt, 7105) + self._test_list(evt, 23822) # Setup ctobssim command cmd = ctobssim+' inmodel="model_that_does_not_exist.xml"'+ \ @@ -156,14 +156,14 @@ class Test(test): # Check content of observation self._test_observation(sim) - self._test_list(sim.obs()[0].events(), 7105) + self._test_list(sim.obs()[0].events(), 23822) # Save events sim.save() # Load counts cube and check content. evt = gammalib.GCTAEventList('ctobssim_py1.fits') - self._test_list(evt, 7105) + self._test_list(evt, 23822) # Set-up observation container pnts = [{'ra': 83.63, 'dec': 21.01}, @@ -191,10 +191,10 @@ class Test(test): # Retrieve observation and check content self._test_observation(sim, nobs=4, pnts=pnts) - self._test_list(sim.obs()[0].events(), 6199) - self._test_list(sim.obs()[1].events(), 6305) - self._test_list(sim.obs()[2].events(), 6092) - self._test_list(sim.obs()[3].events(), 6192) + self._test_list(sim.obs()[0].events(), 22904) + self._test_list(sim.obs()[1].events(), 23130) + self._test_list(sim.obs()[2].events(), 22672) + self._test_list(sim.obs()[3].events(), 22549) # Save events sim.save() @@ -203,20 +203,20 @@ class Test(test): obs = gammalib.GObservations('ctobssim_py2.xml') # Retrieve observation and check content - self._test_list(obs[0].events(), 6199) - self._test_list(obs[1].events(), 6305) - self._test_list(obs[2].events(), 6092) - self._test_list(obs[3].events(), 6192) + self._test_list(obs[0].events(), 22904) + self._test_list(obs[1].events(), 23130) + self._test_list(obs[2].events(), 22672) + self._test_list(obs[3].events(), 22549) # Copy ctobssim tool cpy_sim = sim.copy() # Retrieve observation and check content of copy self._test_observation(cpy_sim, nobs=4, pnts=pnts) - self._test_list(cpy_sim.obs()[0].events(), 6199) - self._test_list(cpy_sim.obs()[1].events(), 6305) - self._test_list(cpy_sim.obs()[2].events(), 6092) - self._test_list(cpy_sim.obs()[3].events(), 6192) + self._test_list(cpy_sim.obs()[0].events(), 22904) + self._test_list(cpy_sim.obs()[1].events(), 23130) + self._test_list(cpy_sim.obs()[2].events(), 22672) + self._test_list(cpy_sim.obs()[3].events(), 22549) # Execute copy of ctobssim tool again, now with a higher chatter # level than before @@ -230,10 +230,10 @@ class Test(test): # Check result file obs = gammalib.GObservations('ctobssim_py3.xml') self.test_value(obs.size(), 4, 'Check for number of observations') - self._test_list(obs[0].events(), 6199) - self._test_list(obs[1].events(), 6305) - self._test_list(obs[2].events(), 6092) - self._test_list(obs[3].events(), 6192) + self._test_list(obs[0].events(), 22904) + self._test_list(obs[1].events(), 23130) + self._test_list(obs[2].events(), 22672) + self._test_list(obs[3].events(), 22549) # Return return diff --git a/test/test_ctphase.py b/test/test_ctphase.py index c4b5172..00f3cc2 100644 --- a/test/test_ctphase.py +++ b/test/test_ctphase.py @@ -149,7 +149,7 @@ class Test(test): phase['inobs'] = self._events phase['inmodel'] = 'NONE' phase['srcname'] = 'NONE' - phase['mjd'] = 51544.5 + phase['mjd'] = 58849.0 phase['phase'] = 0.0 phase['f0'] = 1.0 phase['f1'] = 0.1 @@ -187,7 +187,7 @@ class Test(test): phase['inobs'] = self._events phase['inmodel'] = 'NONE' phase['srcname'] = 'NONE' - phase['mjd'] = 51500.0 + phase['mjd'] = 58860.0 phase['phase'] = 0.0 phase['f0'] = 1.0 phase['f1'] = 0.1 @@ -252,7 +252,7 @@ class Test(test): return # Check result file - def _check_result_file(self, filename, nevents=6141): + def _check_result_file(self, filename, nevents=22220): """ Check result file diff --git a/test/test_ctprob.py b/test/test_ctprob.py index 3c959b9..214772d 100755 --- a/test/test_ctprob.py +++ b/test/test_ctprob.py @@ -202,7 +202,7 @@ class Test(test): return # Check result file - def _check_result_file(self, filename, nevents=6141): + def _check_result_file(self, filename, nevents=22220): """ Check result file @@ -220,7 +220,7 @@ class Test(test): self._check_events(events, nevents=nevents) # Check that probability columns exist - colname1 = 'PROB_Background' + colname1 = 'PROB_CTABackgroundModel' colname2 = 'PROB_Crab' self._check_column(filename, colname1) self._check_column(filename, colname2) @@ -232,7 +232,7 @@ class Test(test): return # Check observation and event list - def _check_obs(self, obs, nobs=1, nevents=6141): + def _check_obs(self, obs, nobs=1, nevents=22220): """ Check observation and event list @@ -257,7 +257,7 @@ class Test(test): return # Check events - def _check_events(self, events, nevents=6141): + def _check_events(self, events, nevents=22220): """ Check event list diff --git a/test/test_ctselect.py b/test/test_ctselect.py index 9e0cd3a..a815996 100755 --- a/test/test_ctselect.py +++ b/test/test_ctselect.py @@ -72,8 +72,8 @@ class Test(test): # Setup ctselect command cmd = ctselect+' inobs="'+self._events+'"'+ \ ' outobs="ctselect_cmd1.fits"'+ \ - ' ra=83.63 dec=22.01 rad=3.0'+ \ - ' tmin=500.0 tmax=1000.0'+ \ + ' ra=83.63 dec=22.01 rad=2.0'+ \ + ' tmin=2020-01-01T00:08:20 tmax=2020-01-01T00:16:40'+ \ ' emin=0.2 emax=80.0'+ \ ' logfile="ctselect_cmd1.log" chatter=1' @@ -91,8 +91,8 @@ class Test(test): # Setup ctselect command cmd = ctselect+' inobs="event_file_that_does_not_exist.fits"'+ \ ' outobs="ctselect_cmd2.fits"'+ \ - ' ra=83.63 dec=22.01 rad=3.0'+ \ - ' tmin=500.0 tmax=1000.0'+ \ + ' ra=83.63 dec=22.01 rad=2.0'+ \ + ' tmin=2020-01-01T00:08:20 tmax=2020-01-01T00:16:40'+ \ ' emin=0.2 emax=80.0'+ \ ' logfile="ctselect_cmd2.log" debug=yes chatter=1' @@ -132,9 +132,9 @@ class Test(test): select['inobs'] = self._events select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 3 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 2.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 0.2 select['emax'] = 80.0 select['outobs'] = 'ctselect_py1.fits' @@ -181,7 +181,7 @@ class Test(test): # to valid event selections, but since the maximum values are still # 'NONE', no event selections should occur. cpy_select['usepnt'] = True - cpy_select['tmin'] = 500.0 + cpy_select['tmin'] = '2020-01-01T00:08:20' cpy_select['emin'] = 0.2 cpy_select['usethres'] = 'USER' cpy_select['outobs'] = 'ctselect_py3.fits' @@ -213,9 +213,9 @@ class Test(test): select = ctools.ctselect(obs) select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 3.0 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 2.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 120.0 select['emax'] = 130.0 select['expr'] = 'DETX == 0' @@ -236,9 +236,9 @@ class Test(test): select['inobs'] = self._invalid_events select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 3 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 2.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 0.2 select['emax'] = 80.0 select['outobs'] = 'ctselect_py5.fits' @@ -260,9 +260,9 @@ class Test(test): select['inobs'] = self._events+'[EVENTS]' select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 3.0 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 2.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 0.2 select['emax'] = 0.0 # Signals that "emax" should be ignored select['outobs'] = 'ctselect_py6.fits' @@ -274,16 +274,16 @@ class Test(test): select.execute() # Check result file - self._check_result_file('ctselect_py6.fits', nevents=595) + self._check_result_file('ctselect_py6.fits') # Now ignore the "emin" value. select = ctools.ctselect() select['inobs'] = self._events+'[EVENTS]' select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 3.0 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 2.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 0.0 # Signals that "emin" should be ignored select['emax'] = 80.0 select['outobs'] = 'ctselect_py7.fits' @@ -295,7 +295,7 @@ class Test(test): select.execute() # Check result file - self._check_result_file('ctselect_py7.fits', nevents=1684) + self._check_result_file('ctselect_py7.fits', nevents=4709) # Now set "emin > emax" select['emin'] = 150.0 @@ -318,9 +318,9 @@ class Test(test): select['inobs'] = self._events select['ra'] = 83.63 select['dec'] = 24.01 - select['rad'] = 5.0 - select['tmin'] = 500.0 - select['tmax'] = 1000.0 + select['rad'] = 3.0 + select['tmin'] = '2020-01-01T00:08:20' + select['tmax'] = '2020-01-01T00:16:40' select['emin'] = 0.2 select['emax'] = 80.0 select['outobs'] = 'ctselect_py9.fits' @@ -332,7 +332,8 @@ class Test(test): select.execute() # Check result file - self._check_result_file('ctselect_py9.fits', nevents=466, dec=24.01) + self._check_result_file('ctselect_py9.fits', nevents=781, dec=24.01, + rad=1.5) # Now put the RoI outside the existing RoI. This should leave to # an empty event list. @@ -348,14 +349,14 @@ class Test(test): # Check result file self._check_result_file('ctselect_py10.fits', nevents=0, dec=-22.01, - rad=5.0) + rad=3.0) # Now test phase cut select = ctools.ctselect() select['inobs'] = self._phased_events select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 5.0 + select['rad'] = 2.0 select['tmin'] = 'INDEF' select['tmax'] = 'INDEF' select['emin'] = 0.1 @@ -370,14 +371,14 @@ class Test(test): select.execute() # Check result file - self._check_result_file('ctselect_py11.fits', nevents=1909, rad=5.0) + self._check_result_file('ctselect_py11.fits', nevents=1909) - # Now test anoother phase cut + # Now test another phase cut select = ctools.ctselect() select['inobs'] = self._phased_events select['ra'] = 83.63 select['dec'] = 22.01 - select['rad'] = 5.0 + select['rad'] = 2.0 select['tmin'] = 'INDEF' select['tmax'] = 'INDEF' select['emin'] = 0.1 @@ -392,7 +393,7 @@ class Test(test): select.execute() # Check result file - self._check_result_file('ctselect_py12.fits', nevents=1995, rad=5.0) + self._check_result_file('ctselect_py12.fits', nevents=1995) # Test invalid minimum phase value self.test_try('Test invalid minimum phase value') @@ -482,7 +483,7 @@ class Test(test): return # Check result file - def _check_result_file(self, filename, nevents=591, dec=22.01, rad=3.0): + def _check_result_file(self, filename, nevents=2307, dec=22.01, rad=2.0): """ Check result file @@ -507,7 +508,7 @@ class Test(test): return # Check observation and event list - def _check_obs(self, obs, nobs=1, nevents=591): + def _check_obs(self, obs, nobs=1, nevents=2307): """ Check observation and event list @@ -532,7 +533,7 @@ class Test(test): return # Check events - def _check_events(self, events, nevents=591, dec=22.01, rad=3.0): + def _check_events(self, events, nevents=2307, dec=22.01, rad=2.0): """ Check event list diff --git a/test/test_ctulimit.py b/test/test_ctulimit.py index eeabb6e..98f2aed 100755 --- a/test/test_ctulimit.py +++ b/test/test_ctulimit.py @@ -143,11 +143,11 @@ class Test(test): ulimit.save() # Check results - self.test_value(ulimit.diff_ulimit(), 8.86803e-18, 1.0e-21, + self.test_value(ulimit.diff_ulimit(), 3.05020546110845e-17, 1.0e-21, 'Check differential upper limit') - self.test_value(ulimit.flux_ulimit(), 6.10509e-12, 1.0e-16, + self.test_value(ulimit.flux_ulimit(), 2.07242046724517e-11, 1.0e-16, 'Check upper limit on photon flux') - self.test_value(ulimit.eflux_ulimit(), 2.75669e-11, 1.0e-16, + self.test_value(ulimit.eflux_ulimit(), 9.20229587739368e-11, 1.0e-16, 'Check upper limit on energy flux') # Check obs() method @@ -161,19 +161,19 @@ class Test(test): cpy_ulimit = ulimit.copy() # Check results of copy - self.test_value(cpy_ulimit.diff_ulimit(), 8.86803e-18, 1.0e-21, + self.test_value(cpy_ulimit.diff_ulimit(), 3.05020546110845e-17, 1.0e-21, 'Check differential upper limit') - self.test_value(cpy_ulimit.flux_ulimit(), 6.10509e-12, 1.0e-16, + self.test_value(cpy_ulimit.flux_ulimit(), 2.07242046724517e-11, 1.0e-16, 'Check upper limit on photon flux') - self.test_value(cpy_ulimit.eflux_ulimit(), 2.75669e-11, 1.0e-16, + self.test_value(cpy_ulimit.eflux_ulimit(), 9.20229587739368e-11, 1.0e-16, 'Check upper limit on energy flux') # Check results - self.test_value(cpy_ulimit.diff_ulimit(), 8.86803e-18, 1.0e-21, + self.test_value(cpy_ulimit.diff_ulimit(), 3.05020546110845e-17, 1.0e-21, 'Check differential upper limit') - self.test_value(cpy_ulimit.flux_ulimit(), 6.10509e-12, 1.0e-16, + self.test_value(cpy_ulimit.flux_ulimit(), 2.07242046724517e-11, 1.0e-16, 'Check upper limit on photon flux') - self.test_value(cpy_ulimit.eflux_ulimit(), 2.75669e-11, 1.0e-16, + self.test_value(cpy_ulimit.eflux_ulimit(), 9.20229587739368e-11, 1.0e-16, 'Check upper limit on energy flux') # Now clear copy of ctulimit tool @@ -208,11 +208,11 @@ class Test(test): ulimit.execute() # Check results - self.test_value(ulimit.diff_ulimit(), 8.86803e-18, 1.0e-21, + self.test_value(ulimit.diff_ulimit(), 3.05020546110845e-17, 1.0e-21, 'Check differential upper limit') - self.test_value(ulimit.flux_ulimit(), 6.10509e-12, 1.0e-16, + self.test_value(ulimit.flux_ulimit(), 2.07242046724517e-11, 1.0e-16, 'Check upper limit on photon flux') - self.test_value(ulimit.eflux_ulimit(), 2.75669e-11, 1.0e-16, + self.test_value(ulimit.eflux_ulimit(), 9.20229587739368e-11, 1.0e-16, 'Check upper limit on energy flux') # Test invalid model name diff --git a/test/test_obsutils.py b/test/test_obsutils.py index ec5ef80..cd74947 100755 --- a/test/test_obsutils.py +++ b/test/test_obsutils.py @@ -113,14 +113,14 @@ class Test(test): # Check simulation results self.test_value(res.size(), 1, 'Check number of observations') self.test_value(res.models().size(), 2, 'Check number of models') - self.test_value(res.nobserved(), 40, 'Check number of observed events') + self.test_value(res.nobserved(), 48, 'Check number of observed events') self.test_value(res.npred(), 0.0, 'Check number of predicted events') self.test_value(res[0].eventtype(), 'EventList', 'Check event type') self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, 'Check minimum energy') self.test_value(res[0].events().ebounds().emax().TeV(), 10.0, 'Check minimum energy') - self.test_value(res[0].events().number(), 40, + self.test_value(res[0].events().number(), 48, 'Check number of events in list') # Check energy dispersion flag @@ -144,7 +144,7 @@ class Test(test): # Check simulation results self.test_value(res.size(), 1, 'Check number of observations') self.test_value(res.models().size(), 2, 'Check number of models') - self.test_value(res.nobserved(), 40, 'Check number of observed events') + self.test_value(res.nobserved(), 48, 'Check number of observed events') self.test_value(res.npred(), 0.0, 'Check number of predicted events') self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, @@ -153,7 +153,7 @@ class Test(test): 'Check minimum energy') self.test_value(res[0].events().ebounds().size(), 5, 'Check number of energy bins') - self.test_value(res[0].events().number(), 40, + self.test_value(res[0].events().number(), 48, 'Check number of events in cube') # Check energy dispersion flag @@ -177,7 +177,7 @@ class Test(test): # Check simulation results self.test_value(res.size(), 1, 'Check number of observations') self.test_value(res.models().size(), 2, 'Check number of models') - self.test_value(res.nobserved(), 86, 'Check number of observed events') + self.test_value(res.nobserved(), 96, 'Check number of observed events') self.test_value(res.npred(), 0.0, 'Check number of predicted events') self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, @@ -186,7 +186,7 @@ class Test(test): 'Check minimum energy') self.test_value(res[0].events().ebounds().size(), 5, 'Check number of energy bins') - self.test_value(res[0].events().number(), 86, + self.test_value(res[0].events().number(), 96, 'Check number of events in cube') # Check energy dispersion flag @@ -211,7 +211,7 @@ class Test(test): # Check simulation results self.test_value(res.size(), 1, 'Check number of observations') self.test_value(res.models().size(), 2, 'Check number of models') - self.test_value(res.nobserved(), 82, 'Check number of observed events') + self.test_value(res.nobserved(), 98, 'Check number of observed events') self.test_value(res.npred(), 0.0, 'Check number of predicted events') self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, @@ -220,7 +220,7 @@ class Test(test): 'Check minimum energy') self.test_value(res[0].events().ebounds().size(), 5, 'Check number of energy bins') - self.test_value(res[0].events().number(), 82, + self.test_value(res[0].events().number(), 98, 'Check number of events in cube') # Check energy dispersion flag @@ -306,7 +306,7 @@ class Test(test): # Check simulation results self.test_value(res.size(), 1, 'Check number of observations') self.test_value(res.models().size(), 2, 'Check number of models') - self.test_value(res.nobserved(), 40, 'Check number of observed events') + self.test_value(res.nobserved(), 48, 'Check number of observed events') self.test_value(res.npred(), 0.0, 'Check number of predicted events') self.test_value(res[0].eventtype(), 'EventList', 'Check event type') self.test_value(res[0].events().ebounds().emin().TeV(), 1.0,