-
I added a blank line to enhance visibility.
-
The template files have been created by copying the initial SPI interface and by replacing "SPI" by "XXX".
-
All files have been screened to clean up the documentation so that the actual files may serve as template for further instrument implementations.
-
All files needed for SPI interface implementation have been created by copying the existing COMPTEL interface and by making the relevant modifications. TODOs have been added at the relevant sections of the code to signal the code that needs to be implemented. A dummy unit test has been created by cloning the relevant C++ and Python tests from the COMPTEL interface. The code compiles and all unit tests pass successfully. This essentially closes action #744.
-
The read() and write() methods now handle the reading and writing of instrument specific model scale factors. The spatial() method uses the scale factors to scale the IRF accordingly, if required.
-
A vector of GModelPar objects has been added to the GModel class that can hold instrument specific model scaling factors. The name of each parameter specifies the instrument, which will be converted automatically in upper case. The scale factors can be set and accessed using the scale() methods. If the scale method is called for an instrument for which no instrument specific scale factor has been defined, unity is returned (hence the model will not be scaled). The class now provides the protected methods read_scales() and write_scales() for reading and writing of scale factors from and to a XML file. The scale factors are written to an optional <scaling> tag, which contains a list of tags of type <instrument ... />. These methods are used by the GModelSky class for reading and writing the scale factors.
-
The model parameter constructor allows allocating of a GModelPar object using a parameter name, a parameter value and an optional parameter scaling factor. This allows for one-line allocation of a GModelPar object.
-
Also added a clarifying comment to GModelRadialDisk::update(). No code change.
-
Fixes Bug #694.
-
As result of a copy-paste error, the normalization minimum has been set to 0.1 while the minimum value of the energy cut-off has not been set.
-
Include GCOMInstDir.hpp instead of GCTAInstDir.hpp.
-
Include GCOMResponse.hpp instead of GCTAResponse.hpp.
-
Add method to access a random number generators seed value.
-
The file was corrected so that no more warnings occur during Doxygen documentation generation.
-
The Python interface has been adapted according to the C++ interface.
-
Since we have to query the parameter to determine it's status, the isvalid(), isundefined() and isnotanumber() methods now call query(). This implies that the methods had to be passed non-const, as query() modifies the members of the parameter.
-
The parameter validity is checked before returning a value. This ensures that invalid values are not inadvertedly passed to the executable. The isvalid() method can be used to ensure that a parameter is valid before accessing it.
-
It is recommended to pass all arguments to exceptions by reference to avoid memory allocation during exception throwing.
-
The indent parameter allows to signal whether a line is indented. The total length of the parameter name is reduced by the amount of indentation.
-
Makes use of the GTimeReference class to convert the start and stop times into the correct reference.
-
The exception problem has been solved by adding a specific @GExceptionHandler@ catch to the Python interface exception handler. We thus can put back the exception tests.
-
There were some problems on Mac OS X 10.7 with catching of GammaLib exceptions (see bugs #681, #680, #626). These could be solved by adding a generic catch of @GExceptionHandler@ to the Python interface exception handler. Some of the old specific exceptions have also been removed.
-
Some header files were not distributed, and some header files were not included in the GammaLib.hpp header.
-
See Bug #626.