NEWS 5.4 KB
New Features and Important Changes in GammaLib 2.1.0

12 December 2023


1. Introduction
---------------
This document briefly summarises module by module the most important changes
made since the last release of GammaLib.


2. Public interface modifications
---------------------------------
The following classes have been added:
- GCOMDris
- GCOMHkd
- GCOMHkds

The following classes have been removed:
- none

The following classes have been renamed:
- none

The following methods have been added:
- GNdarray::index(int&)
- GIntegral::adaptive_gauss_kronrod()
- GSkyMap::operator==()
- GSkyMap::operator!=()
- GModelSpectralTable::nspectra()
- GModelSpectralTable::scale_energy()
- GModelSpectralTable::has_energy_scale()
- GResponseVectorCache::load()
- GResponseVectorCache::save()
- GResponseVectorCache::read()
- GOptimizerLM::status_string()
- GCOMObservation(GCOMDri&, GCOMDri&, GCOMDri&, GCOMDri&, GCOMDri&)
- GCOMObservation::npred()
- GCOMObservation::drw()
- GCOMObservation::drwname()
- GCOMObservation::hkds()
- GCOMObservation::cachename()
- GCOMResponse::load_cache()
- GCOMResponse::save_cache()

The following methods have been removed:
- none

The following methods have been renamed:
- none

The arguments for the following methods have been changed:
- GApplication::log_value() methods now have optional unit parameters
- GCOMObservation() filename constructor now takes 5 filenames on
  input; was four filenames before
- GCOMObservation::load() method now takes 5 filenames on input; was 
  four filenames before
- GCOMObservation::load() method and GCOMObservation::GCOMObservation()
  constructor now takes also a vector for housekeeping file namess on
  input

The return value of the following methods has been changed:
- none


3. Configuration
-----------------
The distutils module was replace by the sysconfig and setuptools modules
in setup.py, with a fallback to distutils in case that either the
sysconfig or setuptools modules are not available. Furthermore, the
production of an egg file with the setuptools was prevented (#4223).


4. Documentation
----------------
None


5. Application module
---------------------
Add optional "unit" parameter was added to the GApplication::log_value() 
methods, and if this parameter is not a zero length string a unit will
be appended to the output (#4202).


6. Base module
--------------
None


7. FITS I/O Interface
---------------------
None


8. Linear algebra module
------------------------
None


9. Model module
---------------
The flux computation in the GModelSpatial::flux method was generalised so that
it now can handle all types of sky regions. Before the method only worked for
circular sky regions (#4467).

The solid angle computation in GSkyRegionRectangle was fixed so that it correctly
returns the solid angle of a rectangle on the sky. Before the solid angle was
computed for a cartesian rectangle (#4461).

Fixed a segfault problem when saving an empty instance of GModelSpectralTable
(#4198).

Added energy scaling of model that may be useful for table models that scale
with an energy parameter (#4069).

Added GModelSpectralTable::nspectra() method to return number of spectra in a
table model (#4069).


10. Numerics module
-------------------
Added GIntegral::adaptive_gauss_kronrod() method to adaptively compute the 
Gauss-Lobatto-Kronrod integral of a kernel function (#4204).

Added GNdarray::index(int&) method to return the index vector from an array element
index (#4069).


11. Observation module
----------------------
Added GResponseVectorCache::load(), save() and read() methods to store and load
response vector cache values using a FITS file (#4159).


12. Optimization module
-----------------------
None


13. Sky module
--------------
Added comparison operators for sky map. Sky maps are considered identical if their
projections are identical, their coordinate definition and their number if pixels.
The actual content of the map is not relevant (#4209).


14. Support module
------------------
None


15. XML module
--------------
None 


16. VO module
-------------
None


17. Xspec module
----------------
None


18. Test module
---------------
None


19. Multi-wavelength interface
------------------------------
None


20. Fermi-LAT interface
-----------------------
None


21. CTA interface
-----------------
None


22. COMPTEL interface
---------------------
Added support to GCOMObservation class for reading and writing of housekeeping
data (#4209).

Added GCOMHkd and GCOMHkds classes for the handling of housekeeping data
(#4209).

Added GCOMDris container class. This class specifically provides the
GCOMDris::compute_drws() that allows computation of weighting cubes for
all energy bins (#4209).

Added support for weighting cubes in GCOMObservation class. The filename
constructor takes five filenames, with the third filename being in the DRW
filename. A GCOMObservation::drw() method was added to retrieve the DRW,
GCOMObservation::drwname() methods were added to set and retrieve the DRW
filename (#4209).

Added GCOMObservation::cachename() method to set and retrieve the name of a
response cache file. If set, the response cache file will automatically
written or loaded when handling XML files. In addition, GCOMResponse methods
load_cache() and save_cache() were added to manage the loading and saving
of the response cache (#4159).

Added GCOMObservation::npred() method that computes number of events in a model
component.


23. INTEGRAL/SPI interface
--------------------------
None