Commit eaed5d9711d59a426cb647bb2229ec86a6640d40
1 parent
79b69a65
Add optional Phibar normalisation to comobsback and change default BGDLIX parameters
Showing
8 changed files
with
94 additions
and
30 deletions
doc/source/users/reference_manual/comlixfit.rst
| ... | ... | @@ -44,16 +44,20 @@ General parameters |
| 44 | 44 | Fix spatial parameters for TS computation? |
| 45 | 45 | |
| 46 | 46 | ``(nrunav = 3) [integer]`` |
| 47 | - Number of bins used for running average. | |
| 47 | + Number of Chi/Psi bins used for running average (relevant for ``BGDLIXA`` | |
| 48 | + method). | |
| 48 | 49 | |
| 49 | -``(navgr = 3) [integer]`` | |
| 50 | - Number of bins used for averaging. | |
| 50 | +``(navgr = 9) [integer]`` | |
| 51 | + Number of Chi/Psi bins used for averaging (relevant for ``BGDLIXA`` and | |
| 52 | + ``BGDLIXE`` methods). | |
| 51 | 53 | |
| 52 | -``(nincl = 13) [integer]`` | |
| 53 | - Number of Phibar layers to include. | |
| 54 | +``(nincl = 5) [integer]`` | |
| 55 | + Number of Phibar layers to include (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 56 | + methods). | |
| 54 | 57 | |
| 55 | 58 | ``(nexcl = 0) [integer]`` |
| 56 | - Number of Phibar layers to exclude. | |
| 59 | + Number of Phibar layers to exclude (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 60 | + methods). | |
| 57 | 61 | |
| 58 | 62 | |
| 59 | 63 | Standard parameters | ... | ... |
doc/source/users/reference_manual/comlixmap.rst
| ... | ... | @@ -58,16 +58,20 @@ General parameters |
| 58 | 58 | Second coordinate of image center in degrees (DEC or galactic b). |
| 59 | 59 | |
| 60 | 60 | ``(nrunav = 3) [integer]`` |
| 61 | - Number of bins used for running average. | |
| 61 | + Number of Chi/Psi bins used for running average (relevant for ``BGDLIXA`` | |
| 62 | + method). | |
| 62 | 63 | |
| 63 | -``(navgr = 3) [integer]`` | |
| 64 | - Number of bins used for averaging. | |
| 64 | +``(navgr = 9) [integer]`` | |
| 65 | + Number of Chi/Psi bins used for averaging (relevant for ``BGDLIXA`` and | |
| 66 | + ``BGDLIXE`` methods). | |
| 65 | 67 | |
| 66 | -``(nincl = 13) [integer]`` | |
| 67 | - Number of Phibar layers to include. | |
| 68 | +``(nincl = 5) [integer]`` | |
| 69 | + Number of Phibar layers to include (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 70 | + methods). | |
| 68 | 71 | |
| 69 | 72 | ``(nexcl = 0) [integer]`` |
| 70 | - Number of Phibar layers to exclude. | |
| 73 | + Number of Phibar layers to exclude (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 74 | + methods). | |
| 71 | 75 | |
| 72 | 76 | |
| 73 | 77 | Standard parameters | ... | ... |
doc/source/users/reference_manual/comobsback.rst
| ... | ... | @@ -9,7 +9,18 @@ Generate background model for COMPTEL observations. |
| 9 | 9 | Synopsis |
| 10 | 10 | -------- |
| 11 | 11 | |
| 12 | -This script generates a background model for COMPTEL observations. | |
| 12 | +This script generates a background model for COMPTEL observations using either | |
| 13 | +the PHINOR, the BGDLIXA or the BGDLIXE algorithm. The resulting background | |
| 14 | +model will be written into a DRB FITS file that will be stored in the folder | |
| 15 | +defined by the ``outfolder`` parameter. The DRB FITS file name will be derived | |
| 16 | +from the DRE filename with the background modelling method and parameters | |
| 17 | +attached. An additional suffix, specified by the ``suffix`` parameter, may be | |
| 18 | +added to the DRB filename. | |
| 19 | + | |
| 20 | +The script also generates an output observation definition XML file, specified | |
| 21 | +by the ``outobs`` parameter, that contains a link to the generated background | |
| 22 | +model. This output observation definition XML file should be used for further | |
| 23 | +data analysis. | |
| 13 | 24 | |
| 14 | 25 | |
| 15 | 26 | General parameters |
| ... | ... | @@ -36,16 +47,25 @@ General parameters |
| 36 | 47 | Method for background computation. |
| 37 | 48 | |
| 38 | 49 | ``(nrunav = 3) [integer]`` |
| 39 | - Number of bins used for running average. | |
| 50 | + Number of Chi/Psi bins used for running average (relevant for ``BGDLIXA`` | |
| 51 | + method). | |
| 40 | 52 | |
| 41 | -``(navgr = 3) [integer]`` | |
| 42 | - Number of bins used for averaging. | |
| 53 | +``(navgr = 9) [integer]`` | |
| 54 | + Number of Chi/Psi bins used for averaging (relevant for ``BGDLIXA`` and | |
| 55 | + ``BGDLIXE`` methods). | |
| 43 | 56 | |
| 44 | -``(nincl = 13) [integer]`` | |
| 45 | - Number of Phibar layers to include. | |
| 57 | +``(nincl = 5) [integer]`` | |
| 58 | + Number of Phibar layers to include (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 59 | + methods). | |
| 46 | 60 | |
| 47 | 61 | ``(nexcl = 0) [integer]`` |
| 48 | - Number of Phibar layers to exclude. | |
| 62 | + Number of Phibar layers to exclude (relevant for ``BGDLIXA`` and ``BGDLIXE`` | |
| 63 | + methods). | |
| 64 | + | |
| 65 | +``(phinor = yes) [boolean]`` | |
| 66 | + Specifies whether the Phibar distribution of the resulting background model | |
| 67 | + should be normalised to the number of observed events minus the number of | |
| 68 | + source events. | |
| 49 | 69 | |
| 50 | 70 | |
| 51 | 71 | Standard parameters | ... | ... |
modules/comscripts/comlixfit.par
| ... | ... | @@ -30,9 +30,9 @@ max_iter, i, h, 50,1,1000, "Maximum number of SRCLIX iterations" |
| 30 | 30 | like_accuracy, r, h, 0.05,1.0e-30,1.0, "Absolute accuracy of maximum likelihood value" |
| 31 | 31 | fix_spat_for_ts, b, h, no,,, "Fix spatial parameters for TS computation?" |
| 32 | 32 | bkgmethod, s, a, BGDLIXE,PHINOR|BGDLIXA|BGDLIXE,, "Method for background computation" |
| 33 | -nrunav, i, h, 3,,, "Number of bins used for running average" | |
| 34 | -navgr, i, h, 3,,, "Number of bins used for averaging" | |
| 35 | -nincl, i, h, 13,,, "Number of Phibar layers to include" | |
| 33 | +nrunav, i, h, 3,,, "Number of Chi/Psi bins used for running average" | |
| 34 | +navgr, i, h, 9,,, "Number of Chi/Psi bins used for averaging" | |
| 35 | +nincl, i, h, 5,,, "Number of Phibar layers to include" | |
| 36 | 36 | nexcl, i, h, 0,,, "Number of Phibar layers to exclude" |
| 37 | 37 | |
| 38 | 38 | # | ... | ... |
modules/comscripts/comlixmap.par
| ... | ... | @@ -39,9 +39,9 @@ max_iter, i, h, 50,1,1000, "Maximum number of SRCLIX iterations" |
| 39 | 39 | like_accuracy, r, h, 0.05,1.0e-30,1.0, "Absolute accuracy of maximum likelihood value" |
| 40 | 40 | fix_spat, b, h, yes,,, "Fix spatial parameters for TS map computation?" |
| 41 | 41 | bkgmethod, s, a, BGDLIXE,PHINOR|BGDLIXA|BGDLIXE,, "Method for background computation" |
| 42 | -nrunav, i, h, 3,,, "Number of bins used for running average" | |
| 43 | -navgr, i, h, 3,,, "Number of bins used for averaging" | |
| 44 | -nincl, i, h, 13,,, "Number of Phibar layers to include" | |
| 42 | +nrunav, i, h, 3,,, "Number of Chi/Psi bins used for running average" | |
| 43 | +navgr, i, h, 9,,, "Number of Chi/Psi bins used for averaging" | |
| 44 | +nincl, i, h, 5,,, "Number of Phibar layers to include" | |
| 45 | 45 | nexcl, i, h, 0,,, "Number of Phibar layers to exclude" |
| 46 | 46 | |
| 47 | 47 | # | ... | ... |
modules/comscripts/comobsback.par
| ... | ... | @@ -26,10 +26,11 @@ outobs, f, a, obs_back.xml,,, "Output observation definition file" |
| 26 | 26 | # Script parameters |
| 27 | 27 | #================== |
| 28 | 28 | bkgmethod, s, a, BGDLIXE,PHINOR|BGDLIXA|BGDLIXE,, "Method for background computation" |
| 29 | -nrunav, i, h, 3,,, "Number of bins used for running average" | |
| 30 | -navgr, i, h, 3,,, "Number of bins used for averaging" | |
| 31 | -nincl, i, h, 13,,, "Number of Phibar layers to include" | |
| 29 | +nrunav, i, h, 3,,, "Number of Chi/Psi bins used for running average" | |
| 30 | +navgr, i, h, 9,,, "Number of Chi/Psi bins used for averaging" | |
| 31 | +nincl, i, h, 5,,, "Number of Phibar layers to include" | |
| 32 | 32 | nexcl, i, h, 0,,, "Number of Phibar layers to exclude" |
| 33 | +phinor, b, h, yes,,, "Normalise Phibar distribution?" | |
| 33 | 34 | |
| 34 | 35 | # |
| 35 | 36 | # Standard parameters | ... | ... |
modules/comscripts/comobsback.py
| ... | ... | @@ -60,6 +60,7 @@ class comobsback(ctools.csobservation): |
| 60 | 60 | self['suffix'].string() |
| 61 | 61 | self['outfolder'].string() |
| 62 | 62 | self['bkgmethod'].string() |
| 63 | + self['phinor'].boolean() | |
| 63 | 64 | |
| 64 | 65 | # Check parameters for BGDLIXA |
| 65 | 66 | if self['bkgmethod'].string() == 'BGDLIXA': |
| ... | ... | @@ -481,6 +482,23 @@ class comobsback(ctools.csobservation): |
| 481 | 482 | sum_num += scrat[ipix] |
| 482 | 483 | drb[ipixu] *= sum_num |
| 483 | 484 | |
| 485 | + # Optionally Phibar normalise DRB | |
| 486 | + if self['phinor'].boolean(): | |
| 487 | + for i3 in range(nphibar): | |
| 488 | + sum_dre = 0.0 | |
| 489 | + sum_drb = 0.0 | |
| 490 | + sum_drm = 0.0 | |
| 491 | + for i in range(npix): | |
| 492 | + ipix = i3*npix + i | |
| 493 | + sum_dre += dre[ipix] | |
| 494 | + sum_drb += drb[ipix] | |
| 495 | + sum_drm += drm[ipix] | |
| 496 | + if sum_drb > 0.0: | |
| 497 | + norm = (sum_dre-sum_drm) / sum_drb | |
| 498 | + for i in range(npix): | |
| 499 | + ipix = i3*npix + i | |
| 500 | + drb[ipix] *= norm | |
| 501 | + | |
| 484 | 502 | # Get statistics |
| 485 | 503 | sum_dre = 0.0 |
| 486 | 504 | sum_drm = 0.0 |
| ... | ... | @@ -660,6 +678,23 @@ class comobsback(ctools.csobservation): |
| 660 | 678 | else: |
| 661 | 679 | drb[ipix] = 0.0 |
| 662 | 680 | |
| 681 | + # Optionally Phibar normalise DRB | |
| 682 | + if self['phinor'].boolean(): | |
| 683 | + for i3 in range(nphibar): | |
| 684 | + sum_dre = 0.0 | |
| 685 | + sum_drb = 0.0 | |
| 686 | + sum_drm = 0.0 | |
| 687 | + for i in range(npix): | |
| 688 | + ipix = i3*npix + i | |
| 689 | + sum_dre += dre[ipix] | |
| 690 | + sum_drb += drb[ipix] | |
| 691 | + sum_drm += drm[ipix] | |
| 692 | + if sum_drb > 0.0: | |
| 693 | + norm = (sum_dre-sum_drm) / sum_drb | |
| 694 | + for i in range(npix): | |
| 695 | + ipix = i3*npix + i | |
| 696 | + drb[ipix] *= norm | |
| 697 | + | |
| 663 | 698 | # Get statistics |
| 664 | 699 | sum_dre = 0.0 |
| 665 | 700 | sum_drm = 0.0 | ... | ... |
test/test_comobsback.py
| ... | ... | @@ -150,7 +150,7 @@ class Test(test): |
| 150 | 150 | bgd.execute() |
| 151 | 151 | |
| 152 | 152 | # Check result |
| 153 | - self._check_result('comobsback_py2.xml', 'comobsback_py2', 'bgdlixA-nr3-na3-ni13-ne0') | |
| 153 | + self._check_result('comobsback_py2.xml', 'comobsback_py2', 'bgdlixA-nr3-na9-ni5-ne0') | |
| 154 | 154 | |
| 155 | 155 | # Test BGDLIXE |
| 156 | 156 | bgd = comscripts.comobsback() |
| ... | ... | @@ -167,7 +167,7 @@ class Test(test): |
| 167 | 167 | bgd.execute() |
| 168 | 168 | |
| 169 | 169 | # Check result |
| 170 | - self._check_result('comobsback_py3.xml', 'comobsback_py3', 'bgdlixE-na3-ni13-ne0') | |
| 170 | + self._check_result('comobsback_py3.xml', 'comobsback_py3', 'bgdlixE-na9-ni5-ne0') | |
| 171 | 171 | |
| 172 | 172 | # Return |
| 173 | 173 | return | ... | ... |