New Features and Important Changes in GammaLib 1.2.0 9 August 2016 1. Introduction --------------- This document briefly summarizes module by module the most important changes made since the last release of GammaLib. 2. Public interface modifications --------------------------------- The following classes have been added: - GModelSpectralExpInvPlaw - GModelSpectralPlawEnergyFlux The following classes have been removed: - ... The following classes have been renamed: - GModelSpectralPlawPhotonFlux, was GModelSpectralPlaw2 The following methods have been added: - GApplication::log_string() - GApplication::log_value() - GApplication::log_header1() - GApplication::log_header2() - GApplication::log_header3() - GApplication::operator[](const int& index) - GApplication::pars() - GApplicationPar::current_value() - GLog::is_open() - GLog::is_empty() - GLog::written_size() The following methods have been removed: - ... The following methods have been renamed: - GModelSpectralPlawPhotonFlux::flux(), was GModelSpectralPlaw2::integral() - GLog::buffer_size(), was GLog::max_size() The parameters for the following methods have been changed: - GApplication::log_parameters() now has a mandatory GChatter argument The return value of the following methods has been changed: - GSkyMap::write() now returns a pointer to GFitsHDU instead of void 3. Configuration ----------------- The Python wrappers were always removed when typing "make clean", even if they had been shipped with the code. Now, the Python wrappers are only removed in a "make clean" if they have been built (#1826). 4. Application module --------------------- The GApplication::log_parameters() method now takes a mandatory GChatter argument to enable displaying of parameters only above a given chattiness level. This avoids a log-level check in the client code. For the same purpose, the GApplication methods log_string(), log_value(), log_header1(), log_header2(), and log_header3() have been introduced. There are three variants of log_value() for strings, integers and double precision values (#1828). The application name and version and now conserved in a GApplication::clear() method call and the application is properly initialised like in the call of a constructor (#1835). The GLog::copy_members() method simply copied the file pointer, hence after a copy of a log instance there were two instances holding the same pointer to the file, and as soon as one instance closes the log file the file pointer in the second instance became invalid. This has been fixed by duplicating the file descriptor and opening the log file in the copied instance using the duplicated descriptor. This solves the problems (#1823). A GLog::is_open() method has been added to assess whether a log file is actually opened. The GLog::is_empty() method has been added to assess whether a log file is actually empty (#1837). The GLog::size() method now returns the actual size of the log file, including the number of characters on disk. The GLog::max_size() method has been renamed to GLog::buffer_size since this is more explicit (#1837). GApplication::pars() methods have been added to allow to retrieve or to set all application parameters. The GApplicationPar::current_value() method has been added to retrieve the current parameter value without querying for the parameter (#1838). Operators have been added to GApplication that allow the access of application parameters by index (#1838). 5. Base module -------------- None 6. FITS I/O Interface --------------------- None 7. Linear algebra module ------------------------ None 8. Model module --------------- The GModelSpectralPlaw2 class has been renamed to GModelSpectralPlawPhotonFlux and the integral() methods were renamed to flux(). A new class GModelSpectralPlawEnergyFlux has been added that handles integral energy fluxes as opposed to GModelSpectralPlawPhotonFlux that handles integral photon fluxes. Unit tests have been added for the new class (#1790). The GModelSpectralExpInvPlaw class has been added that uses a cut-off parameter instead of a cut-off energy for the exponentially cut-off power law. The cut-off parameter is the inverse of the cut-off energy (#1800). 9. Numerics module ------------------ None 10. Observation module ---------------------- None 11. Optimization module ----------------------- None 12. Sky module -------------- The GSkyMap::write() method now returns a pointer to the written GFitsHDU object. In case that no sky map is written, for example because none has been defined so far, the method returns NONE. The GSkyMap::publish() method will detect the NONE value and will do nothing if no sky map exists (#1835). 13. Support module ------------------ None 14. XML module -------------- None 15. VO module ------------- None 16. Xspec module ---------------- None 17. Test module --------------- None 18. Multi-wavelength interface ------------------------------ None 19. Fermi-LAT interface ---------------------- None 20. CTA interface ----------------- None 21. COMPTEL interface --------------------- None