Commit eaed5d9711d59a426cb647bb2229ec86a6640d40

Authored by Jürgen Knödlseder
1 parent 79b69a65

Add optional Phibar normalisation to comobsback and change default BGDLIX parameters

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
... ...