-
…or the observation Python module. The classname() method returns in a human readable format the class name. This method is needed for full automatic typecasting in Python. Full automatic typecasting has for the moment been implemented for the observation module.
-
Automatic type casting was implemented in the GObservations.i interface using the runtime type casting information that is maintained by the SWIG interface. The function relies on a newly introduced type() method in GObservation that provides as a string the class type. The former GCTAObservation type casting constructor has been removed as it now should be obsolete.
-
The CTA response was refactored. GCTAResponse was renamed GCTAResponseIrf, and GCTAResponse became an abstract base class for all possible CTA response functions. GCTAResponseIrf derives from GCTAResponse. Also GCTAResponseCube derives from GCTAResponse. To make this work, the GObservation::response() method now returns a pointer instead of a reference. The interface definition is such that the pointer never can be NULL. The code has been adapted to comply to this new interface. Upon reading an XML file, GCTAObservation now determines the appropriate reponse type and calls its reader. If no response is specified in the XML file, GCTAResponseIrf will be used by default.
-
Adapt the code to the usage of GCaldb for response access.
-
This change was prompted by the addition of the ctobssim option to apply energy dispersion. Even if an instrument has an energy dispersion, it is useful to be able to apply it or not. So the meaning now is roughly this: use_edisp = (has_edisp && apply_edisp) although the apply_edisp flag has so far been only added to GCTAResponse, use_edisp = False. GResponse::has_tdisp() was also renamed to GResponse::use_tdisp() for consistency.
-
The coding and design conventions (CDC) document was also updated.
-
The GCOMPointing class is now obsolete as no GPointing class is required anymore. The pointing can now simply be stored in a GSkyDir object.
-
The abstract pointing class has been removed as so far no abstract pointing interface is needed.
-
GEvents GEventList The clobber argument of the save() method is now passed as const reference. GEventCube The clobber argument of the save() method and the axis argument of the naxis() method are now passed as const references.
-
The isconstant() method signals if a model is temporally constant or not. This information can be used at an abstract level to perform yes or no a temporal integration of the model.
-
Include GCOMInstDir.hpp instead of GCTAInstDir.hpp.
-
Include GCOMResponse.hpp instead of GCTAResponse.hpp.
-
The new method names enhance compatbility with the GPhoton interface and increases the readability.
-
Instead of using the observed and true attributes of the event and photon as arguments, the event and photon is now passed directly.
-
The post-processing of .py files led to a modification of the .py files during the install process. I thus removed the post-processing step and added explicitely all classes and casts that should be imported. This is done by scanning all models for class and cast definitions, and by adding all names to the __all__ list.
-
The Python wrapper files are modified by the script each time it is run. This changed the owners of these files during installation to root, making the ineditable afterwards. I changed the logic so that the wrapper file modifications are only done during the build step. No modifications are done during the install step, hence no file ownerships are changed anymore.
-
From the semantics, the isin() method name was wrong (as one would write ebounds.isin(energy)). Renaming the method to contains() corrects the semantics (ebounds.contains(energy)).
-
All registry classes are now based on the GRegistry interface. The ostream and GLog friend functions have been removed from the classes as they are now implement on the GRegistry level. The source code was checked to comply to the actual coding standards. The Doxygen documentation of the source code was improved.
-
The GRegistry interface class is the base class for all GammaLib registries. It requires the following methods to be implemented by each registry: size(), name(), and print(). Output ostream and GLog operators are implement on the GRegistry level, so that no output friends are required on the class level.
-
I went over all .hpp to make sure that the GBase.hpp file is properly included, and no supoerfluous other includes remain. I also checked that no ostream and GLog friends are no longer available. I went over all .i files to make sure that classes are derived from GBase.
-
All classes now derive from GBase. ostream and GLog friends are removed since they are now implement at the GBase level.
-
For proper usage of the GBase class within Python, the base module is required.
-
All classes our now derived from GBase. For this we had to define and to implement the clear() method for all classes. ostream and GLog friends have also been removed, as they are no implemented at the GBase level.
-
The print name is reserved in Python and should therefore be removed. The class extensions are not inherited in derived classes, so there is no point to have them here.