Commit 4109dc8fbd6395a0936d0372d0d6878171082c06

Authored by Jürgen Knödlseder
1 parent b4137537

Remove obsolete code from BGDLIXE (#3738)

Showing 1 changed file with 47 additions and 107 deletions
modules/comscripts/comobsback.py
... ... @@ -584,12 +584,6 @@ class comobsback(ctools.csobservation):
584 584 scrat = drg.copy()
585 585 drb = drg.copy()
586 586  
587   - # Initialise Chi2 and nincl2 map for bookkeeping
588   - chi2_map = drg.map().copy()
589   - nincl2_map = drg.map().copy()
590   - chi2_map.stack_maps()
591   - nincl2_map.stack_maps()
592   -
593 587 # Do Phibar normalization of DRG and store result in SCRAT.
594 588 for i3 in range(nphibar):
595 589 sum_dre = 0.0
... ... @@ -614,105 +608,57 @@ class comobsback(ctools.csobservation):
614 608 srcatfile = gammalib.GFilename(srcatname)
615 609 scrat.save(srcatfile, self['clobber'].boolean())
616 610  
617   - # Initialise array of
618   - nincl2_hist = [0.0 for i in range(nincl2+1)]
619   -
620 611 # Make background model
621 612 for i1 in range(nchi):
622 613 for i2 in range(npsi):
623 614  
624   - # Initialise nincl2 (add one since we reduce at beginning)
625   - nincl2 = int(nincl/2) + 1
626   -
627   - # Loop while nincl2 is larger than 1
628   - while nincl2 > 1:
629   -
630   - # Reduce nincl2
631   - nincl2 -= 1
632   -
633   - # Initialise Chi-squared
634   - chi2 = 0.0
635   - ndof = 0.0
636   -
637   - # Loop over Phibar
638   - for i3 in range(nphibar):
639   -
640   - # Determine index range for sum. There are two sums that
641   - # go over [isel1, iex1[ and [ixe2, isel2[
642   - iex1 = i3 - nexcl2
643   - iex2 = i3 + nexcl2 + 1
644   - if nexcl == 0:
645   - iex2 -= 1
646   - isel1 = max((i3 - nincl2), 0)
647   - isel2 = min((i3 + nincl2 + 1), nphibar)
648   - if isel1 == 0:
649   - isel2 = min(nincl, nphibar)
650   - if isel2 == nphibar:
651   - isel1 = max(nphibar - nincl, 0)
652   -
653   - # Initialise sums
654   - sum_dre = 0.0
655   - sum_drm = 0.0
656   - sum_scrat = 0.0
657   -
658   - # Compute average over small patch in Chi/Psi
659   - for j1 in range(max(0, i1 - navgr2), min(nchi, i1 + navgr2 + 1)):
660   - for j2 in range(max(0, i2 - navgr2), min(npsi, i2 + navgr2 + 1)):
661   -
662   - # Take sum over [isel1, iex1[
663   - if iex1 >= 1:
664   - for j3 in range(isel1, iex1):
665   - jpix = j1 + j2*nchi + j3*npix
666   - sum_dre += dre[jpix]
667   - sum_drm += drm[jpix]
668   - sum_scrat += scrat[jpix]
669   -
670   - # Take sum over [iex2, isel2[
671   - if iex2 < nphibar:
672   - for j3 in range(iex2, isel2):
673   - jpix = j1 + j2*nchi + j3*npix
674   - sum_dre += dre[jpix]
675   - sum_drm += drm[jpix]
676   - sum_scrat += scrat[jpix]
677   -
678   - # Re-normalise SCRAT to derive DRB
679   - ipix = i1 + i2*nchi + i3*npix
680   - if sum_scrat > 0.0:
681   - drb[ipix] = scrat[ipix] * (sum_dre-sum_drm)/sum_scrat
682   - else:
683   - drb[ipix] = 0.0
684   -
685   - # Compute Chi2
686   - if drb[ipix] > 0.0:
687   - arg = dre[ipix] - drm[ipix] - drb[ipix]
688   - chi2 += arg * arg / drb[ipix]
689   - ndof += 1.0
690   -
691   - # Normalise Chi2
692   - if ndof > 0.0:
693   - chi2 /= ndof
694   -
695   - # Update maps
696   - imap = i1 + i2*nchi
697   - chi2_map[imap] = chi2
698   - nincl2_map[imap] = nincl2
699   -
700   - # Break if Chi2 is below threshold
701   - if chi2 < 1.1:
702   - break
703   -
704   - # Log normalised Chi2
705   - #msg = '(Chi,Psi)=(%3d,%3d)' % (i1, i2)
706   - #value = '%.2f (%d)' % (chi2, nincl2)
707   - #self._log_value(gammalib.NORMAL, msg, value)
708   -
709   - # Update nincl2 histogram
710   - nincl2_hist[nincl2] += 1
  615 + # Loop over Phibar
  616 + for i3 in range(nphibar):
  617 +
  618 + # Determine index range for sum. There are two sums that
  619 + # go over [isel1, iex1[ and [ixe2, isel2[
  620 + iex1 = i3 - nexcl2
  621 + iex2 = i3 + nexcl2 + 1
  622 + if nexcl == 0:
  623 + iex2 -= 1
  624 + isel1 = max((i3 - nincl2), 0)
  625 + isel2 = min((i3 + nincl2 + 1), nphibar)
  626 + if isel1 == 0:
  627 + isel2 = min(nincl, nphibar)
  628 + if isel2 == nphibar:
  629 + isel1 = max(nphibar - nincl, 0)
  630 +
  631 + # Initialise sums
  632 + sum_dre = 0.0
  633 + sum_drm = 0.0
  634 + sum_scrat = 0.0
711 635  
712   - # Log nincl2 histogram
713   - for i in range(nincl/2+1):
714   - msg = '(Chi,Psi) with nincl2 = %d' % (i)
715   - self._log_value(gammalib.NORMAL, msg, nincl2_hist[i])
  636 + # Compute average over small patch in Chi/Psi
  637 + for j1 in range(max(0, i1 - navgr2), min(nchi, i1 + navgr2 + 1)):
  638 + for j2 in range(max(0, i2 - navgr2), min(npsi, i2 + navgr2 + 1)):
  639 +
  640 + # Take sum over [isel1, iex1[
  641 + if iex1 >= 1:
  642 + for j3 in range(isel1, iex1):
  643 + jpix = j1 + j2*nchi + j3*npix
  644 + sum_dre += dre[jpix]
  645 + sum_drm += drm[jpix]
  646 + sum_scrat += scrat[jpix]
  647 +
  648 + # Take sum over [iex2, isel2[
  649 + if iex2 < nphibar:
  650 + for j3 in range(iex2, isel2):
  651 + jpix = j1 + j2*nchi + j3*npix
  652 + sum_dre += dre[jpix]
  653 + sum_drm += drm[jpix]
  654 + sum_scrat += scrat[jpix]
  655 +
  656 + # Re-normalise SCRAT to derive DRB
  657 + ipix = i1 + i2*nchi + i3*npix
  658 + if sum_scrat > 0.0:
  659 + drb[ipix] = scrat[ipix] * (sum_dre-sum_drm)/sum_scrat
  660 + else:
  661 + drb[ipix] = 0.0
716 662  
717 663 # Get statistics
718 664 sum_dre = 0.0
... ... @@ -727,13 +673,7 @@ class comobsback(ctools.csobservation):
727 673 self._log_value(gammalib.NORMAL, 'Events in DRB', sum_drb)
728 674  
729 675 # Save DRB
730   - fits = gammalib.GFits()
731   - drb_hdu = drb.write(fits)
732   - chi2_hdu = chi2_map.write(fits)
733   - nincl2_hdu = nincl2_map.write(fits)
734   - chi2_hdu.extname('Chi-squared')
735   - nincl2_hdu.extname('nincl2')
736   - fits.saveto(drbfile, self['clobber'].boolean())
  676 + drb.save(drbfile, self['clobber'].boolean())
737 677  
738 678 # Log creation
739 679 self._log_value(gammalib.NORMAL, 'DRB file created', drbfile.url())
... ...