Please add development news to this page. Probably adding news items as Comments will be most convenient. This is kind of a Field of Dreams approach to gathering information.

  • No labels


  1. map_tools::gtexpcube

    This is a tool, implemented by the code in map_tools/src/gt_expcube/exposure_map.cxx, that creates an "exposure cube", a multilayer image from the combination of an effective area and the livetime cube.

    It was not updated when phi dependence was added to both the effective area and the livetime cube implementations.
    It turned out that the effective area in the irf P6_V8 differs from P6_V3 only in the addition of a table with the phi modulation, and that the previous version evaluated the effective area only at phi=0. This resulted in a difference in the exposure calculation of 10%. Looking at the Etendue plot for front and back at 1 GeV,

    note that evaluating at phi=0 can indeed introduce a 10% difference, which is dominated by back photons. Note that the phi-dependent effective area equals the mean at phi between 15 and 20 degrees for all energies.

    So I've updated the code to average the effective area over phi if there is no phi information in the livetime cube, or to do the combined integral over phi and theta if there is. In spite of a lot of effort, I can't get the v3/v8 to be less than around 1% different.

    7 Apr 2010. map_tools-07-05-02

    Added two hidden parameters:






    phi increment when averaging over the phi dependence in effective area
    limits are 1, 45: for the latter evaluate only at phi=15



    set to "yes" to ignore phi information if present in the livetime cube

    • Bug fix for energy bounds used to compute fluxes by gtlike in binned mode. The code was using the DSS keywords from the counts cube, but those keywords are obtained from one of the FT1 files (the first one?) fed to gtbin. If those FT1 files are partitioned by energy, the DSS energy selection keywords will not necessarily reflect the full range of the data. The code has been modified to read the energy range from the counts cube EBOUNDS extension. Likelihood-16-04-02.
  2. Unknown User (hirayama)

    In the pulsar tools development, the following improvement and bug fixes were done since the last report.

    • Fix a bug in binary demodulation (reported as JIRA PULS-53).
    • Improve the speed of barycentering for unsorted events (reported in scisoftlist).
    • Fix a bug in finding observation time span from GTIs (reported as JIRA PULS-54).
  3. Fixed a bug in the BinnedLikelihood calculation noted by Luigi Tibaldo. This had to do with integrating the model counts per pixel. For Luigi's example, this resulted in a disparity at the 1e-5 level for the calculation of the log-likelihood.

  4. Jean requested a new feature in the binned likelihood implementation whereby model map information for sources that have only fixed parameters be summed and stored as a single entity rather than have the corresponding maps held separately in memory. For example, if 10 sources in the xml model are entirely fixed, then in the aggregate they should take up roughly the same memory as single source. The code will modify the summed model if one of the sources is subsequently set free (in the python interface) and should behave as before, memory usage aside. Currently, this is a one-way operation: fixing a source that was previously free will not reduce the memory usage. This will be implemented next.

    Likelihood v16r5p0.

    • Likelihood-16-5-1
      • For binned analysis, fixing a freed source will now release the occupied memory and will update the summed model (see May 03 entry). Deleting and adding sources to the model (via the python interface) also now behaves correctly.
      • There is one remaining part to be implemented for this feature: changes of parameter values for fixed sources will not be recognized.
    • optimizers-02-18-00 (as of May 5, 2010, 7:35 am PT, the v2r18p0 tag as not been applied). pyLikelihood-01-22-00.
      • Johann added access to the nsigma level for the Minos and MnContour functions of the Minuit and NewMinuit (Minuit2) optimizers to enable users to find confidence intervals for selectable confidence ranges using the Minos functions.
    • Likelihood-16-6-0:
      • Changes from Stephen Fegan: refactoring of the caching of the response values for point sources that should save memory proportional to number of sources x number of events.
    • Likelihood-16-6-1:
      • bug-fix for binned analysis: removed redundant calculation of convolved maps in gtsrcmaps.
    • Likelihood-16-06-02
      • Bug-fix for CompositeLikelihood: It can now handle components that have the same name for the "stacked" source.
    • Likelihood-16-06-03
      • Refactored SourceModel and subclasses to try to access only the parameters from the spectral function components of the Source objects. Previously, these classes had iterated over both the spectral and spatial model components and would cause an error if the spatial component had a parameter with a free="1" attribute in the model xml file. Now, the free attribute of the spatialModel parts are ignored.
    • pyLikelihood-01-23-00
      • added UnbinnedAnalysis.plotSourceFit(...). See presentation, slides 6-10, at May 14 WAM.
    • Likelihood-16-06-06
      • Changes of parameter values for fixed sources will now be recognized for the binned analysis. See the blog entry above for May 5, Likelihood-16-05-01. This fixes a bug that arose when the previous implementation was used with the code and the source in question had all parameters aside from the normalization fixed.
    • Likelihood-16-07-00, pyLikelihood-01-23-01
      • Steve Fegan noticed that the livetime-dependent efficiency corrections, when available (e.g., via P6_V8_DIFFUSE) were not applied in the pyLikelihood implementation, although they were applied in gtlike. This is now fixed in the above tags.
    • ScienceTools-09-17-00
      • tagged.
    • Likelihood
      • Steve Fegan has improved his script that performs semi-Bayesian upper limit estimates. See the description of his updates and performance studies. As of this writing, this is not in CVS, but it will be added soon. This implementation uses scipy.
    • Likelihood-16-08-01
      • Bug-fix for gtmodel: added code to handle FileFunction, DMFitFunction[2] spectral model functions.
    • Likelihood-16-08-02
      • RadialProfile model added. See the usage notes.
      • For binned analysis, WcsMap instances deleted after convolved with PSF in order to save memory.
    • pyLikelihood-01-24-00
      • Steve F.'s revised tagged.
    • fitsGen-05-00-01
      • modified makeFT1 to use the xml-based event classifier from evtUtils. Here are usage examples.
        Using a python script (set xml_classifier to "none")
        % makeFT1
        merit filename[] xml_test_merit.root
        FT1 filename[] foo.fits
        Event classifier module[P6V3_classifier] 
        XML event class definition file[none]  
        TCut to apply[1] 
        merit-to-FT1 dictionary file[FT1variables] 
        applying TCut: 1
        number of rows processed: 12
        To override the python script, specify the xml event class definition file:
        Using an xml file
        % makeFT1
        merit filename[xml_test_merit.root] 
        FT1 filename[foo.fits] bar.fits
        Event classifier module[P6V3_classifier] 
        XML event class definition file[none] EvtClassDefs_Test.xml 
        TCut to apply[1] 
        merit-to-FT1 dictionary file[FT1variables] 
        applying TCut: 1
        number of rows processed: 12
    • Likelihood-16-10-00, pyLikelihood-01-25-00
      • Added Composite2 implementation. This is an alternative to and extension of the functionality available via the CompositeLikelihood class. It allows for arbitrary subsets of parameters to be tied together across likelihood components. See the Likelihood Usage Notes for more details.
    • Likelihood-16-11-00
      • gtdiffrsp modified to handle selective diffuse response calculations using the P7V3 bitmap formatting of the EVENT_CLASS variable in FT1.
        To compute diffuse response quantities only for diffuse class events under the pre-P7V3 EVENT_CLASS formatting, one would do
        pre-bitmap gtdiffrsp example
        % gtdiffrsp evclsmin=3
        This still works. However, for FT1 files using the bitmap EVENT_CLASS formatting, the command is
        bitmap gtdiffrsp example
        % gtdiffrsp evclass=3
        Here, evclass=3 indicates that the code will create a bitmap mask value of 2^3 and apply that mask to the EVENT_CLASS column values. Events with non-zero results will have the diffuse response calculations performed. As before, excluded events will have dummy values of zero inserted in the corresponding diffuse response column.
    • fitsGen-06-00-00, fitsGenApps-00-00-01
      • The fitsGen classes have been separated from the applications into separate packages so that ft2Util can use fitsGen without relying on other ST packages and libraries that come along with the applications (st_app, st_graph, hoops, ape, etc.).
      • ft1.tpl has been modified to include a PASS_VER header keyword in the EVENTS header. This keyword will have a value of the version attribute (e.g., "P7V3") of the EventClass tag in the xml event class definition. If the FT1 file is created without this xml file (i.e., via a python event classifier module as for pre-P7V3), the PASS_VER keyword value will be "NONE".
      • NB: Tools such as gtdiffrsp and gtselect will check to ensure that the PASS_VER keywords match when processing multiple input files.
    • dataSubselector-08-00-00
      • gtselect will now apply the bit-map-based event class selection if the FT1 file has the header keyword PASS_VER != "NONE".
    • fitsGenApps-00-01-01
      • Added option to set processing version in FT1 primary header, where PROC_VER is an integer:
        % makeFT1 proc_ver=1
    • latResponse-02-08-00
      • Added Psf3 implementation to interpolate on the distributions over the log(energy)-cos(theta) grid rather than on the fit parameter values. (This requires PSFVER=3 in the RPSF extension header of the PSF fits file.)
    • Likelihood-16-11-03
      • bug-fix for gtsrcmaps ptsrc=no: The code would seg fault when it tried to access a null pointer.
    • ScienceTools-09-18-00
      • tagged.
    • Likelihood-16-11-04
      • bug-fix for gtsrcmaps: Convolved model maps were not being written out for model components that had all of their parameters fixed. This was a side-effect of the previous development to save memory by summing fixed maps. See the comment entry for Likelihood-16-5-1 above.
    • ScienceTools-09-18-01
      • tagged with Likelihood-16-11-04 update.
    • Likelihood-16-11-05
      • bug-fix for gtmodel: When building model using a source maps file that does not have the point sources included, if any of the points source components have all their parameters fixed, the point sources would be added over and over again. This bug is related to the Aug 19, 2010 entry above for gtsrcmaps in Likelihood-16-11-04 and has its origins in the summed fixed map development. See the comment entry for Likelihood-16-5-1 above and this helpsoftlist entry.
    • ScienceTools-09-18-02
      • tagged with Likelihood-16-11-05
    • fitsGenApps-00-01-02
      • added user access to temporary filename that is used for prefiltering the merit data when assigning the xml-based classifications
    • ScienceTools-09-18-03
      • tagged
    • Likelihood-16-12-00
      • Jean reported convergence problems for binned analysis in ST-09-18-03 (these problems perhaps also were present in ST-09-17-xx or even earlier). The issue seems to be connected with the derivatives of the Npred part of the log-likelihood wrt to the fit parameters. The Npred calculation has been simplified and the derivatives appear to behave correctly.
    • pyLikleihood-01-25-02
      • Eric N. reported problems plotting counts spectra for fixed sources not in the sourcemaps for binned analysis. This problem was related to the aggregated fixed model component map. This is fixed in this version.
    • ScienceTools-09-18-04 tagged.
    • fitsGen-06-01-02
      • modified XmlClassifier to use TEventList (and TTree::Draw method) to avoid writing the temporary ROOT file.
    • fitsGenApps-00-02-00
      • removed tempfile option from makeFT1.
    • caldb-03-02-00
    • embed_python-01-05-05 (mods checked in and tagged by Joanne)
      • added -rdynamic flag when linking any executable to embed_python. This is needed in order to import in the python scripts as in the test_embed_python test program.
    • ScienceTools-09-18-05
      • contains P6_V3_DATACLEAN irfs, bug-fixes for tip, embed_python, skymaps; pulsePhase update.
    • Likelihood-16-13-00, pyLikelihood-01-25-03
      • Enable users to select subrange in energy for fitting in binned analysis. The smallest energy range (from the EBOUNDS extension in the counts map file) that contains the selected range is used:
        >>> like.setEnergyRange(1e3, 1e5)
        setting energy bounds to 
        977.93  120492.86
        See LK-62@JIRA. Similar functionality has not been implemented for unbinned analysis.
    • tip-02-15-01
      • James fixed unit test failures on redhat 64-bit builds in RMII.
    • tip-02-16-01
      • Heather replaced the code in tip that created a temporary ROOT file (when processing an input merit file with a filter string). The new code uses a TEventList so that no temporary file is produced.
    • caldb_release-03-02-00
      • added P6_V3_DATACLEAN; removed P6_V8_DIFFUSE
    • ScienceTools-09-18-06
      • tagged. Includes caldb_release-03-02-00.
    • ScienceTools-LATEST-1-3293
    • Likelihood-16-13-01

    Bug fix to DMFIT :
    DMFIT uses a table derived from DarkSusy. While DS stops at 10GeV in DM mass, DMFIT can go below using a rescaling trick that works until threshold effects become too important.
    There was a bug in the implementation of this trick. Now, comparison of integrated yields with Pythia runs shows agreement to better than 1% for the tau channel down to ~5GeV. Below 5GeV, threshold
    effects seem to enter into play and discrepancy rises to 12% at 2GeV.

    • pyLikelihood-01-25-04
      • bug-fix for plotting with BinnedAnalysis object
    • Likelihood-16-14-00
      • Disabled binned exposure calculation in gtsrcmaps.
    • sane-03-19-07
      • modified binned likelihood tests to run gtexpcube
    • ScienceTools-09-19-00
      • in addition to Likelihood-16-14-00, map_tools-07-05-05 was promoted to this release.
    • Likelihood-16-15-00
      • bug-fix for BinnedExposure.cxx: check if binned exposure map is in Galactic coordinates when returning map value. This is needed before calling the coordinate to pixel index conversion routine astro::SkyProj::sph2pix. This affected binned likelihood analyses using exposure maps created in Galactic coordinates. This was not an issue for the gtsrcmaps-created exposure maps since those were always in CEL coordinates.
    • Likelihood-17-00-00
      • added gtexpcube2 application
        • Use cases
          • Matching the counts map geometry:
            % gtexpcube2
            Livetime cube file[ltcube_phi4.fits] 
            Counts map file[cmap.fits] 
            Output file name[bexpmap_phi4.fits] 
            Response functions to use[P6_V8_DIFFUSE] 
            Computing binned exposure map.....................!
          • All-sky, but using energy levels from counts map:
            % gtexpcube2 allsky=yes
            Livetime cube file[ltcube_phi4.fits] 
            Counts map file[cmap.fits] 
            Output file name[bexpmap_phi4.fits] 
            Response functions to use[P6_V8_DIFFUSE] 
            Coordinate system (CEL - celestial, GAL -galactic) (CEL|GAL) [GAL] 
            Projection method (AIT|ARC|CAR|ZEA|GLS|MER|NCP|SIN|STG|TAN) [CAR] 
            Computing binned exposure map.....................!
          • Ignore phi-dependence:
            % gtexpcube2 ignorephi=yes
            Livetime cube file[ltcube_phi4.fits] 
            Counts map file[cmap.fits] 
            Output file name[bexpmap_phi4.fits] 
            Response functions to use[P6_V8_DIFFUSE] 
            Computing binned exposure map.....................!
      • bug-fixes for handling phi-dependence in binned analysis
    • st_facilities-00-15-00
      • added Util::pixel2SkyDir and Util::skyDir2pixel functions so that coordsys type is handled automatically
    • sane-03-20-00
      • modify tests to exercise gtexpcube2 for bot GAL and CEL coordinate systems
    • Likelihood-17-00-02
      • Jean wanted to be able to create exposure cubes without an input counts maps, so now there is an option for the user to specify the exposure cube geometry. The "allsky" option is removed.
        % gtexpcube2
        Livetime cube file[ltcube_phi4.fits] 
        Counts map file[none] 
        Output file name[bexpmap_allsky_phi4_nocmap.fits] 
        Response functions to use[P6_V8_DIFFUSE] 
        Size of the X axis in pixels[720] 
        Size of the Y axis in pixels[360] 
        Image scale (in degrees/pixel)[0.5] 
        Coordinate system (CEL - celestial, GAL -galactic) (CEL|GAL) [GAL] 
        First coordinate of image center in degrees (RA or galactic l)[0] 
        Second coordinate of image center in degrees (DEC or galactic b)[0] 
        Rotation angle of image axis, in degrees[0] 
        Projection method e.g. AIT|ARC|CAR|GLS|MER|NCP|SIN|STG|TAN[AIT] 
        Start energy (MeV) of first bin[100] 
        Stop energy (MeV) of last bin[300000] 
        Number of logrithmically-spaced energy bins[3] 
        Computing binned exposure map.....................!
      • gtexpcube2 can now handle AIT maps that have unassigned pixels.
    • pyLikelihood-01-25-06
      • added BinnedLikelihood.selectEbands(kmin, kmax) to allow users to set the energy range for the analysis by specifying the range of energy band indices (inclusive).
    • latResponse-02-08-02
      • bug-fix for PSF integration over acceptance cone when values of the gamma parameter lie outside of the range of the cached values. This affected unbinned analysis for P7SOURCE_V4 and potentially other IRFs with gamma values >5.1 or <1 or sigma values outside of a range that depends on the set of IRFs in a non-trivial way. See Riccardo's report.
    • optimizers-02-20-00
      • bug-fix for occasionally large negative TS values seen with NewMinuit. This involved ensuring the best-fit parameters are reset after calling hesse and other Minuit2 functions, which are not guaranteed to leave the parameters at their best-fit values.
    • Likelihood-17-00-03
      • bug-fixes for bincalc and ignorephi options for gtexpcube2: bincalc=CENTER had no effect, and ignorephi=yes would cause a crash
    • Likelihood-17-00-04
      • added thmax hidden parameter to gtexpcube2 at Markus A. request to be able to handle data with cuts on THETA.
    • Likelihood-17-01-01
      • Enable gtmodel to write ccube maps with geometry and energy planes matching the input source map file. To write a counts cube instead of a summed counts map, specify the outtype parameter at the command line:
        % gtmodel outtype=ccube
    • ScienceTools-09-20-00
      • tagged (includes changes since November 5, 2010)
  5. Several patch tags to deal with gcc 4.4 builds:
    xmlBase-05-05-10 sourceIdentify-02-03-02 astro-03-11-09 GRB-04-04-06 GRBtemplate-01-03-04 orbitSim-02-00-07 healpix-02-03-05 map_tools-07-05-06

    • handoff_response-04-05-06
      • gcc 4.4 modification
    • pyLikelihood-01-26-00
      • Change name from BinnedAnalysis.setEbands to BinnedAnalysis.setEbounds so that functionality is more clear wrt BinnedAnalysis.selectEnergyRange
    • Likelihood-17-02-00
      • Enable ebinalg=FILE in gtexpcube2. ebinalg=LOG is the default.
        % gtexpcube2 ebinalg=FILE
        Livetime cube file[ltcube_phi4.fits] 
        Counts map file[none] 
        Output file name[bexpmap_test.fits] 
        Response functions to use[P6_V8_DIFFUSE] 
        Size of the X axis in pixels[360] 
        Size of the Y axis in pixels[180] 
        Image scale (in degrees/pixel)[1] 
        Coordinate system (CEL - celestial, GAL -galactic) (CEL|GAL) [GAL] 
        First coordinate of image center in degrees (RA or galactic l)[0] 
        Second coordinate of image center in degrees (DEC or galactic b)[0] 
        Rotation angle of image axis, in degrees[0] 
        Projection method e.g. AIT|ARC|CAR|GLS|MER|NCP|SIN|STG|TAN[AIT] 
        Name of FITS file containing the energy bin definition[ebins.fits] 
        Computing binned exposure map..................!
    • caldb-03-03-00
      • add P6_V11_DIFFUSE IRFs using the P6_v11_diff_v3.tgz files obtained from this page.
    • Likelihood-17-03-00
      • Use quadrature in log-log space for the Npred calculations in the binned analysis following a suggestion of Jean (via Jürgen).
    • Likelihood-17-04-00
      • Switch to rebinning higher resolution convolved source maps in gtsrcmaps. This fixes a problem identified by Jean that occurs with high resolution model maps that are undersampled when using interpolation in converting to the counts cube map coordinates.
      • Added thmin hidden parameter to gtexpcube2. Here is the calling sequence with the default values. Units are degrees from LAT z-axis.
        % gtexpcube2 thmin=0 thmax=180
    • ScienceTools-09-21-00
      • Tagged. Includes changes since Dec 20, 2010.
    • optimizers-02-21-00, Likelihood-17-05-01, pyLikelihood-01-27-01
      • Added interface to specify 1D prior distributions on individual parameters. See the usage examples.
    1. Unknown User (geargo)

      Dear Chiang,

      I have a naif question. Regarding priors implementation on 09-22-00, I do not sure to understand the following: If I perform a fit with many sources, may I put ?1D prior on each source or just one prior by fit.



    • Likelihood-17-05-02
      • bug-fix for gtexpcube2: thmin, thmax hidden parameter options were not enabled when the exposure map geometry is given by an input ccube. This bug had no impact if these parameters were not specified at the command line.
    • Likelihood-17-05-03
      • bug-fix for offset problem in MapCubeFunction. This is basically the same bug as in the WcsMap class (which only deals with 2D maps) fixed back in v15r1p3.
    • Likelihood-17-05-04
      • gtsrcmaps bug when using internally computed resampling factor based on ratio of counts map to model map pixel sizes LK-65@JIRA.
    • tip-02-17-00
      • Unfortunately, changes made in tip-02-16-01 to use a TEventList in reading ROOT files had a serious bug. This version reverts back to the previous implementation that used a temporary file to store the filtered data.
    • fitsGen-06-02-00
      • Added MeritFile2 class that uses ROOT directly to access the merit data. This allows for use of TEventList and avoids a temporary file.
    • fitsGenApps-00-03-00
      • Modified makeFT1 to use fitsGen::MeritFile2. Added makeLLE application, which is still under development.
  6. Unknown User (hirayama)


    • Support parallax in barycentric corrections.


    • Add new spin models (PER and HP) and orbital (BT, ELL1, and MSS).
    • Support proper motion in barycentric corrections.
    • Add remark reporting mechanism to PulsarEph (for glitches).
    • Support vector-valued columns in the text D4 format.
    • Add parallax and orbital delays to an gtephem output.
    • Fix bugs in header keyword matching.


    • Improve gtophase to read RA and Dec from the database.
    • Add tests for new features of pulsarDb package (glitch reporting by PulsarEph and support of new types of ephemeris: PER, HP, BT, ELL1, and MSS).


    • Add tests of glitch reporting mechanism.

    See for more details.

    • fitsGenApps-00-03-01, fitsGen-06-02-01
      • Initial version of makeLLE finished
    • Likelihood-17-06-00, pyLikelihood-01-27-00
      • At Jean's request, added checks in gtsrcmaps and gtlike (and pyLikelihood) to ensure that the exposure map covers the sky region of the counts map:
        % gtsrcmaps 
        Exposure hypercube file[ltcube.fits] 
        Counts map file[ccube_9.fits] 
        Source model file[srcModel_egretdiffuse.xml] 
        Binned exposure map[bexpmap_8.fits] 
        Source maps output file[smaps_9.fits] 
        Response functions[P6_V3_DIFFUSE] 
        Caught St13runtime_error at the top level: Counts map not covered by exposure map.
        In the above example, bexpmap_8.fits is the exposure map for a different region of the sky than is covered by ccube_9.fits.
      • In gtsrcmaps, a 10 degree source region is added to the predicted counts maps prior to convolution with the PSF in order to account for leakage into the ROI. If an exposure map has a geometry that matches the counts map, this will force the evaluation of the exposure outside of the exposure map itself. Therefore, the proper way to handle a binned analysis is to define an exposure map that includes this extra source region. An all-sky map is usually the most convenient way to do this. If the exposure map geometry matches the counts map geometry, then the new default mode of operation of gtsrcmaps is to halt execution and print a warning:
        % gtsrcmaps
        Exposure hypercube file[ltcube.fits] 
        Counts map file[ccube_9.fits] 
        Source model file[srcModel_egretdiffuse.xml] 
        Binned exposure map[bexpmap_9.fits] 
        Source maps output file[smaps_9.fits] 
        Response functions[P6_V3_DIFFUSE] 
        Generating SourceMap for EGRET DiffuseCaught St13runtime_error at the top level: 
        Request for exposure at a sky position that is outside of the map boundaries.
        The contribution of the diffuse source outside of the exposure 
        and counts map boundaries is being computed to account for PSF 
        leakage into the analysis region.  To handle this, use an all-sky
        binned exposure map.  Alternatively, to neglect contributions 
        outside of the counts map region, use the emapbnds=no option when 
        running gtsrcmaps.
        As the message notes, one can ignore the source region by using the new hidden parameter emapbnds:
        % gtsrcmaps emapbnds=no
        Exposure hypercube file[ltcube.fits] 
        Counts map file[ccube_9.fits] 
        Source model file[srcModel_egretdiffuse.xml] 
        Binned exposure map[bexpmap_9.fits] 
        Source maps output file[smaps_9.fits] 
        Response functions[P6_V3_DIFFUSE] 
        Generating SourceMap for EGRET Diffuse....................!
        In this case, any requests for exposures outside of the map boundaries return a value of zero.
      • Johann added access to the TiedParameter objects in Composite2:
        >>> par = compsite2.getTiedParam(composite2.components[0], index)
        >>> par.setBounds(0, 1)
        This allows users to set properties of the parameters such that the changes are propagated to all of the parameters that are tied.
      • Bug-fix for handling of derivatives in Composite2. The new code converges more reliably to the best-fit values.
  7. Unknown User (lande)

    • astro-03-11-10 - Bugfix for LONPOLE/LATPOLE issue.
    • Likelihood-17-07-00, pyLikelihood-01-27-04
      • Extended WcsMap to handle map cubes and refactored MapCubeFunction to use new WcsMap.
      • Implemented rebinning for finely binned model maps, controllable via the minbinsz parameter of gtsrcmaps:
        % gtsrcmaps minbinsz=0.1
        Units are degrees. The default value is shown in the above example.
    • ScienceTools-09-22-00 tagged.
      • Includes changes since Feb 04, 2011, except for the pulsar tools packages (Masa's Feb 15 entry)
    • caldb-04-00-00
    • pyLikelihood-01-27-05
      • bug-fix in UpperLimit.compute for estimating the step size used in the profile scan based on the error of the normalization parameter.
    • caldb_release-03-03-00
      • added P6_V11_DIFFUSE for FSSC distribution
    • Likelihood-17-08-00
      • fix quadrature in gtmodel so that it is consistent with recent revisions in BinnedLikelihood.
    • sane-03-21-05
      • Test added for gtmodel vs Npred comparison
    • Likelihood-17-08-02
      • Re-enable extrapolation beyond nominal upper energy in map cubes (i.e., for energies > 100 GeV when using This was the behavior prior to ST-09-22-00. Using chatter=3 or greater will print out to the screen the number of times such an extrapolation has occurred when running a tool such as gtdiffrsp or gtsrcmaps. It would be better to run gtselect on these data with an emax value that is consistent with the valid range of the diffuse model rather than using the extrapolation. caveat emptor.
    • Likelihood-17-09-00, pyLikelihood-01-28-00
    • Likelihood-17-09-03, pyLikelihood-01-28-02
      • At Jean's request, added BinnedAnalysis.plotFixed(color='black'). This function will overlay the model counts spectrum summed over the fixed components in the model. Binned analysis only (which should be obvious).
    • promoted to ST HEAD-1-881:
      • Likelihood Likelihood-17-09-03
      • pyLikelihood pyLikelihood-01-28-02
      • optimizers optimizers-02-21-01
      • sane sane-03-21-05
      • irfs/caldb caldb-04-00-00
    • ScienceTools-09-23-00
      • Changes since March 28, 2011 (but still no pulsar tool changes from Feb 15), including P7*V6 IRFs.
    • fitsGen-06-03-00
      • Added RA_SUN and DEC_SUN columns to ft2.tpl
      • Changed data type of DATA_QUAL to "I" (signed 2-byte integer)
    • genericSources-01-15-00, celestialSources-01-04-00
      • Added IsotropicFileSpectrum class as a new source for gtobssim/GLEAM. Example xml definition:
          <source name="Extragalactic_Diffuse">
            <spectrum escale="MeV">
              <SpectrumClass name="IsotropicFileSpectrum" 
                             params="flux=1.18,specFile=isotrop_2year_P76_source_v0.txt,ra=0,dec=0,radius=180" />
              <use_spectrum frame="galaxy" />
        The ra, dec, radius parameters are optional.
    • observationSim-08-04-10
      • set DATA_QUAL and LAT_CONFIG columns to 1 in FT2 file so that standard gtmktime filter can be applied.
    • Likelihood-17-09-04
      • bug-fix for integration in WcsMap2: off-by-one error in evaluating the index of the energy layer for the integration on the energy planes in the MapCube. This bug only affected integrals of the map flux via the [Unb,B]innedAnalysis.flux(...) methods. It did not affect diffuse response calculations, source map generation, or anything that is used in the source fitting methods.
    • pyLikelihood-01-28-03
      • Enabled ability to turn on floating point exception trapping in SConscript file.
    • ScienceTools-09-23-01
      • Changes since April 11, 2011
  8. Unknown User (hirayama)

    Three web pages are added to the pulsar tools development web site to cover the new topics introduced in the latest pulsar tools packages (timeSystem-06-05-00, pulsarDb-09-00-00, pulsePhase-09-00-00, and periodSearch-10-08-06). Eventually those web pages should be a part of the FSSC official web site once the pulsar tools packages listed above are officially released, in my opinion, but for now they are available as below.

    • Addendum to Pulsar Tools Anatomy
      Describes updates and additions to Pulsar Tools Anatomy to cover the changes made in the above listed versions. Once the new pulsar tools are officially released, it is suggested to follow the instructions on the addendum to update the current Pulsar Tools Anatomy.
    • Pulsar Ephemeris Data Format
      Explains the D4 file format (FITS and text) in detail. Once the pulsar tools with new ephemeris support are officially released, it is suggested to add a new page under Library >> User Support, right next to Pulsar Tools Anatomy.
    • dataSubselector-08-02-00, evtbin-02-04-02
    • containerSettings-00-00-09 (tagged 15 April 2011)
      • pointers to catalogProducts v0r0 and diffuseModels v1r0 in extlibs area
    • Likelihood-17-09-05
      • Placed copy of gammamc_dif.dat in Likelihood/data subdirectory so that it gets distributed by the installer.
  9. Unknown User (hirayama)

    The following pulsar tools packages were tagged, and the Release Manager tested them all OK (in ScienceTools-LATEST-1-3442 on rh4-32, rh4-64, rh5-32, rh5-64, and snowl-32).

    • timeSystem-06-05-01
    • pulsarDb-09-00-01
    • pulsePhase-09-00-04
    • periodSearch-10-08-07

    Note that those versions are supposed to work with tip-02-17-01, which resolved JIRA STARCH-16. Any previous versions of tip will cause the pulsar tools unit tests fail.

    • genericSources-01-15-01, GRB-04-04-07, GRBobs-03-03-05, GRBtemplate-01-03-05, others???
      • CLHEP namespace qualifiers added by Heather for use with CLHEP
  10. Unknown User (hirayama)

    Promoted to ScienceTools-HEAD-1-898 (by James Peachey):

    • tip-02-17-01

    Promoted to ScienceTools-HEAD-1-899:

    • timeSystem-06-05-01
    • pulsarDb-09-00-01
    • pulsePhase-09-00-04
    • periodSearch-10-08-07
    • Likelihood-17-01-00
      • Added ScaleFactor class (at DM group request). This is a decorator class that layers an additional overall scale factor to the spectral model function, in addition to the usual normalization parameter. To use, prepend the qualifier "ScaleFactor" to the function name in the xml definition and add a ScaleFactor parameter, e.g.,
            <spectrum type="ScaleFactor::PowerLaw2">
              <parameter free="1" max="1000.0" min="1e-05" name="Integral" scale="1e-06" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="1000000.0" min="20.0" name="UpperLimit" scale="1.0" value="1e6"/>
              <parameter free="1" max="10" min="0." name="ScaleFactor" scale="1.0" value="1"/>
      • ScaleFactor::PowerLaw2 and ScaleFactor::FileFunction have been made available to the Likelihood tools. Others available on request.
    • fitsGenApps-00-04-00
    • caldb_release-04-00-00
    • fitsGenApps-00-05-00, fitsGen-06-04-00
      • Working and tested version of lle2drm; makeLLE updated to be able to handle MC files (via mc_data=yes command line option) and can ingest multiple merit files. The LLE-defining cuts still need to be finalized regarding use of trigger primitives instead of GltGemEngine and regarding application of psf cut (computing theta as a function of time rather than using the time at trigger).
    • Likelihood-17-11-00
      • Added EnergyBand class. This is another decorator class that restricts the energy range over which the underlying spectral model is applied to the data. One can therefore do an "energy bands" analysis with a single set of FITS files rather than creating a separate set for each energy band. Composite2 is required if one wants to tie together parameters, but this model can be used as-is in the normal Unbinned and BinnedAnalysis classes. Care should be taken to align the energy band boundaries in the model with the boundaries in the input counts cube in binned analysis.
        Here is an example that divides the power-law model into three energy bands. Note that the spatialModels should match.
          <source name="PL2_source_0" type="PointSource">
            <spectrum type="EnergyBand::PowerLaw2">
              <parameter free="1" max="1000.0" min="1e-05" name="Integral" scale="1e-06" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="1000000.0" min="20.0" name="UpperLimit" scale="1.0" value="1e6"/>
              <parameter free="0" max="1e6" min="0." name="Emin" scale="1.0" value="100"/>
              <parameter free="0" max="1e6" min="0." name="Emax" scale="1.0" value="1e3"/>
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360." min="-360." name="RA" scale="1.0" value="83.45"/>
              <parameter free="0" max="90." min="-90." name="DEC" scale="1.0" value="21.72"/>
          <source name="PL2_source_1" type="PointSource">
            <spectrum type="EnergyBand::PowerLaw2">
              <parameter free="1" max="1000.0" min="1e-05" name="Integral" scale="1e-06" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="1000000.0" min="20.0" name="UpperLimit" scale="1.0" value="1e6"/>
              <parameter free="0" max="1e6" min="0." name="Emin" scale="1.0" value="1e3"/>
              <parameter free="0" max="1e6" min="0." name="Emax" scale="1.0" value="3e4"/>
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360." min="-360." name="RA" scale="1.0" value="83.45"/>
              <parameter free="0" max="90." min="-90." name="DEC" scale="1.0" value="21.72"/>
          <source name="PL2_source_2" type="PointSource">
            <spectrum type="EnergyBand::PowerLaw2">
              <parameter free="1" max="1000.0" min="1e-05" name="Integral" scale="1e-06" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="1000000.0" min="20.0" name="UpperLimit" scale="1.0" value="1e6"/>
              <parameter free="0" max="1e6" min="0." name="Emin" scale="1.0" value="3e4"/>
              <parameter free="0" max="1e6" min="0." name="Emax" scale="1.0" value="3e5"/>
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360." min="-360." name="RA" scale="1.0" value="83.45"/>
              <parameter free="0" max="90." min="-90." name="DEC" scale="1.0" value="21.72"/>
    • Likelihood-17-11-01
      • bug-fix for handling of energy bounds in EnergyBand class.
    • Likelihood-17-13-00
      • bug-fix for rebinning in WcsMap2 for finely binned FITS maps.
    • ScienceTools-09-24-00
      • Changes since April 15, 2011
    • Likelihood-17-14-00
      • gtexpcube2 now copies GTI extension from the input livetime cube file to the binned exposure map output, as per LK-67@JIRA.
    • containerSettings-00-01-01
      • updated to use diffuseModels/v2r0, which contain the P7V6 diffuse models.
    • Promoted to ST HEAD:
      • GRBtemplate-01-03-06
      • containerSettings-00-01-01
      • facilities-02-20-02
      • fitsGenApps-00-05-01
      • dc1Response-02-00-06
      • dc2Response-03-01-07
      • g25Response-02-00-06
      • latResponse-02-08-06
      • Likelihood-17-14-00
    • Likelihood-17-14-01
      • bug-fix: SourceMap::n_preds was not being filled when computing a diffuse source map for an on-the-fly in binned analysis. Fixed.
    • Likelihood-17-14-02 Likelihood-17-14-03
      • bug-fix: BinnedExposure::writeOutput. CRPIX# was off by half a pixel for NAXIS# odd. (LK-68@JIRA)
    • Likelihood-17-14-03, pyExposure-02-05-10, observationSim-08-04-11
      • Set default irfs in par files to be P7SOURCE_V6 (see also STGEN-122@JIRA)
  11. Unknown User (hirayama)

    Tagged pulsarDb-09-00-02.

    • Increase the size of text buffer for reading a text pulsar database file.

    Promoted to ScienceTools-HEAD-1-927:

    • pulsarDb-09-00-02
    • ScienceTools-09-25-00
      • Changes since June 30, 2011
    • dataSubselector-08-03-00
      • Added BitMaskCut class: DSS keywords associated with bit mask event class cuts written to FT1 file.
    • BayesianBlocks-04-00-00
      • Added to ST LATEST and HEAD
    • Likelihood-17-15-00
    • ScienceTools-09-25-01
      • Changes since Aug 14, 2011, including Likelihood-17-15-00
    • Likelihood-17-16-00
      • Enabled binned analysis in gttsmap
    • sane-03-21-07
      • added GtApp-exposed gtexpcube2 callable to (STGEN-125@JIRA)
    • fitsGenApps-00-06-01
      • Bug-fix in SConscript file for test_app build on snow-leopard
    • Likelihood-17-17-00
      • Steve Fegan's memory handling optimizations for gtsrcmaps, saving a factor of 2 in peak memory usage, from 3.1 GB to 1.5 GB, by releasing duplicated memory storage earlier when reading in and building the internal source model.
    • pyLikelihood-01-28-05
      • minor bug-fixes to from J. Lande. Compatibility updates from Steve for use with SummedLikelihood.
    • fitsGen-06-04-02,evtUtils-00-01-12, GRBobs-03-03-06, GRB-04-04-08
    • ScienceTools-09-25-02
      • Changes since Sept 12, 2011
    • st_facilities-00-15-02
      • resolve STGEN-128@JIRA: added (unneeded) call to ifstream::close() in Util::readLines
    • caldb-04-01-00
      • Added P7SOURCE_V6MC irfs. These contain the Monte Carlo derived psf parameters that have off-axis angle dependence. For use in ST, they should be specified as irfs=P7SOURCE_V6MC.
    • Likelihood-17-18-00
      • alpha implementation of energy dispersion calculation in BinnedLikelihood
      • To use, set a USE_BL_EDISP environment variable, e.g.,
        % setenv USE_BL_EDISP 1
        To disable, unset the env var:
        % unsetenv USE_BL_EDISP
      • This functionality can be turned on and off in python at runtime:
        >>> import os
        >>> os.environ["USE_BL_EDISP"] = "1"    # turn on energy dispersion handling
        >>> del os.environ["USE_BL_EDISP"]      # turn it off (may want to enclose in try/except block)
      • Implementation notes
    • Likelihood-17-19-00
      • implement energy dispersion in gtmodel
    • Likelihood-17-20-01
      • Addressed LK-71@JIRA. gtdiffrsp will throw an exception when it encounters an evfile with a .gz or .Z extension.
    • Likelihood-17-20-02
      • Added WcsMapLibrary class to manage the memory associated with the WcsMap2 objects contained in the MapBase hierarchy. WcsMapLibrary is a singleton instance that ensures at most one copy of any FITS image map (as abstracted by WcsMap2) exists. This is an alternative solution to Steve F.'s memory management changes in Likelihood-17-17-00 (Sept 25, 2011 entry above), but should also apply in other instances where MapBase objects are copied.
    • Likelihood-17-20-04
      • Use the stored arrays of model counts spectra in BinnedLikelihood.cxx in plotting the counts spectra from pyLikelihood. This was needed to speed up the plotting for very large source models.
    • Likelihood-17-21-00
      • Remove DMFitFunction2. See Johann's note to the DMNP mailing list.
      • Use DSS keyword info on the CONVERSION_TYPE selection by gtselect to determine whether front, back (or both) should be used in exposure calculations. This means that the irfs keyword need not be specified with the ::FRONT, ::BACK qualifiers when running gtexpmap, gtdiffrsp, gtlike, or the pyLikelihood module. The only exception is when running gtexpcube2 with ccube=none. In this case, the DSS keyword info is not available from any of the inputs, and the qualifiers must be added, e.g., gtexpcube2 ccube=none irfs=P7SOURCE_V6::FRONT.
    • observationSim-08-05-00
      • This version applies the livetime-dependent efficiency corrections to the simulated data produced by gtobssim if the EFFICIENCY_PARAMS extension exists in the effective area files for the selected IRFs.
    • Likelihood-17-21-02
      • Include efficiency correction in unbinned point source exposure calculation when using the FT2 file directly instead of a livetime cube.
    • ScienceTools-09-26-00
      • Changes since Oct 9, 2011. This includes the new gtdiffrsp integration and energy dispersion handling in the binned likelihood analysis. Note that the latter still requires that the USE_BL_EDISP environment variable be set in order for it to be applied.
    • observationSim-09-00-00
      • In gtobssim, make tstart a prompted parameter and startdate a hidden parameter. If tstart=INDEF, then tstart is set to zero if scfile=none or tstart is set to the TSTART value if scfile is set to an existing FT2 file.
    • containerSettings-00-01-04, SConsFiles-00-16-02 (allExternals.scons, processExternals.scons, SConstruct)
      • update with catalogProducts/v1r2
    • Likelihood-17-21-03
      • bug-fix in gtmodel: In ST-09-26-0[01], sources that do not have any free spectral parameters are not included in the model counts map. Fixed.
    • ScienceTools-09-26-02
      • Changes since Dec 10.
    • Likelihood-17-21-04
      • map-based integration for Npred using the source map pixels in unbinned analysis. Enable it by setting MAP_BASED_NPRED environment variable, e.g.,
        % setenv MAP_BASED_NPRED
        This will circumvent the normal integration, which uses the exposure map pixels, only for map-based sources.
        One can enable the map-based diffuse response calculation similarly,
        % setenv MAP_BASED_DIFFRSP
        This will circumvent the theta-phi integral only for map-based diffuse sources.
    1. Since the code just checks for the existence of these environment variables and for their values, in order to disable either of these options, one must unset the corresponding environment variable, e.g.,

      % unsetenv MAP_BASED_NPRED
    • Likelihood-17-21-06
      • added ExpCutoffSEDPeak model function (from Rolf) and SmoothDoubleBrokenPowerLaw (from Keith and Stefan). The latter does not pass derivative tests and so should be used with caution.
      • Enabled map-based Npred and diffuse response integrals to be specified in the xml definition for a source via the "map_based_integral" attribute:
          <source name="W44_mapIntegral" type="DiffuseSource">
            <spectrum type="PowerLaw2">
              <parameter free="1" max="1000.0" min="0.0" name="Integral" scale="1e-5" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.1"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="600000.0" min="20.0" name="UpperLimit" scale="1.0" value="600000.0"/>
            <spatialModel file="W44.fits" type="SpatialMap" map_based_integral="true">
              <parameter free="0" max="1000.0" min="0.001" name="Prefactor" scale="1.0" value="1.0"/>
        The environment variable mechanism from Likelihood-17-21-04 still works, but this method allows the map-based integration to be activated on a source-by-source basis.
        To avoid the map-based integration, simply omit the attribute:
          <source name="W44" type="DiffuseSource">
            <spectrum type="PowerLaw2">
              <parameter free="1" max="1000.0" min="0.0" name="Integral" scale="1e-5" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.1"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="600000.0" min="20.0" name="UpperLimit" scale="1.0" value="600000.0"/>
            <spatialModel file="W44.fits" type="SpatialMap">
              <parameter free="0" max="1000.0" min="0.001" name="Prefactor" scale="1.0" value="1.0"/>
        This allows for backwards-compatibility with older XML model definitions.
      • minor bug-fix for gtmodel ensuring that effective PSF integrals for point sources within the map region are consistent.
    • Likelihood-17-21-08
      • SmoothDoubleBrokenPowerLaw now validated.
      • bug-fix for map_based_integral specification in xml model. In Likelihood-17-21-06, the map-based integral for the diffuse response would be computed regardless of the value of this attribute (or whether MAP_BASED_DIFFRSP was set).
    • Likelihood-17-21-10
      • write RADECSYS and EQUINOX keywords in gtexpcube2 output when specifying celestial coordinates
    • Likelihood-12-22-00
      • Bug-fix for binned likelihood calculations associated with PowerLawExpCutoff sources at energies > 200 GeV: because of the exponential cutoff, the derivative wrt to the prefactor had small, but non-zero values (~1e-300). This caused problems for the Accumulator class in BinnedLikelihood (and probably in the unbinned calculatio as well) when computing the order-of-magnitude partitions for the summed values, resulting in range_check errors.
      • Output format change for gtbkg: Use RATE instead of COUNTS for the background spectrum inferred from an unbinned likelihood analysis so that real values (rather than integers) can be used. Also, fill the STAT_ERR column with the model error estimate on the predicted rate.
    • ScienceTools-09-27-00
      • Changes from Jan 6 through Jan 19
    • ScienceTools-09-27-01
      • Changes since Jan 29
      • move to cfitsio V3.290 (from V3.060)
      • pulsarDb-09-00-02: stop using unsupported memory-resident FITS files
    • Likelihood-17-22-03
      • Implemented Gulli's suggestion to speedup the gtexpcube2 execution in LK-74@JIRA.
    • Likelihood-17-22-05
      • Fixes for const conversions/correctness in backfile.cxx, SourceData.cxx, PointSource.cxx, gtmodelmap.cxx to suppress compiler warnings.
    • Likelihood-17-22-06, pyLikelihood-01-29-04
    • dataSubselector-08-03-02
    • Likelihood-17-22-07
      • enabling energy dispersion at runtime in pyLikelihood was broken with Likelihood-17-22-02 (See Feb 8 entry). Fixed.
    • Likelihood-17-22-08
      • Have the writeCountsSpectra function in the python interface to output model spectra with energy dispersion applied when that handling is enabled.
      • Provide a more convenient way of turning energy dispersion handling on and off in the python interface:
        like = binnedAnalysis(...)
        like.logLike.set_edisp_flag(True)    # Turn on energy dispersion handling
        print like.logLike.use_edisp()       # Check if edisp handling is turned on
        like.logLike.set_edisp_flag(False)   # Turn off
        This will enable several Likelihood analysis objects to have different settings within a single python session.
    • dataSubselector-08-03-03
      • Change to DATA_QUAL>0 in default filter string in gtmktime.par to account for new possible data quality flag values.
    • Likelihood-17-22-09
      • Refactor Aeff classes used by map_tools::Exposure to integrate effective area integrands in BinnedExposure, ExposureCube, MeanPsf, Pixel, and PointSource classes so that they all use the same caching code introduced in Likelihood-17-22-03 via ExposureCube::AeffBase.
    • Likelihood-17-22-10
      • bug-fix for integration of map cubes in WcsMap2
      • workaround for unassigned pixels (according to astro::SkyProj) in allsky AIT maps when determining map extent.
    • Likelihood-17-22-11
      • bug-fix for gtexpcube2 when number of requested pixels in binned exposure map is less than 20.
    • ScienceTools-09-28-00
      • Changes since Feb 22, 2012
    • Likelihood-17-22-12, pyLikelihood-01-29-05
      • Added option to specify phase-selected exposure correction (Jean Ballet request)
      • Command line example:
        gtlike phased_expmap=phased_expmap.fits
      • Python usage:
        >>> obs = BinnedObs(..., phased_expmap='phased_expmap.fits',...)
        ... or ...
        >>> like = binnedAnalysis(..., phased_expmap='phased_expmap.fits',...)
    • Likelihood-17-22-14, pyLikelihood-01-29-06
      • Forestall reading of FITS maps for xml model components until they are needed to reduce memory usage in gtsrcmaps, et al.
    • Likelihood-17-22-15
      • Write "map_based_integral" attribute, if it is specified in the input model xml file, to the output model xml file when calling SourceModel::writeXml.
    • Likelihood-17-22-16
      • Check for ScaleFactor::FileFunction in SourceFactory::setSpectrum. This addresses helpsoft entry 3260.
    • Likelihood-17-22-17
      • Fixed LK-76@JIRA. This is related to the fix in Likelihood=17-22-16 above.
    • astro-03-11-17
      • add leap second handling in JulianDate class for 2012Jun30 00:00:00. Update test code to exercise this and to work on rhel5-32 optimized platforms.
    • Likelihood-17-22-18, optimizers-02-21-03
      • add ScaleFactor::Gaussian function to available spectral models.
    • genericSources-01-15-02, celestialSources-01-04-01
      • added GaussianSpectrum source: point source with Gaussian spectral model
           <source name="Gaussian spectrum">
             <spectrum escale="MeV">
               <SpectrumClass name="GaussianSpectrum"
                              params="flux=1, mean=2e4, sigma=2e3, glon=0, glat=0"/>
               <use_spectrum frame="galaxy"/>
    • genericSources-01-15-03
      • Fix test code and GaussianSpectrum and IsotropicFileSpectrum entries in example xml file
    • Likelihood-17-23-00
      • Fixed LK-77@JIRA regarding handling of WEIGHTED_EXPOSURE and CTHETABOUNDS extensions in gtltsum.
    • Likelihood-17-23-01
      • Add ZENMAX keyword to livetime cube files produced by gtltcube if zmax < 180, have gtltsum check for consistency of this keyword value (requested by JCT)
    • pyLikelihood-01-29-07
      • Add more stable access to sequence of free parameters accessed via like.freePars(<sourcename>)
      • updates from Josh for
    • astro-03-13-00
      • Disable static declarations in all local variables in igrf_sub.cxx so that CRFlux does not need its own copy; add warnings and exceptions to IGRField.cxx if near or beyond end date for IGRF-11.
    • flux-08-42-00
      • Remove EarthPhenom because of ROOT-dependence, which violates agreement with FSSC. Keith B. is adding this as a new celestialSources subpackage instead.
    • genericSources-01-15-04
      • add tab as a possible delimiter for SourcePopulation input file
    • Likelihood-17-24-00, pyLikelihood-01-30-01
      • enable setting of energy range for unbinned analysis
        >>> like = unbinnedAnalysis(...)
        >>> like.setEnergyRange(1e3, 1e5)
    • observationSim-09-02-00
      • Write parameter values from gtobssim.par to EVENTS and SC_DATA headers of FT1 and FT2 files, respectively. (J. Ballet request)
        % gtobssim
        File of flux-style source definitions[xmlFiles.txt] 
        File containing list of source names[source_names.txt] 
        Pointing history file[orbSim_scData_0000.fits] 
        Prefix for output files[foo] 
        Simulation time (seconds)[86400] 
        Simulation start time (seconds wrt MET 0)[INDEF] 
        Apply acceptance cone?[no] 
        Response functions[DC1A] 
        Random number seed[408131] 
        added source "_3EG_J0534p2200-32mev"
        Generating events for a simulation time of 86400 seconds....
        % fitsheader foo_events_0000.fits EVENTS | grep SIM
        SIMINFIL= 'xmlFiles.txt'                                                        
        SIMSRCLI= 'source_names.txt'                                                    
        SIMSCFIL= 'orbSim_scData_0000.fits'                                             
        SIMOFFSE=                    0                                                  
        SIMEDISP=                    T                                                  
        SIMIRFS = 'DC1A    '                                                            
        SIMSEED =               408131                                                  
    • astro-03-13-01
      • Speed up IGRF-11 calculations by caching spherical harmonic coefficients
    • SolarSystemTools-01-00-04
      • Added to ST HEAD
    • Likelihood-17-24-01
      • remove old MapCubeFunction
      • address LK-79@JIRA
      • avoid incorrect healpix::CosineBinner::operator()(double, double) in ExposureCube::livetime
      • Likelihood-17-24-02
        • Use available member functions from CosineBinner in ExposureCube::livetime
    • Likelihood-17-24-03
      • Improved energy range subselection handling in unbinned analysis. The internal exposure calculation for the new energy range is now the same as that used for the standard selection from gtselect.
    • genericSources-01-15-05
      • Check for negative values of the flux parameter in a params string where it is explicitly labeled, in order to guard against this.
    • evtbin-02-06-00
      • This tag introduces the HEALPIX extension to evtbin binning
      • the relevant par file entries are :
        algorithm,     s, a, "HEALPIX", CCUBE\|CMAP\|LC\|PHA1\|PHA2\|HEALPIX, , "Type of output file"#--------------------------------------------------------------------------------
        # Healpix parameters.
        hpx_ordering_scheme,    s, a, "RING", RING|NESTED, ,"Ordering Scheme"
        hpx_order,              i, a, 13, , , "Order of the map (int between 0 and 12 included)"
        hpx_ebin,               b, a, no, , , "Do you want Energy binning ?"
    • Once "HEALPIX" is chosen as the evtbin algorithm, the user is prompted for the ordering scheme ("NESTED" or "RING", see healpix doc for further info) and the order (min 0 and max 12, above which memory load brutally starts to get crazy.)
    • Last the user is prompted about energy binning, as the code manages countmaps/countcubes in one shot.
    • The output format is such that it is readable by Aladin : the SKYMAPS is a series of columns, each corresponding to an energy bin. For each column, each row corresponds to the count in one healpix pixel.

    -bash-4.1$ stag -notes="First tag including the HEALPIX extension to evtbin" -minor -cvspath=evtbin
    Successfully made tag evtbin-02-06-00 along branch MAIN

    -bash-4.1$ stag -notes="First tag including the HEALPIX extension to evtbin" -minor -cvspath=evtbin
    Successfully made tag evtbin-02-06-00 along branch MAIN

    -bash-4.1$ stag -notes="First tag including the HEALPIX extension to evtbin" -minor -cvspath=evtbin
    Successfully made tag evtbin-02-06-00 along branch MAIN

    • celestialSources-01-05-00, genericSources-01-16-00
      • genericSources::ConstParMap -> celestialSources::ConstParMap
    • caldb-04-02-00
      • Added P7CLEAN_V6MC irfs.
    • pyLikelihood-01-30-02
      • enable calculation for diffuse sources
    • tip-02-17-03
      • Fixing null values for variable length arrays: Gulli's bug-fix for failed tip and pulsarDb test programs after implementation of STGEN-129@JIRA.
    • tip-02-17-04
      • From Gulli: set TNULL keyword for variable length arrays and undo last two commits re: fits_write_colnull
    • Likelihood-17-24-05
      • Enable srcmaps parameter from gtmodel to be used as the counts map when preparing the Observation::m_meanpsf data member. This fixes a bug reported by David Landriu.
      • Add BrokenPowerLaw3 model. This model replaces the Prefactor and BreakValue parameters with flux integrals (Integral1 and Integral2) at low and high energies, nominally above and below a putative break. This enables setting priors on the either of the power-law components based on measurements by other instruments at lower or higher energies (e.g., GBM or TeV instruments). Example xml model:
          <source name="Blazar" type="PointSource">
            <spectrum type="BrokenPowerLaw3">
              <parameter error="0" free="1" max="1000" min="0" name="Integral1" scale="1e-7" value="1.8" />
              <parameter error="0" free="1" max="1" min="-5" name="Index1" scale="1" value="-0.88" />
              <parameter error="1.64e-2" free="1" max="1000" min="0" name="Integral2" scale="1e-9" value="1.1805" />
              <parameter error="0.017" free="1" max="-0" min="-5" name="Index2" scale="1" value="-2.1024" />
              <parameter free="0" max="300000" min="20" name="LowerLimit1" scale="1" value="100" />
              <parameter free="0" max="300000" min="20" name="UpperLimit1" scale="1" value="2e4" />
              <parameter free="0" max="1e6" min="3e4" name="LowerLimit2" scale="1" value="3e5" />
              <parameter free="0" max="5e6" min="3e4" name="UpperLimit2" scale="1" value="2e6" />
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360" min="-360" name="RA" scale="1" value="194.5" />
              <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="-5.78" />
    • Likelihood-17-24-06
      • fix par file handling for gtexpcube2 (broken when trying to fix gtmodel
    • ScienceTools-09-30-01
      • Patch tag to capture parfile addition in SolarSystemTools-01-01-01 and sane-03-22-00 fixes.
    • Likelihood-17-24-07, pyLikelihood-01-30-04
      • allow users to set energy band in unbinned analysis that excludes all event data, e.g,
        >>> print like.observation.roiCuts().getEnergyCuts()  # get the original energy selection made with gtselect
        (2000, 200000)
        >>> like.setEnergyRange(70, 1000)           # exclude all event data by choosing a band that is out of range
        >>> print like()
        J. Ballet requested this, presumably for use in composite likelihood analyses with binned likelihoods. This requires special handling since the code would normally evaluate the predicted number of events in the selected energy band and try to minimize the -log-likelihood. In the composite likelihood analysis, the use case would be to disable the calculation of the unbinned contribution to the overall likelihood. Hence, the value in this case the unbinned (disabled) component is set to zero. For normal energy band selections, the log-likelihood is evaluated as before.
    • irfUtil-00-04-05
    • pyLikelihood-01-30-05, Likelihood-17-24-08
      • Model map creation from Python for BinnedAnalysis objects LK-70@JIRA.
    • SConsFiles-01-01-02, containerSettings-00-01-06
      • bump version of extFiles to v0r10 for updates to jplephem/leapsec.fits and jplephem/tai-utc.dat. Needed by gtbary for June 30, 2012 leap second.
    • caldb-04-02-01
      • Replace aeff_P7CLEAN_V6MC*.fits files with versions that contain efficiency correction parameters.
    • caldb-04-02-02
      • add CALDB/data/glast/lat/irf_index.fits to provide mapping of bit mask position to IRF name.
    • dataSubselector-08-04-00
      • add Cuts::irfName() member function that identifies the desired IRF based on DSS keywords. This is the first step to having the IRFs set automatically when running tools downstream from gtselect.
    • observationSim-09-03-00
      • EVENT_CLASS column written to FT1 using bit mapping for P7V6 irfs
    • dataSubselector-08-04-[01-03]
      • various bug-fixes for handling pre-Pass 7 irfs.
    • observationSim-09-02-02
      • set PASS_VER in EVENTS HDU
    • dataSubselector-08-04-04
      • refactor BITMASK and PASS_VER handling; remove set_irfName from Cuts constructors and make an explicit call required in Cuts::checkIrfs(...)
    • Likelihood-17-25-00
      • compare DSS keyword-inferred irfs against user-specified irfs in all applications with irfs parameter
    • Likelihood-17-25-01
      • Use linear interpolation for MapCubes where one of the pixels in a bracketing image plane has a zero value LK-82@JIRA.
    • Likelihood-17-26-00, map_tools-07-07-00
    • fitsGen-06-06-00
      • Add LAMBDA column to ft2.tpl.
    • fitsGenApps-00-06-04
      • Fix typo in ft2.tpl for description of LAMBDA column
      • add error checking for calls to TTree->GetEvent(...) called from MeritFile2. Throw exception if TTree->GetEvent(...) == -1.
      • fitsGen-06-06-02 (this should have been tagged at the same time as fitsGenApps-00-06-04).
        • add error checking for calls to TTree->GetEvent(...) called from MeritFile2. Throw exception if TTree->GetEvent(...) == -1.
    • st_facilities-00-18-00
      • add Timer class to aid in debugging and development
    • dataSubselector-08-04-06
      • back off on IRF checking until custom irfs are handled correctly
    • Likelihood-17-26-02
      • performance improvements in BinnedLikelihood::getFreeDerivs
    • fitsGenApps-00-07-01
      • Fix to compute sign of rocking angle in makeFT2a (see STGEN-136@JIRA).
  12. st_facilities-00-20-02 : copy over irfs/latResponse Bilinear and FitsTable helper classes, so that they are visible in GlastRelease land. These copy are within the namespace st_facilities, while irfs code continue to use the copies in the latResponse namespaces. This will be fixed when the dust settles

    • pyLikelihood-01-31-01
    • caldb-04-03-00
      • Added P7REP irfs, version V10
    • ScienceTools-09-31-00
      • Changes since September 12, 2012
    • caldb_release-04-02-00
      • P7REP irfs, version V10
    • dataSubselector-08-04-07 : to address STGEN-137@JIRA and STGEN-139@JIRA. Eliminate large intermediate size of output file when used with multiple large input files. Merge two loops over input data into one to speed up processing on IO-bound systems by factor of up to two.
    • pyLikelihood-01-31-02
      • bug-fix for parameter-handling in SummedLikelihood when using LikelihoodState (reported by Jean Ballet).
    • ScienceTools-09-31-01
      • Includes gtselect and SummedLikelihood fixes.
    • Likelihood-18-00-00
      • Steve's changes for STGEN-135@JIRA
      • enforce consistent usage of time-dependence in IRF interface for epoch-dependent IRFs
    • caldb-05-00-00
      • Corrected CALDB boundary keywords in Pass7 IRF files and updated caldb.indx accordingly
    • irfUtil-01-00-00
      • add HdCaldb.getFiles(...) function to handle multi-epoch IRFs
      • revise usage of HDgtcalf so that time ranges requests are made correctly
    • latResponse-03-00-00
      • Handle multi-epoch IRFs using *EpochDep classes.
    • observationSim-09-02-04
      • Use time-dependence of efficiency factor in EventContainer.cxx
    • Likelihood-18-00-01
      • Reduce memory usage in BinnedLikelihood while loading XML model
    • Likelihood-18-00-02
      • Bug-fix in DMFitFunction.cxx (implemented by JCT)
    • Likelihood-18-00-03
      • Use EventContainer to read events in gtdiffrsp so that exisiting diffuse columns are recorded in each Event object. This ensures that existing diffuse response columns are not recomputed when new diffuse components are added.
    • observationSim-09-02-05
      • write correct EVENT_CLASS column value for test program output
    • BayesianBlocks-04-01-01
      • Use TSTART, TSTOP values from FT1 file to set outer cell boundaries for first and last cells in event mode.
    • Likelihood-18-00-04
      • Bug-fix for BinnedLikelihood::modelCountsSpectrum(...): ensure that the model map is up-to-date before calculating model counts spectra. This issue arose for counts spectra computed after running SummedLikelihood.Ts(...).
    • Likelihood-18-00-05
      • added externs for hasim_ structs for mac builds at FSSC
    • ScienceTools-09-31-02
      • Changes since Jan 14, 2013
    • pyLikelihood-01-31-03
      • Bug-fix for RootPlot.plotFixed(...) caused by move to ROOT v5.34.
    • embed_python-01-07-00
      • add Module::getDict(...) access for dict of list of strings to support makeirfs enhancements.
    • Likelihood-18-00-06, st_facilities-00-20-03
    • handoff_response-04-06-00
      • enable specification of friend trees and reconstructed direction and energy variables in as input to prune and makeirf
    • pyLikelihood-01-31-04
      • docstrings for from Jeremy; improved parameter handling
    • caldb-05-01-00
      • add P7REP_*_v15 irfs
    • pyLikelihood-01-31-05
      • Dynamically increase profile sampling step in UpperLimit.compute(...) based on delta-log-likelihood values. This is intended to handle cases where the initial step size is too small to induce a significant change relative to the numerical precision of the log-likelihood calculation.
    • ScienceTools-09-32-00
      • Changes since March 28, 2013
      • P7REP_*_V15 irfs
    • sane-03-022-02
      • updates to test_sane scripts: exercise the module; enable users to specify the working directory for the test_sane program so that the test program for RM builds can be run by hand.
    • Likelihood-18-00-09
      • bug-fix for gtdiffrsp for input FT1 files that do not have energy selection applied
    • ScienceTools-09-32-01
      • Tag to include Likelihood-18-00-09
    • Likelihood-18-00-10, ScienceTools-09-32-02
      • Another bug-fix related to evclass=<n> selection for gtdiffrsp
      • ScienceTools-09-32-02
        • an error in tagging caused this release not to include Likelihood-18-00-10. This release will be deleted.
    • Likelihood-18-00-11
      • "dmfit new datafile to fix a low energy bug in pythia runs" (from JCT)
    • Likelihood-18-00-12
      • In gtsrcmaps.par, put copyall=no as the default for this hidden parameter. This effectively restores the default behavior for gtsrcmaps with respect to the change implemented in LK-85@JIRA. The functionality implemented in LK-85@JIRA does not work if users specify the same file for the cmap (input) and outfile (output) options. I'll reopen that issue to address this usage.
    • ScienceTools-09-32-04
      • Fixes since June 12
    • pyLikelihood-01-31-06
      • Improve QuadraticFit.errorEst() so that the implied integration range in UpperLimit.bayesianUL() is more reliable.
    • astro-03-15-02
      • more informative TimeRangeError in PointingHistory.cxx (from Jeremy)
    • observationSim-09-02-06
      • set chatter level of TimeRangeError handling to 2 (default) in Simulator.cxx (from Jeremy)
    • evtbin-02-06-04
      • Exception only thrown by gtbin if FT2 file is missing for PHA or PHA2 files (from Joe A.). See STGEN-120@JIRA.
    • ScienceTools-09-32-05
      • Changes since June 15
    • latResponse-03-00-02
      • Suppress const-correctness warning in Edsip2.cxx compilation.
    • observationSim-09-02-07
      • use Earth azimuth angle calculation from GLEAM.
  13. Modifications to support automatic IRF discovery

    • caldb-05-01-01
      • add bit-mappings to irfs_index.fits for P7REP irfs
    • dataSubselector-08-05-00
      • handle irfs version info in DSS keywords via VersionCut class
      • update code to determine irfs from input files
    • Likelihood-18-01-01
      • Move irf-handling and discovery to AppHelpers
    • pyLikelihood-01-32-00
      • irf-handling code in and
    • sane-03-22-03
      • update tests to exercise automatic irf discovery code
    • caldb_release-05-00-00
      • Added P7REP_*_V15 irfs
  14. Modifications to support FSSC-requested irfs handling:

    • dataSubselector-08-06-00
    • Likelihood-18-02-00
    • pyLikelihood-01-33-00
    • observationSim-09-03-00
    • sane-03-23-00
    • Likelihood-18-02-01
      • make image arrays float instead of double; enable clearing of spacecraft data via ScData::clear_arrays(...)
    • pyLikelihood-01-33-01
      • Save memory by calling ScData::clear_arrays(...) in UnbinnedAnalysis after event data are read
    • Likelihood-18-02-02
      • use column filtering to reduce memory usage when reading in FT2 file
      • enable checking of user-specified irfs for gtsrcmaps and gttsmap
    • Likelihood-18-02-03
      • Throw exception from gtltcube if no GTIs are found in input events files:
        Caught St13runtime_error at the top level: Input event file(s) contains no GTIs.
        See LK-89@JIRA
    • Likelihood-18-03-00
      • Reduce memory usage in gtmodel.
    • Likelihood-18-03-01
      • Fixes to automatic irfs handling to preserve backwards compatibility with older bexpmap files which lack DSS keywords.
    • rspgen-03-02-03 (from Joe A.)
      • Updated RspGenApp.cxx to accomodate CALDB changes
    • astro-04-15-04
      • Added NADIR enum and case to GPS.cxx in which EARTH_AZIMUTH_ANGLE can be handled correctly for the EarthPhenom model.
    • flux-08-43-02
      • Added NADIR enum and "nadir" frame to SourceDirection.cxx for that sources
        that define EARTH_AZIMUTH_ANGLE correctly. Source xml definitions for EarthPhenom sources should use
        <use_spectrum frame="nadir"/>
        <use_spectrum frame="zenith"/> <!-- Do not use this -->
    • pyExposure-02-06-00
      • Automatic IRF discovery mechanism in gtexposure
    • optimizers-02-22-01
      • throw exception from NewMinuit::Minos if Minuit2::MnMinos does not find a valid lower or upper confidence limit
    • Likelihood-18-03-03
      • use more sensible return value (-1e30) for LogLike::logSourceModel if negative probability denisty is computed
    • optimizers-02-23-00
      • add StMnMinos class which obeys user-specified bounds in Minuit2/Minos error estimates.
    • eblAtten-00-10-00
      • add AsciiTableModel class and Gilmore et al. 2012 EBL models
    • eblAtten-00-10-01
      • In AsciiTableModel, handle redshifts below lower bound of redshift array by setting to zero to avoid extrapolation to negative values.
    • optimizers-02-23-01
      • Johann's fixes for StMnMinos scaling of error calculations affected by user-specified bounds.
    • pyLikelihood-01-33-02
      • Define additional plotting symbols (from David Landriu) to
    • dataSubselector-08-06-02
      • gtselect bug-fix for handling selections on single values, e.g., convtype=0.  Bug introduced in dataSubselector-08-06-01 to make range selections half-open, e.g., emin < ENERGY && ENERGY <= emax, to avoid overlapping selections.
    • Likelihood-18-03-04
      • Add test in ResponseFunctions to see if event selection from DSS keywords is compatible with user-selected IRFs.
    • Likelihood-18-04-00, pyLikelihood-01-34-00
      • To support catalog analysis, tying of parameters in SummedLikelihood has been enabled.  Example code below:
    from UnbinnedAnalysis import *
    from SummedLikelihood import SummedLikelihood
    like0 = unbinnedAnalysis(...)
    like1 = unbinnedAnalysis(...)
    like = SummedLikelihood()
    tied_pars0 = (like.par_index('Geminga1', 'Integral'),
                  like.par_index('Geminga2', 'Integral'))
    tied_pars1 = (like.par_index('Geminga1', 'Index'),
                  like.par_index('Geminga2', 'Index'))
    print like.model
    print like.minosError('Geminga1', 'Integral')
    print like.minosError('Geminga2', 'Integral')
    • handoff_response-05-00-00 (Changes to support event types in Pass 8)
      • Remove automatic partitioning into front and back irfs
      • Rationalize the user interface for prune and makeirf applications:
        • The user must provide a setup file at the command line
        • The output directory and output files should be given in the user-provided setup file:

          new entries in user's setup module for prune, makeirf
          className = "source"       # The name of the event class in the CALDB boundary keywords and in the output FITS filenames
          root_dir = "."             # Root directory for output files (default shown)
          parameterFile = "parameters.root"    # ROOT file containing the IRF data to be written to the CALDB FITS files
          selectionName = "front"    # The name of the data selection.  This is used in the filenames of the output .ps and .root files
        • Front and back event selections must be specified in the Prune.cuts explicitly.  The following would correspond to SOURCE events (in P7[REP]) for the front section:

          Prune.cuts = '(FT1EventClass & (0x1<<2))>0 && (Tkr1FirstLayer > 5)'
    • fitsGen-06-07-00, fitsGenApps-00-08-00
      • Add EVENT_TYPE column to FT1 output
    • Likelihood-18-04-01
      • gtebl parameter handling bug-fix
      • enable BinnedExposure to be subclassed for Johann's healpix exposure calculation in gtexpcube2
    • evtbin-02-06-05
      • Changed extension name for healpix output from "SKYMAPS" to "SKYMAP" for consistency with galprop/gardian/galplot tools. (changes by Johann)
    • ScienceTools-09-33-00
      • Changes from July 26, 2013, excluding any changes in celestialSources/EarthPhenom, celestialSource/eblAtten, after fitsGen-06-05-05, after fitsGenApps-00-07-01, after irfs/handoff_response-04-06-00, after pointlike-08-00-04
    • Likelihood-18-04-02
      • Johann's renaming of SKYMAPS->SKYMAP extension for gtexpcube2 in healpix mode
    1. Added note : gtexpcube2 now creates a SKYMAP named HEALPIX extension automatically, if the cube in input is in healpix. This means that no new input parameter has been added to gtexpcube2 par file.

    • pyLikelihood-01-34-01
      • bug-fix: ensure extra attributes from xml file are propagated to SourceModel objects after synching up errors in SummedLikelihood
    • dataSubselector-08-06-03
      • bug-fix for row-by-row filtering.  Note that this bug did not affect gtselect since gtselect uses cfitsio filtering for multiple input files (the prior use-case for row-by-row filtering).  This change simply ensures that the C++ interface behaves consistently.
    • pyLikelihood-01-34-02, Likelihood-18-04-05, st_facilities-00-20-04, dataSubselector-08-06-04, latResponse-03-00-03
      • const fixes to suppress warnings and errors for Mountain Lion builds
    • Likelihood-18-04-06
      • another const correctness fix for Mountain Lion builds
    • dataSubselector-08-07-00, Likelihood-18-05-00, observationSim-09-03-01, fitsGen-07-00-00
      • Pass 8 bit-masking and EVENT_TYPE implementation
    • fitsGenApps-00-09-00
      • Bit-array support for makeFT1 output.
    • Likelihood-18-05-01
      • Use energy-dependent cutoff angle in map-based diffuse response integral.  This will speed up diffuse response calculations for diffuse sources with all-sky maps.
    • ScienceTools-09-33-01
      • Changes since March 16, 2014, excluding Likelihood-18-05-01



    • handoff_response-05-01-00
      • Added a flag in the file to use just the front psf scaling for all events:

        excerpt from an example
        Data.front_only_psf_scaling = False    # False is the default and will be used if this parameter is omitted from
      • Riccardo's change to avoid the small angle approximation in the angular deviations used for the PSF distributions.
    • Likelihood-18-05-03
      • Implemented an alternative point source map calculation that uses a PSF value that is averaged over the theta-extent covered by the target pixel.  To enable, set an environment variable:

        setenv USE_NEW_PSF_ESTIMATOR true   # csh
        export USE_NEW_PSF_ESTIMATOR=true   # bash

        To disable again, unsetenv USE_NEW_PSF_ESTIMATOR.

    • tip-02-18-05 (from Joe A.)
    • ScienceTools-09-33-02
      • tip-02-18-05 is the only update relative to 09-33-01
    1. For some reason, this tag does not actually include tip-02-18-05.  Will tag a new release once this is understood.

        • ScienceTools-09-33-03
          • tag collector script did not update packageLists.txt for preceding HEAD build.  Had to modify it by hand and apply a new tag.
    • pyBurstAnalysisGUI-02-00-00
      • Support of Pass 8 data v0
      • Corrected a bug in the update procedure which was preventing some user to get some of the files contained in the update package
    • Likelihood-18-05-04
      • Explicitly integrate the piece-wise linear representation of the PSF in MeanPsf::integral to address excess residuals at low energies in point source maps.
    • Likelihood-18-05-05
      • Skip irf version DSS keyword checks against pha file (STGEN-140@JIRA).
    • irfInterface-03-01-01
      • Improved offset angle sampler in IPsf::appDir, using explicit integration of piece-wise linear PSF representation
    • handoff_response-05-02-01
      • allow users to set scaling function parameters for PSF and edisp via and propagate to FITS output via root parameter file.
        Example code:

        example scaling parameter specification = [5.81e-2, 3.77e-4, 9.6e-2, 1.3e-3, -0.8]     # there must be 5 parameters
        Edisp.front_pars = [0.0210, 0.058, -0.207, -0.213, 0.042, 0.564]    # each edisp set must have six parameters
        Edisp.back_pars = [0.0215, 0.0507, -0.22, -0.243, 0.065, 0.584]

        If the user omits any of the three sequences,, Edisp.front_pars, or Edisp.back_pars, the default values (shown above) are used.
        The parameters used are printed to the screen by makeirf:

        Using PSF scale factor parameters:
        0.0581  0.000377  0.096  0.0013  -0.8  
        Using energy dispersion front parameters:
        0.021  0.058  -0.207  -0.213  0.042  0.564  
        Using energy dispersion back parameters:
        0.0215  0.0507  -0.22  -0.243  0.065  0.584  
    • map_tools-07-07-01
      • fix pcheck errors in test_map_tools.par reported by Joe A.
    • pyLikelihood-01-34-03
      • add SWIG template for WcsMap2 interface change (from Matthew Wood)
      • If source has no free parameters, return zero for fluxError(...)
    • dataSubselector-08-07-02
      • enable astroserver P300 data (P8R0) to be processed by gtselect (using Pass 7-style EVENT_CLASS filtering)
    • Likelihood-18-05-06
      • Bug-fix in Drm.cxx for low energy true counts extrapolation (h/t Philippe)
      • Make new PSF estimation scheme the default in SourceMap.cxx
    • Likelihood-18-05-07
      • bug-fix for SummedLikelihood::getFreeDerivs
    • ScienceTools-09-34-00
      • Changes since May 25, 2014, including, notably, improved PSF sampling for gtobssim (via irfInterface-03-01-01) and improved point source representation in source maps for binned likelihood analysis (Likelihood-18-05-06).
    •  Likelihood-18-05-08
    • Likelihood-18-05-09
      • Workaround in SourceMap::psfValueEstimate for obscure bug in astro::SkyDir constructor using SkyProj object.
    • Likelihood-18-05-10
      • enable psfcorr option for gtmodel
    • pyLikelihood-01-34-04
      • enable psfcorr option for [bB]innedAnalysis
    • Likelihood-18-05-11
      • roll-back central pixel subsampling for point source maps; add 4 pixel boundary for psf normalization correction
    • ScienceTools-09-34-01
      • changes since July 1, 2014
    • latResponse-03-01-00
      • add distribution interpolation to energy dispersion for P7 and later
    • Likelihood-18-05-12
      • Added member functions to access energy and dnde arrays directly in FileFunction (requested by Giacomo V.).
    • Likelihood-18-06-00
      • allow users to disable application of energy dispersion for specified sources in xml definition
      • This is set via the apply_edisp attribute, e.g.,

          <source ROI_dist="10" name="PKS 0528+134" type="PointSource">
            <spectrum type="PowerLaw2" apply_edisp="false">
              <parameter free="1" max="1000.0" min="0" name="Integral" scale="1e-06" value="1.0"/>
              <parameter free="1" max="-1.0" min="-5.0" name="Index" scale="1.0" value="-2.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="LowerLimit" scale="1.0" value="20.0"/>
              <parameter free="0" max="200000.0" min="20.0" name="UpperLimit" scale="1.0" value="2e5"/>
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360" min="-360" name="RA" scale="1.0" value="82.74"/>
              <parameter free="0" max="90" min="-90" name="DEC" scale="1.0" value="13.38"/>

        If the apply_edisp attribute is missing, then energy dispersion can be applied.  Valid values for apply_edisp are only "true" and "false".

    • Likelihood-18-06-01
      • Updated the code that calculates the model counts spectrum over the fixed sources to account for sources with apply_edisp="true".  This only affected the BinnedAnalysis.plotFixed() function in pyLikelihood, not the underlying fit results.
    • ScienceTools-09-34-02
      • Changes since August 6, 2014
    • latResponse-03-02-00
      • add Edisp3 for third generation energy dispersion parameterization
    • Likelihood-18-06-02
      • handle extremely small values of true model counts that cause floating point error in Drm calculation
    • latResponse-03-02-01
      • fix Edisp2 normalization when using interpolation scheme
    • orbitSim-02-00-10
      • Changes from Joe A.
    • st_graph-01-07-10, pyLikelihood-01-34-05
      • matplotlib support from Tom Stephens.  For gtlike, this would only be available (currently) from non-ROOT builds.  To enable in pyLikelihood, do

        >>> like.setPlotter('mpl')
    • st-graph-01-07-11
      • enable build of matplotlib stuff with SCons
    • handoff_response-05-03-00
      • More changes to support Pass 8: new edisp parameter, BIAS2; improved fitting of edisp distributions; classes to provide fisheye corrections.  Contributions from Johann, Riccardo, Matthew, Philippe.
    • ScienceTools-09-34-03
      • Changes since September 9, 2014
    • Likelihood-18-07-00
      • Add energy dispersion handling to gtmodel.  Enable by setting the edisp hidden parameter:

        $ gtmodel edisp=yes
    1. Users should note that in the recent release, ScienceTools-09-34-03, one can turn on/off energy dispersion handling in gtmodel already using the environment variable:

      $ export USE_BL_EDISP=true      # turn on edisp handling.  Note that the precise value doesn't matter.
      $ unsetenv USE_BL_EDISP         # turn off edisp handling

      Note that this environment variable applies to all binned analyses within the current session.

    • Likelihood-18-07-01
      • In WcsMap2.cxx, inequality test for checking computed index of energy in map energy bounds was comparing signed with unsigned int, yielding an incorrect result when k=-1, i.e., when the test energy is below the energy bounds range.  Fix by casting the unsigned int value as a signed int.  This affected gtsrcmaps when asked to compute  a source map at energies below the bounds of the mapcube for a diffuse component.


    • Likelihood-18-07-02
      • bug-fix for 2D map handling re: energy range check in Likelihood-18-07-01
    • dataSubselector-08-07-03
      • add zmin parameter to gtselect (J. Ballet request)
    • astro-03-15-05
      • Add MET to exception message from EarthCoordinate when altitude exceeds 600 km


    • ScienceTools-09-35-00
      • Changes since October 1, 2014
      • Last release tag before interface changes introduced by Pass 8 handling.
    • ScienceTools-09-35-01
      • Includes dataSubselector-08-07-05 wherein the recently added zmin option is made a hidden parameter so that existing scripts that do not use GtApp won't break.
    • Tags to support Pass 8 and event_type handling
      • irfUtil-02-00-00
      • caldb-06-00-00
      • caldb_release-06-00-00
      • latResponse-04-00-00
      • observationSim-10-00-00
      • Likelihood-19-00-00
      • pyLikelihood-02-00-00
      • dataSubselector-09-00-00
      • sane-04-00-00
    • See Changes to support Pass 8 for descriptions of the user interface changes to the gt-tools
    • containerSettings-00-02-04
      • using catalogProducts v2r1 and diffuseModels v4r1
    • latResponse-04-00-01
      • Make interpolation of the edisp distributions in Edisp[23] (i.e., Pass 7 and later) the default.  Interpolation can be disabled using export DISABLE_EDISP_INTERP=true.

    • Likelihood-19-00-01, dataSubselector-09-00-01
      • Support for irfs=<not CALDB> evtype=... functionality.  DSS keywords will write the implied EVENT_CLASS and EVENT_TYPE selections.
    • Likelihood-19-00-02
      • Fixed LK-94@JIRA: pyLikelihood does not propagate appy_edisp attributes to the output xml file

    • pyLikelihood-02-00-03
      • address swig-related build issue on rh5-32 platform
    • flux-08-44-00, observationSim-10-01-00
      • Enable source-by-source apply_edisp flag in xml defintion.  
      • Example:  

          <source flux="1" name="mono-energetic source">
            <spectrum escale="MeV" apply_edisp="false">
              <particle name="gamma">
                <energy e="1000"/>
              <celestial_dir ra="343.4974" dec="16.1526"/>

        The attribute must be set in the "spectrum" tag.  Use of the command line option, edisp=no, turns off energy dispersion for all sources, regardless of the individual apply_edisp flags in the xml model.



    • astro-03-15-08
      • fixed STGEN-146@JIRA: "Add leap second to astro::JulianDate for 2015-06-30"
    • fitsGen-07-01-00
      • enable array values in the merit tuple to be accessed by index.  This enable entries in the merit-to-FT1 dictionary of the form

        PT_POS_X                PtPos[0]
        PT_POS_Y                PtPos[1]
        PT_POS_Z                PtPos[2]
      • Note that no checks are made to ensure that indexes accessed are within range of the array defined in the merit tuple.  Since the code accesses the array values via pointer offsets, out-of-range indexes will give nonsense results.
    • fitsGen-07-01-01
      • Increase allocation to support very long TCuts via TFormula::SetMaximum.
    • ScienceTools-09-35-02
      • Relative to ST-09-35-01, this only adds fitsGen-07-01-01 and astro-03-15-08.   It does not include Pass 8-related development concerning event_type handling, e.g., as noted in the Jan 8, 2015 entry above.
    • fitsGen-07-01-02
      • fixed STARCH-21@JIRA: "makeFT1 should catch ROOT error codes/exceptions".  This only handles the one ROOT error mentioned in the issue.  If someone wants or wants to implement a more general solution, the issue can be reopened.
    • latResponse-04-01-00
      • remove reliance on separate F/B efficiency factors and psf scaling
    • likeGui-07-10-0
      • use astropy.coordinates in
    • caldb-06-00-01, caldb_release-06-00-01
      • fix front/back scaling redundancies to be consistent with Pass 8 latResponse implementation
    • Likelihood-19-00-03
      • disallow event_type qualifiers on irfs command line option
    1. What does that mean in terms of manually setting IRFs in gtexpcube2?

      1. You need to specify the evtype value.  Other changes here

    • containerSettings-00-02-07
      • Roll back to cfitsio 3.29 so that ST-LATEST unit tests succeed.
    • likeGui-07-11-00
      • add Saclay implementations of angular distance, called saclay_dist

    • caldb-07-00-00, caldb_release-07-00-00
      • Added P8R2 irfs
    • caldb-07-00-01, caldb_release-07-00-01
      • fix TDIM10, TUNIT10 keywords in edisp_P8R2* headers
    • dataSubselector-09-00-02
      • fix logic error in evtype handling in gtselect for chained evtype selections.
    • dataSubselector-09-00-03
      • Improve P7 handling of event_class bit mask; provide member function to append appropriate irf name suffix for non F/B event class selection
    • pyLikelihood-02-00-04
      • add code to append event_type partition name to irfs name
    • dataSubselector-09-00-05
      • resolve overloaded std::pow issue for rhel5-32 builds
    • caldb-07-00-02, caldb_release-07-00-02
      • P8R2 fixes for EFFICIENCY_PARAMS ext column name; P7* fixes for F/B efficiency params and psf scaling
    • latResponse-04-01-01
      • remove backwards compatibility workaround for aeff files that lack EFFICIENCY_PARAMS extension.  This is no longer needed for P7 irfs and later.
    • ScienceTools-10-00-01
      • Changes since Feb 13, 2015
    • dataSubselector-09-00-08
      • bug-fix for code that checks irf name against EVENT_CLASS column in irf_index.fits
    • ScienceTools-10-00-02
      • includes dataSubselector-09-00-08
    • Likelihood-19-00-04
      • Add MultipleBrokenPowerLaw model
      • Here is an example xml definition:

          <source name="PKS 0528+134" type="PointSource">
            <spectrum type="MultipleBPL">
              <parameter free="1" min="0" max="100" name="Normalization" scale="1e-6" value="1" />
              <parameter free="1" min="-5" max="-1" name="Index0" scale="1" value="-2.5" />
              <parameter free="1" min="-5" max="-1" name="Index1" scale="1" value="-3" />
              <parameter free="1" min="-5" max="-1" name="Index2" scale="1" value="-3.5" />
              <parameter free="0" min="100" max="1e5" name="Break0" scale="1" value="1e3" />
              <parameter free="0" min="100" max="1e5" name="Break1" scale="1" value="1e4" />
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360" min="-360" name="RA" scale="1" value="82.74"/>
              <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="13.38"/>
      • Constraints:

        • The Index# and Break# parameters must appear in order in the xml definition.

        • There must be one fewer Break parameter than Index parameters.

        • The Break parameters all must have free="0", i.e., they must be fixed. 

        • The Normalization is the function value at the first break energy, Break0. 

        • The first photon index, Index0, applies to all energies below Break0.  Similarly, the last photon index applies to all energies above the last energy break.
        • The maximum number of Index values is 50.

    • Likelihood-19-00-05
      • bug-fix so that xml model def for MultipleBrokenPowerLaw is written correctly by .writeXml(...) function.
    • Likelihood-19-00-06
      • Add PiecewisePowerLaw model
      • Example xml definition:

        <source name="PKS 0528+134" type="PointSource">
          <spectrum type="PiecewisePowerLaw">
            <parameter error="3.177467545e-06" free="1" max="1" min="-5" name="IndexL" scale="1" value="1" />
            <parameter error="10.93370427" free="1" max="1" min="-5" name="IndexH" scale="1" value="-1.65983471" />
            <parameter error="0.00122076882" free="1" max="100000" min="1e-10" name="dNdE0" scale="1" value="0.04484678012" />
            <parameter error="0.02528679806" free="1" max="100000" min="1e-10" name="dNdE1" scale="1" value="0.7060130187" />
            <parameter error="0.009884290218" free="1" max="100000" min="1e-10" name="dNdE2" scale="1" value="0.2442253559" />
            <parameter free="0" max="100000" min="100" name="Energy0" scale="1" value="1e3" />
            <parameter free="0" max="100000" min="100" name="Energy1" scale="1" value="3e3" />
            <parameter free="0" max="100000" min="100" name="Energy2" scale="1" value="1e4" />
          <spatialModel type="SkyDirFunction">
            <parameter free="0" max="360" min="-360" name="RA" scale="1" value="82.74"/>
            <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="13.38"/>
      • Constraints:
        • The dNdE# and Energy# parameters must appear in order.
        • The number of dNdE and Energy parameters must be the same.
        • The value of dNdE0 is the differential flux (#photons/area-time-energy) at Energy0.  The remaining dNdE values are the fluxes relative to dNdE0, so that dNdE0 operates as an overall normalization.
        • IndexL is the photon index that applies below Energy0, and IndexH applies above the last Energy parameter.
        • All of the Energy parameters must be fixed (free="0").
        • The maximum number of dNdE parameters is 49.
    • optimizers-03-00-01, burstFit-02-03-00, Likelihood-19-01-00, pyExposure-02-06-01
      • Refactored the Function hierarchy to enable effective area systematics to be applied directly at the Function level to the underlying source spectrum.
    • Likelihood-19-01-01, optimizers-03-00-03
      • Enable user to apply a scaling function to the source spectrum in the xml model definition to enable effective area systematics studies.  The scaling function is implemented as a FileFunction object.   Example xml model definition:

          <source name="Mrk 421" type="PointSource">
            <spectrum scaling_file="scaling_function.txt" type="PowerLaw2">
              <parameter error="0.1901145439" free="1" max="1e+10" min="0" name="Integral" scale="1e-07" value="1.330349164" />
              <parameter error="0.07759278701" free="1" max="-1" min="-5" name="Index" scale="1" value="-1.645938507" />
              <parameter free="0" max="200000" min="20" name="LowerLimit" scale="1" value="100" />
              <parameter free="0" max="200000" min="20" name="UpperLimit" scale="1" value="100000" />
            <spatialModel type="SkyDirFunction">
              <parameter free="0" max="360" min="-360" name="RA" scale="1" value="166.1138" />
              <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="38.2088" />

        The scaling_file must be an ascii file with two columns: energy in MeV and scaling factor.  The energies must cover the entire range of the analysis or an exception will be thrown.  Points are interpolated on a log-log grid, i.e., a power-law is used to interpolate between points.

    • Likelihood-19-01-02:
      • fixed LK-93@JIRA: "gtexpmap takes GTI from event list"
    • likeGui-07-11-01
      • ensure that  is installed in the ST PYTHONPATH.  This is needed by
    • fitsGen-07-01-03
      • fix FT1 and FT2 template file entries for CHECKSUM and DATASUM to support cfitsio v3370.  See EXTLIB-14@JIRA.
    • observationSim-10-01-01
      • load only the DC1A irfs to speed up test program; remove outer try/catch block in test program and let the exceptions be fully exposed
    •  pulsarDb-09-00-04
      • fix CHECKSUM and DATASUM keyword values in .tpl files so that cfitsio v3370 can be used
    • pyBurstAnalysisGUI-02-01-00
      • Small changes to allow the use of the latest version of Pass 8 IRFS within ST >= 10-00-00
      • Implemented the definition of the new IRFS and automatic recognition of P7 Vs P8 data (and relative IRFS)
      • Changes to allow the use of both the old and the new Background Estimator
    • Likleihood-19-01-04, optimizers-03-00-04
      • enable user to disable overall normalization parameter for PiecewisePowerLaw model.  This mode is enabled by setting the environment variable PIECEWISEPOWERLAW_DECOUPLED.  This mode is incompatible with certain features in pyLikelihood (e.g.,,, etc.) that required a parameter that provides an overall normalization of the spectrum.
  16. From Eric Charles (

    • SConFiles-01-19-01, astro-03-16-00, healpix-02-04-00, skymaps-02-14-02, evtbin-02-06-06, ScienceTools/containerSettings-00-03-00
      • Update these packages to use wcslib 4.25.1 and healpix 3.20 extlibs
    1. I presume that 2 packages need to be added to GLAST_EXT, for these to work. Is it possible to add the "official" paths to them here as well?

      1. I'm not sure what you mean by "official" paths.  The locations of the various extlibs are in allExternals.scons in the SConsFiles package:

        Is that the info you want?

    • Likelihood-19-01-08, st_facilities-00-20-05
    • Likelihood-19-01-09
      • fixed LK-96@JIRA: gtdiffrsp crashes using the new wcslib 4.25.1 extlib.
    • Likelihood-19-01-10
      • Modify gtpsf to note that it cannot infer the irfs and evtype info from the input expcube file since that file only contains GTIs in the DSS info.  Update gtpsf.par to prompt for evtype.
    • astro-03-16-01
      • Michael Kuss' fix for IGRF-12 handling with test code added (STGEN-141@JIRA); fix incorrect typedef specification in SolarSystem.h
    • irfInterface-03-02-00, irfUtil-02-01-00, latResponse-04-02-00
      • STGEN-153@JIRA: "Load IRF files only as needed from CALDB to speed up start time for gt-tools"
      • Defer reading of IRF files until explicitly requested by latResponse classes
    • observationSim-10-01-02, dataSubselector-09-00-09
    • Likelihood-19-01-11
      • fix LK-97@JIRA: "gtlike irfs=<irf name instead of CALDB> fails unless the prior event type selection is evtype=3"
    • pyLikelihood-02-00-05
    • Likelihood-19-01-12
      • bug-fix for FileFunction interpolation in cases where evaluation occurs at an energy end point of the input spectrum.
    • caldb-07-00-03, caldb_release-07-00-03
      • add text files with valid evtype and evclass down selections
    • dataSubselector-09-01-00
      • changes for STGEN-156@JIRA: "gtselect will replace event class selections and allowed event type selections using new info in CALDB"
    • ScienceTools-10-01-01
      • This includes all changes noted above since ST-10-01-00, in particular the new gtselect behavior for handling evtype and evclass selections.
      • This is not the release tag intended for the FSSC distribution.   That will be ST-10-00-04 and is forthcoming.
    • pyBurstAnalysisGUI-02-01-02:
      • Added the public names for the templates (isotropic and Galactic) so that the public version of gtburst finds them
      • Moved the repository for updates from sourceforge to github
      • Added a window with the summary of the likelihood analysis at the end of the last step of the Likelihood task
    • dataSubselector-09-00-10, caldb-07-00-03, caldb_release-07-00-03
    • ScienceTools-10-00-04
      • This is the FSSC public release candidate.  It comprises the packages in ST-10-00-03 with the above updates to the dataSubselector, caldb, and caldb_release packages.
    • BackgroundEstimator-01-00-01
      • corrected a bug when calling gtexpcube2. Added the "evtype" parameter to the call.
    • BackgroundEstimator-01-00-02
      • removed the data files from the ./data subdirectory. They are now in the BackgroundEstimator directory under $GLAST_EXT. They were taking too much disk space when the ST were compiled through the ReleaseManager, because scons copy them 3 times over for each platform.
    • likeGui-07-11-02
      • remove unnecessary import of numpy module components
    • Likelihood-19-01-13, pyLikelihood-02-00-06

      • LK-102@JIRA:  request to implement SummedLikelihood::NpredValue


    • dataSubselector-09-01-01
    • dataSubselector-09-02-00
    • skymaps-02-15-01
    • Likelihood-19-02-00, pyLikelihood-02-01-00
      • Eric Charles' gttscube application added and supporting classes exposed to python.
    •  Likelihood-19-02-01
      • Bug-fix for sources using PiecewisePowerLaw spectrum function.   The derivatives used in the computation by the .fluxError(...) function in pyLikelihood were not taking into account the dNdE# parameter scaling.
    • containerSettings-00-04-02
    •  orbitSim-03-00-0
      • update SConscript file so that the ft2.tpl is installed in the expected data folder.
    • astro-04-00-01
      • Improve accuracy of GAL->CEL coordinate transformations.  See STGEN-161.
    • Likelihood-20-01-00
      • Various bug fixes and improvements to FitScanner/gttscube.  For more information on how to use these tools see this page.
      • Implement SpatialDisk and SpatialGaussian models as analytic representations of a 2D disk and gaussian respectively.  Example XML definitions given below:

        <source name="DiskSource" type="DiffuseSource">
          <spatialModel type="SpatialDisk">
            <parameter free="0" max="90" min="0" name="Radius" scale="1" value="1.0" />
          	<parameter free="0" max="360" min="-360" name="RA" scale="1" value="166.1138" />
           	<parameter free="0" max="90" min="-90" name="DEC" scale="1" value="38.2088" />
        <source name="GaussianSource" type="DiffuseSource">
          <spatialModel type="SpatialGaussian">
            <parameter free="0" max="90" min="0" name="Sigma" scale="1" value="1.0" />
            <parameter free="0" max="360" min="-360" name="RA" scale="1" value="166.1138" />
            <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="38.2088" />
  17. Unknown User (jurgen)

    Good to see that disk and Gaussian spatial models are now also available in the Science Tools.

    I have these also implement in GammaLib / ctools and would like to have an XML format that is compatible with the Fermi/LAT Science Tools. Here the XML definition that is current used by GammaLib:

      <source name="Gaussian Crab" type="ExtendedSource">
          <spatialModel type="DiskFunction">
          <parameter name="RA"     scale="1.0" value="83.6331" min="-360" max="360" free="1"/>
          <parameter name="DEC"    scale="1.0" value="22.0145" min="-90"  max="90"  free="1"/>
          <parameter name="Radius" scale="1.0" value="0.20"    min="0.01" max="10"  free="1"/>
      <source name="Gaussian Crab" type="ExtendedSource">
          <spatialModel type="GaussFunction">
          <parameter name="RA"    scale="1.0" value="83.6331" min="-360" max="360" free="1"/>
          <parameter name="DEC"   scale="1.0" value="22.0145" min="-90"  max="90"  free="1"/>
          <parameter name="Sigma" scale="1.0" value="0.20"    min="0.01" max="10"  free="1"/>

    The names I invented were inspired from the "SkyDirFunction" used for a point source. Note that I also have elliptical models and they are called "EllipticalDisk" and "EllipticalGauss", so the names "RadialDisk" and "RadialGauss" for models that depend only on radius would also make sense. By the way: what is the source type that is implemented in the Science Tools?

    Any possibility to have common names so that XML files can be easily exchanged between Science Tools and ctools?

    1. This is certainly possible.  I didn't give much thought to the names and in retrospect I probably should have looked at what you were using in ctools.  The classes aren't widely used yet (we only made the 11-00-00 release available a few weeks ago) so changing the names shouldn't be too disruptive at this point.  However we should probably try to converge on something relatively soon.

      The SpatialDisk and SpatialGaussian classes use the existing DiffuseSource type so I guess that will also be an issue for making the XML models compatible.  Creating an ExtendedSource type would be a substantial amount of work but maybe a possible solution would be to make ExtendedSource an alias for DiffuseSource.

  18. Unknown User (jurgen)

    You can see how GammaLib organises the model classes at

    I have three types of models: "PointSource", "ExtendedSource" (used for radial and elliptical models) and "DiffuseSource" (used for maps, cubes, isotropic). The basic idea is that the spatial distribution of an "ExtendedSource" can be parametrised, while that of a "DiffuseSource" can not be parametrised. The good news is that I actually don't use the type in the software, but of course it would be good if the XML files are consistent. If a proxy could work on your side this would be perfect as it preserves the logical structure of the different model types.

    Concerning the names of the models, I don't like mine (the "Function" names), but since I have also elliptical models specifying "SpatialGaussian" would not be enough. I think also that the "Radial" names would be more precise ("RadialGauss", "RadialDisk", I also have a "ShellFunction" which could become "RadialShell"). I would certainly implement some fix in the ctools/GammaLib code that supports the old and the new names, but maybe dump a warning that the old names are deprecated.

    • ScienceTools-11-01-00
      This includes 
      • Likelihood-20-03-00, pyLikelihood-02-02-04
      • xmlBase-05-07-00 with changes to support xerces 3.1.3 external libraries


    • ScienceTools-11-01-01
      • pyLikelihood-02-02-05:  This entails a small patch for
    • Likelihood-20-03-00
      • Change naming convention for 2D gaussian and 2D disk spatial models to agree with model names used in GammaLib/ctools.  Example XML definitions given below:

        <source name="DiskSource" type="DiffuseSource">
          <spatialModel type="RadialDisk">
            <parameter free="0" max="90" min="0" name="Radius" scale="1" value="1.0" />
            <parameter free="0" max="360" min="-360" name="RA" scale="1" value="166.1138" />
            <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="38.2088" />
        <source name="GaussianSource" type="DiffuseSource">
          <spatialModel type="RadialGaussian">
            <parameter free="0" max="90" min="0" name="Sigma" scale="1" value="1.0" />
            <parameter free="0" max="360" min="-360" name="RA" scale="1" value="166.1138" />
            <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="38.2088" />

    • Likelihood-20-04-00
      • Fix division by zero bug in gtsrcmaps when defining a map with an odd number of spatial pixels
      • Add optional damping parameter to newton fitter.  This can be set through the pyLikelihood interface with the initLambda argument to run_tscube() or the FitScanCache constructor.
      • Fix indexing bug in FitScanCache likelihood calculation when useReduced=True.
      • Update format of TSCube output file.
    • pyLikelihood-02-02-06
      • Add SWIG template for vector<bool>.


    • Likelihood-20-05-00
      • Add support for weighted likelihood in newton fitter.
      • Add method to recompute map for a single component in newton fitter.
      • Implement SVD-based step-size calculation for newton fitter.
    • pyLikelihood-02-02-07
      • Fix in Ts() method for issue affecting  EblAtten models.


    • ScienceTools-11-02-00
      • Changes since May 3, 2016, including Likelihood-20-05-00, pyLikelihood-02-02-07.
    • optimizers-04-01-02
      • Added logic in Minuit::Minos to fall back to using numerical derivatives if Minos fails.  Also expose Minuit::doCmd() function.
    • Likelihood-20-06-00
      • Additional functionality to allow using FitScanCache outside of gttscube.  
      • Bug fix for point-source NPred calculation. 
      • Allow gtsrcmaps to use HEALPix input maps.
    • pyLikelihood-02-03-00
      • Added WcsMapLibrary and Snapshot classes to interface
    • Likelihood-20-06-01
      • Small fixes to support HEALPix and minimize memory overhead when calling computeModelMap methods of BinnedLikelihood.
    • latResponse-04-02-02

      • Changes to interpolation scheme in PsfIntegralCache to improve accuracy of npred calculation.

    • ScienceTools-11-03-00
      • Changes since July 6, 2016, i.e., in Matthew's post above.
    • Likelihood-20-07-00
      • Added Drm_Cache class to Drm.h and Drm.cxx to encapulate the information about the measured and true counts spectrum for each source.   Updated BinnedLikelihood class to use the DrmCache instead of keeping two maps of vectors.
      • Added BinnedLikeConfig and PsfIntegConfig classes to BinnedConfig.h and BinnedConfig.cxx to encapsulate the configuration parameters for BinnedLikelihood.   Updated BinnedLikelihood class to use them.
      • Added PSFUtils.h and PSFUtils.cxx files and moved all of the essentially static methods from SourceMap that dealt with computing the source map and doing PSF convolution to these files.   Updated BinnedLikelihood class to use them
    • pyLikelihood-02-03-01
      • Added BinnedConifg and PSFUtils to the pyLikelihood interface.  This has the effect of making all of the PSF source map creation functions that were in SourceMap accessible from the pyLikelihood interface.
    • Likehood-20-08-07
      • Changes to containment radius & diffuse response calculation from Matt Wood.
        • Use PSF containment to define integration bounds for diffuse response calculation.
        • Add containmentRadius method to MeanPSF class
        • These require newly added functionaly it st_facilities and irfs
      • Added Utilities to make sparse source maps.
        • For now these are only used for HEALPix all-sky analysis.
        • Added SparseVector template to implement the sparse mapping.
      • Added WeightMap class to for BinnedLikelihood weight map.
      • Added unit test for HEALPix functionality
      • Finished refactoring of BinnedLikelihood class, interface is unchanged, but internals have been split into a few different classes
    • pyLikelihood-02-03-06
      • Added SparseVector to pyLikelihood interface
      • Allow AnalysisBase.Npred and AnalysisBase.total_obs to return either weighted to unweighted versions (Also for sub-classes
      • Added WeightMap to pyLikelihood interface


    • irfInterface-03-03-00

      • Add angularContainment method to IPsf.
      • Add new vectorized accessor methods to IPsf.
    • st_facilities-00-22-00

      • Add RootFinder utility class that solves for roots of 1-D functions using brent solver from GSL.

    • irfInterface-03-03-01

      • Bug fix for angularContainment to ensure unit normalization of PSF integral.


    • st_facilities-00-22-01
      • Enable RootFinder build only for ScienceTools, since gsl libraries are not available for GlastRelease, et al..
    • Likelihood-20-08-08

      • Increase integration bounds in diffuse response calculation for events that fall outside the FoV (defined as incidence angle > 72.5 deg) to ensure non-zero diffuse response values.


    • ScienceTools-11-04-00
      • Changes since July 29, 2016
    • irfInterface-03-03-02

      • Add vectorized accessor methods for aeff and edisp.
    • latResponse-04-03-00

      • Move header files to expose IRF classes to pyIrfLoader.

      • Add setter/getter functions for retrieving and updating IRF parameters at runtime.

    • pyIrfLoader-00-02-00

      • Expose current IRF implementation classes (Psf3, Edisp3, Aeff) from latResponse.

      • Add methods to cast abstract interface classes to derived classes from latResponse.


    • latResponse-04-03-01

      • Bug fix in test program.
    • Likelihood-20-09-00
      • Added CompositeSource and associated functionality to Likelihood.

      • Implement new padding scheme for diffuse map convolution.

      • Change column names in gttscube output file.

    • pyLikelihood-02-04-00

      • Removed BinnedLikelihood2.

      • Add option to construct Likelihood from BinnedConfig object.

      • Jean's fix to IntegralUpperLimits.
    • Likelihood-20-09-01
      • Bug fix to address slow execution of gtdiffrsp. 


    • ScienceTools-11-05-00
      • Changes since Oct 10, 2016
    • astro-04-00-02
      • Add a leap second to the JulianDate class for 2017-01-01 00:00:01


    • Likelihood-20-09-03

      • Fix bug BinnedCountsCache that was preventing construction of weighted counts cube.

    • Likelihood-20-09-04

      • Fix typo causing a large vector to be passed by value and slowing Likelihood evaluation down dramatically

    • Likelihood-20-09-05

      • Fix bug in PSF corrections for point-source maps.


    • ScienceTools-11-05-01
      • Changes since Nov 4, 2016


    • Likelihood-20-09-06
      • Fix issue with const-ness in PSFUtils.cxx (LK-120)
      • Fix Drm.cxx to properly calculate exposure.   It was failing for pointed observations where all the exposure was in a single cos-theta bin (LK-121)
    • ScienceTools-11-05-02
      • The above fixes in Likelihood-20-09-06
      • pointlike-09-05-01, skymaps-02-17-00  (the most recent tags).
    • Likelihood-20-09-07

      • Bug fixes for behavior of source map cacheing when dealing with fixed sources or source maps set with setSourceMapImage.

    • Likelihood-20-09-08

      • Changes to address const-correctness issues in FSSC builds.

    • st_facilities-00-22-02

      • Bug fix to address failures in unbinned analysis.  Protect against case that xx == x.back() in Util::interpolate.


    • ScienceTools-11-05-03
      • Likelihood-20-09-08, st_facilities-00-22-02, pointlike-09-05-02


    • Likelihood-20-11-00
      • New spectra model PLSuperExpCutoff2 that replaces the cutoff energy with an ExpFactor parameter (see LK-123).  The functional form of this model is 

        Prefactor * (E/Scale)**Index1 * Exp(-ExpFactor*E**Index2)

        Example XML definition:


        <source name="draco" type="PointSource">
           <spectrum type="PLSuperExpCutoff2">
              <parameter error="1.148286565" free="1" max="1000" min="0" name="Prefactor" scale="1e-11" value="10.97675069" />
              <parameter error="0.231238822" free="1" max="5" min="-1.5" name="Index1" scale="-1" value="1.436896327" />
              <parameter free="0" max="1000" min="0.001" name="Scale" scale="1000" value="1" />
              <parameter error="0.01045842648" free="1" max="1" min="-1" name="Expfactor" scale="1.0" value="0.001" />
              <parameter free="0" max="2" min="0" name="Index2" scale="1" value="1" />
          <spatialModel type="SkyDirFunction">
            <parameter free="0" max="360" min="-360" name="RA" scale="1" value="260.05167" />
            <parameter free="0" max="90" min="-90" name="DEC" scale="1" value="57.91528" />
      • Changes to FITS serialization format for sparse HEALPix maps (see HEALPix Formats Page for further details).


  19. Likelihood-20-12-03 Changes and fixes requested by Jean Ballet:

    • Bug fix for weigthed likelihood calculate the BinnedLikelihood.  Added some debugging functionality and unit tests to cover weighted likelihood and energy dispersion.
    • Turn on interpolation for weights map in gtsrcmaps.
    • Fixes for LK-126 and LK-127
    • Fix template data file for healpix_region tests.

    evtbin-03-00-01 Change keyword to define HealpixRegion to HPX_REG to match Matt's conventions

    pyLikelihood-02-04-03 18-Aug-2017  Fixes for LK-126 and LK-127






    • irfs/handoff_response-06-02-00

      • Added support for ingesting merit files from a file list (skipping the prune step).

      • Refactored IRF generation scripts to simplify configuration.

      • Automatically determine number of thrown events from list of input files and jobinfo tuple.

    • irfs/caldb-07-01-00

      • Added functionality in to install IRFs into an existing CALDB directory structure.


    • ScienceTools-11-06-00
      • Changes since April 29, 2017


    • caldb-07-02-00
      • Add mechanism to generate valid selections table.
  20.  Likelihood-20-13-03.  Includes the following change since  Likelihood-20-12-03 on 15-Sept-2017

    •  Likelihood-20-13-03 13-Oct-2017 echarles Fix Drm.cxx updating in the case of weighted fitting
    •  Likelihood-20-13-02 12-Oct-2017 echarles Fix src/Drm.cxx so that first pass of analysis latches correct energy dispersion correction factors
    •  Likelihood-20-13-01 10-Oct-2017 echarles Check srcMap->save_model() before clearing models to speed up ROI optimization and Add option to overwrite weights when reading source maps
    •  Likelihood-20-13-00 05-Oct-2017 echarles Lots of minor changes to support user defined healpix exposure maps and parallel create of source maps
    •  Likelihood-20-12-04 19-Sep-2017 echarles Protect against divide by zero in SourceMap::computeNpredArray()



    • ScienceTools-11-07-00
      • Changes since September 30, 2017