New Features and Important Changes in GammaLib 1.1.0 Author(s) : Juergen Knoedlseder 17 February 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 methods have been added to the public interface: - GObservation::events() (non-const variant) - GFilename::operator std::string() - GFilename::exists() - GFilename::is_fits() - GFilename::remove() - GFilaname::protocol() - GFilename::path() - GFilename::file() - GCTAResponseTable::axis(std::string) - GCTAResponseTable::table(std::string) - GCTAResponseTable::has_axis(std::string) - GCTAResponseTable::has_table(std::string) The following methods have been removed: - GFilename::size() - gammalib::file_exists() - gammalib::file_exists_gzip() - gammalib::is_fits() The following methods have been renamed: - GCTAResponseTable::tables(), was GCTAResponseTable::size() - GCTAResponseTable::axis_bins(), was GCTAResponseTable::axis() - GFilename::is_empty(), was GFilename::empty() - GFilename::url(), was GFilename::filename() The following classes now use GFilename for filenames arguments instead of std::string: - GApplicationPar - GApplicationPars - GArf - GCsv - GEbounds - GEnergies - GEventCube, GCOMEventCube, GCTAEventCube, GLATEventCube, GMWLSpectrum - GEventList, GCTAEventList, GLATEventList - GEvents - GGti - GLog - GModelSpatialDiffuseCube - GModelSpatialDiffuseMap - GModelSpectralFunc - GModels - GNodeArray - GObservations - GPha - GRmf - GSkyMap - GSkyRegions - GTestSuites - GXml - GCTAAeff, GCTAAeff2D, GCTAAeffArf, GCTAAeffPerfTable - GCTABackground, GCTABackground3D, GCTABackgroundPerfTable - GCTACubeBackground, GCTACubeExposure, GCTACubePsf - GCTAEdisp, GCTAEdisp2D, GCTAEdispPerfTable, GCTAEdispRmf - GCTAObservation - GCTAOnOffObservations - GCTAPointing - GCTAPsf, GCTAPsf2D, GCTAPsfKing, GCTAPsfPerfTable, GCTAPsfVector The return value has been changed for the following methods: - GFits::filename() returns now GFilename instead of std::string - GCTAObservation::eventtype() returns now std::string instead of const std::string& 3. Configuration ----------------- None 4. Application module --------------------- The GApplicationPar::filename() methods now take and return GFilename objects instead of std::string objects (#1671). 5. Base module -------------- None 6. FITS I/O Interface --------------------- The GFitsTableCol::insert() method did not work corretly for an empty column since it de-allocated memory without having necessarily memory on disk. This was corrected by allocating now memory after inserting elements into an empty FITS column. GFits now uses the GFilename class to store the FITS filename (fixes #1649). 7. Linear algebra module ------------------------ None 8. Model module --------------- The set_mc_cone() methods of the GModelSpatialDiffuseCube class and the GModelSpatialDiffuseMap class now recompute only the Monte Carlo acceptance cone in case that the cone centre or radius have changed since the last computation. This speeds up the computations (#1673). 9. Numerics module ------------------ None 10. Observation module ---------------------- A non-const GObservation::events() method has been added to allow for the manipulation of events within an observation without the need to create a local copy. The argument of GObservation::deadc(GTime) now defaults to GTime() so that no argument is needed when calling the method. This reflects the fact that the deadtime correction is often computed as an average value over the observation, and does in fact not depend on time (#1670). 11. Optimization module ----------------------- None 12. Sky module -------------- None 13. Support module ------------------ The GFilename class has been extended and some methods have been renamed. The full filename including and FITS extension is now returned by an implicit type conversion operator std::string(). The filename() method has been renamed to url(), and the methods exists(), is_fits() and remove() have been added to replace functions of the GTools module that were used for this purpose in the past. Furthermore, the method protocol() returns the access protocol (e.g. http, ftp, file) of the file name, the method path() returns the path of th file name, and the method file() returns the file name without the path. 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 ----------------- The response table instrument response functions now rely on the FITS table column names to determine the information instead of hard-wired column indices (#1656). Event fetching and disposal has been implemented in the GCTAEventList class by additing the fetch() and dispose() methods. Now, events are only loaded upon request and can be dispatched after user to save memory. The event fetching and disposal logic has been removed from GCTAObservation (#1648). Add GCTAEventList::remove() method to remove events from an event list. The GCTAEventList::append() method now also appends empty elements to the additional columns so that all event list columns have finally the same length. The GCTAEdisp2D::compute_ebounds_obs() and GCTAEdisp2::compute_ebounds_src() methods have been corrected so that they return the energy intervals covered by valid matrix elements. With the code before there were problems with not setting correctly the maximum energies of the intervals (#1662). The extension name for the GTI HDU is now determined from the data sub-space keyword provided in the events FITS file header. This allows to have multiple GTIs (and also event lists) in a single FITS file. We do however require that the event and GTI extension reside in the same FITS file. The name of the GTI extension can be recovered using the GCTAEventList::gtiname() method. This satisfies the feature request #1598. A second variant of a write() method has been added to GCTAEventList that allows specifying the events and Good Time Intervals FITS extension names. The standard write() method will call this new write() method using the events extension name extracted from the file name and the GTI extension name set by the m_gti_extname member. The GCTAObservation::write() method was also extended and now has two optional arguments that allow specifying the events and Good Time Interval FITS extension names. These are simply forwared to the new GCTAEventList::write(). The GCTAObservation::save() method has now a special logic that decodes any optionally specified extension in the format [EVENTS;GTI] into an events and a Good Time Intervals extension name. These changes satisfy the feature request #1598. 21. COMPTEL interface --------------------- None