GammaLib  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Todo List
Member cta_irf_diffuse_kern_phi::eval (const double &phi)

Optimize computation of sky direction in native coordinates

Implement azimuth angle computation of true photon in camera

Replace (theta,phi) by (delta,alpha)

Member cta_nroi_diffuse_kern_phi::eval (const double &phi)
Re-consider formula for possible simplification (dumb matrix multiplication is definitely not the fastest way to do that computation).
Member cta_nroi_elliptical_kern_omega::eval (const double &omega)

Npred computation goes over sky coordinates. This can maybe be optimized to reduce the number of coordinate transformations.

Check whether the Npred omega argument is the right one.

Member cta_nroi_radial_kern_omega::eval (const double &omega)
Re-consider formula for possible simplification (dumb matrix multiplication is definitely not the fastest way to do that computation).
Member GApplicationPar::check_value_filename (const std::string &value) const
NONE is equivalent to an empty string.
Member GCaldb::filename (const std::string &detector, const std::string &filter, const std::string &codename, const std::string &date, const std::string &time, const std::string &expr)

data should support "now" and probably be implemented using < condition.

time should support "now" and probably be implemented using < condition.

expr should support arbitrary Boolean expressions.

Member GCOMEventBin::error (void) const
The choice of delta has been made somewhat arbitrary, mainly because the optimizer routines filter error^2 below 1e-100.
Member GCOMEventList::write (GFits &file) const
Implement method.
Member GCOMIaq::GCOMIaq (const double &phigeo_max, const double &phigeo_bin_size, const double &phibar_max, const double &phibar_bin_size)
Test input argument validity.
Member GCOMIaq::set (const GEnergy &energy, const GEbounds &ebounds)
Implement geometrical smearing.
Member GCOMIaq::set (const GModelSpectral &spectrum, const GEbounds &ebounds)
Implement geometrical smearing.
Member GCOMModelDRBPhibarBins::mc (const GObservation &obs, GRan &ran) const
Implement method.
Member GCOMModelDRBPhibarBins::npred (const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Implement method.
Member GCOMModelDRBPhibarNodes::mc (const GObservation &obs, GRan &ran) const
Implement method.
Member GCOMModelDRBPhibarNodes::npred (const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Implement method.
Member GCOMModelDRM::mc (const GObservation &obs, GRan &ran) const
Implement method.
Member GCOMModelDRM::npred (const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Implement method.
Member GCOMObservation::write_attributes (GFitsHDU *hdu) const
Implement method.
Member GCOMRoi::print (const GChatter &chatter=NORMAL) const
Implement method.
Class GCOMTim
Add class description.
Member GCTAAeff2D::read (const GFitsTable &table)
Analyse the unit of the parameter axis to determine the conversion factor for the effective areas. For the moment they are hard wired.
Member GCTAAeffArf::read (const GFitsTable &table)
Assign appropriate theta angle for PSF. So far we use onaxis. For appropriate theta angle assignment, we would need this information in the response header.
Member GCTABackground2D::write (GFitsBinTable &table) const
Add necessary keywords.
Member GCTABackground3D::write (GFitsBinTable &table) const
Add necessary keywords.
Member GCTABackgroundPerfTable::init_mc_cache (void) const

Verify assumption made about the solid angles of the response table elements.

Add optional sampling on a finer spatial grid.

Member GCTACubeBackground::update (const double &logE) const
Write down formula
Member GCTACubeExposure::print (const GChatter &chatter=NORMAL) const
Add content
Member GCTACubeExposure::update (const double &logE) const
Write down formula
Member GCTACubePsf::set_delta_axis (void)
Check that none of the axis boundaries is non-positive.
Member GCTACubePsf::set_eng_axis (void)
Check that none of the axis boundaries is non-positive.
Member GCTAEdisp2D::write (GFitsBinTable &table) const
Add keywords.
Member GCTAEventBin::error (void) const
The choice of delta has been made somewhat arbitrary, mainly because the optimizer routines filter error^2 below 1e-100.
Member GCTAEventCube::set_times (void)
Could add a more sophisticated mean event time computation that weights by the length of the GTIs, yet so far we do not really use the mean event time, hence there is no rush to implement this.
Member GCTAModelBackground::eval (const GEvent &event, const GObservation &obs, const bool &gradients=false) const

Add bookkeeping of last value and evaluate only if argument changed

Verify that CTA instrument direction pointer is valid, or better, add an offset method to GCTAPointing. Ideally, we should precompute all offset angles (for an event cube this may only be done easily if the pointing has been fixed; otherwise we need a structure similar to the Fermi/LAT livetime cube that provides the effective sky exposure as function of offset angle).

Member GCTAModelBackground::mc (const GObservation &obs, GRan &ran) const
Handle special case of cube spatial model
Member GCTAModelIrfBackground::npred_roi_kern_phi::eval (const double &phi)
Verify correct orientation of detx and dety with respect to phi
Member GCTAModelRadialAcceptance::copy_members (const GCTAModelRadialAcceptance &model)
Document method.
Member GCTAModelRadialAcceptance::eval (const GEvent &event, const GObservation &obs, const bool &gradients=false) const

Add bookkeeping of last value and evaluate only if argument changed

Verify that CTA instrument direction pointer is valid, or better, add an offset method to GCTAPointing. Ideally, we should precompute all offset angles (for an event cube this may only be done easily if the pointing has been fixed; otherwise we need a structure similar to the Fermi/LAT livetime cube that provides the effective sky exposure as function of offset angle).

Member GCTAModelRadialAcceptance::free_members (void)
Document method.
Member GCTAModelRadialAcceptance::init_members (void)
Document method.
Member GCTAModelRadialAcceptance::write (GXmlElement &xml) const
Document method.
Member GCTAModelRadialGauss::mc (GRan &ran) const
Method can be optimised by using a random deviate of sin instead of the uniform random deviate which leads to many unnecessary rejections.
Member GCTAModelRadialPolynom::mc (GRan &ran) const
This method actually assumes that the polynom is always < 1, which may not be necessarily the case. Ideally, the method should determine the maximum of the polynomial to throw events. This is a severe limitation and should rapidly be corrected.
Member GCTAModelRadialPolynom::read (const GXmlElement &xml)
Implement a test of the coefficient boundaries.
Member GCTAModelRadialProfile::mc (GRan &ran) const
Method can be optimised by using a random deviate of sin instead of the uniform random deviate which leads to many unnecessary rejections.
Member GCTAModelSpatial::npred_roi_kern_phi::eval (const double &phi)
Verify correct orientation of detx and dety with respect to phi
Member GCTAObservation::read_attributes (const GFitsHDU &hdu)
The actual reader is a minimal reader to accomodate as many different datasets as possible. Once the CTA data format is fixed the reader should have more mandatory attributes.
Member GCTAOnOffObservation::compute_alpha (const GCTAObservation &obs_on, const GCTAObservation &obs_off, const GSkyRegions &on, const GSkyRegions &off, const GModels &models, const bool &use_model_bkg)
Compute alpha by integrating the background rate over the energy bins and not at the bin centre.
Member GCTAOnOffObservation::compute_bgd (const GCTAObservation &obs, const GSkyRegions &off, const GModels &models, const bool &use_model_bkg)
Integrate background rate over energy bin instead of computing the rate at the energy bin centre.
Class GCTAPointing
No transformation from sky coordinates to geographic coordinates has so far been implemented. The azimuth and zenith angle are not meaningful.
Member GCTAPsf2D::write (GFitsBinTable &table) const
Add necessary keywords.
Member GCTAPsfKing::write (GFitsBinTable &table) const
Add keywords.
Member GCTAPsfTable::write (GFitsBinTable &table) const
Add keywords.
Member GCTAResponseCube::irf_elliptical (const GEvent &event, const GSource &source, const GObservation &obs) const
Correct assumptions in exposure computation, PSF computation and energy dispersion computation.
Member GCTAResponseCube::irf_radial (const GEvent &event, const GSource &source, const GObservation &obs) const
Correct assumptions in exposure computation, PSF computation and energy dispersion computation.
Member GCTAResponseCube::is_valid (void) const
: To be implemented (check if GCTACubeExposure and GCTACubePsf is loaded)
Member GCTAResponseCube::nroi (const GModelSky &model, const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Implement method (is maybe not really needed)
Member GCTAResponseIrf::irf (const GEvent &event, const GPhoton &photon, const GObservation &obs) const
Set polar angle phi of photon in camera system
Member GCTAResponseIrf::mc (const double &area, const GPhoton &photon, const GObservation &obs, GRan &ran) const

Set polar angle phi of photon in camera system

Implement energy dispersion

Member GCTAResponseIrf::npsf (const GSkyDir &srcDir, const double &srcLogEng, const GTime &srcTime, const GCTAPointing &pnt, const GCTARoi &roi) const

Enhance romberg() integration method for small integration regions (see comment about kluge below)

Implement phi dependence in camera system

Member GCTAResponseTable::axis_log10 (const int &axis)
Check that none of the axis boundaries is non-positive.
Member GCTAResponseTable::operator() (const int &index, const double &arg1, const double &arg2, const double &arg3) const
Write down formula.
Member GCTAResponseTable::operator() (const double &arg) const
Write down formula.
Member GCTAResponseTable::operator() (const double &arg1, const double &arg2) const
Write down formula.
Member GCTAResponseTable::operator() (const double &arg1, const double &arg2, const double &arg3) const
Write down formula.
Member GCTAResponseTable::operator() (const int &table, const double &arg) const
Write down formula.
Member GCTAResponseTable::operator() (const int &table, const double &arg1, const double &arg2) const
Write down formula.
Member GCTAResponseTable::read_colnames (const GFitsTable &hdu)
Implement exceptions for invalid HDU format
Member GCTAResponseTable::update (const double &arg) const
Write down formula
Member GCTAResponseTable::update (const double &arg1, const double &arg2) const
Write down formula
Member GCTAResponseTable::update (const double &arg1, const double &arg2, const double &arg3) const
Write down formula
Class GDaemon
Add class description.
Member GEbounds::contains (const GEnergy &emin, const GEnergy &emax) const
This method is so far only correct for contiguous energy boundaries.
Member GEbounds::write (GFits &file, const std::string &extname=gammalib::extname_ebounds, const std::string &unit="keV") const
Write header keywords.
Member GFits::extend (const GFits &fits)
Handle HDU update in FITS file.
Member GFits::remove (const int &extno)
Handle HDU update in FITS file.
Class GFitsHDU
Implement GFitsHDU* select(const std::string& expr) that applies to a table HDU for row selection.
Member GFitsHDU::save (void)
Put the m_header.save(FPTR(m_fitsfile)) call in the data_save() methods
Member GFitsHeaderCard::set_dtype (const std::string &value)
Implement syntax checking for integer or float values.
Member GFitsImage::data_close (void)
Not sure that this is efficient at this level since the pixel array will not be deallocated!!!
Member GFitsImage::nulval (const void *value)
To correctly reflect the nul value in the data, the image should be reloaded. However, the image may have been changed, so in principle saving is needed. However, we may not want to store the image, hence saving is also not desired. We thus have to develop a method to update the image information for a new nul value in place ...
Member GFitsImage::print (const GChatter &chatter=NORMAL) const
Format and cfitsio information is mainly for debugging. This could be vanish in a more stable version of the code, or it could be compiled in conditionally using a debug option.
Member GFitsTable::data_save (void)
This method should also update the header. Even easier, this method should save the header into the file using the m_header.save() method. Only this assures coherence between the files !!!! Once this has been implemented (also in the GFitsImage method) we should delete the m_header.save() call in GFitsHDU::save.
Member GFitsTableBitCol::nulval (const unsigned char *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableBitCol::resize_data (const int &index, const int &number)
Needs to be implemented
Class GFitsTableBoolCol
Each Bit is actually stored in one Byte. To save memory a more compact storage scheme should be implemented.
Member GFitsTableBoolCol::nulval (const bool *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableByteCol::nulval (const unsigned char *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableCDoubleCol::nulval (const GFits::cdouble *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableCFloatCol::nulval (const GFits::cfloat *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableCol::dim (const std::vector< int > &dim)
Implement dimension check.
Member GFitsTableCol::print (const GChatter &chatter=NORMAL) const
Format and cfitsio information is mainly for debugging. This could vanish in a more stable version of the code, or it could be compiled-in conditionally using a debug option. Alternatively, a higher chatter level may be required to see this information.
Member GFitsTableDoubleCol::nulval (const double *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableFloatCol::nulval (const float *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableLongCol::nulval (const long *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableLongLongCol::nulval (const long long *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableShortCol::nulval (const short *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableStringCol::nulval (const std::string &value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableULongCol::nulval (const unsigned long *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GFitsTableUShortCol::nulval (const unsigned short *value)
To correctly reflect the nul value in the data, the column should be reloaded. However, the column may have been changed, so in principle saving is needed. However, we may not want to store the data, hence saving is also not desired. We thus have to develop a method to update the column information for a new nul value in place ...
Member GIntegral::polint (double *xa, double *ya, int n, double x, double *dy)

Implement exceptions instead of screen dump.

Use std::vector for xa and ya and start at 0

Member GLATAeff::efficiency_factor1 (const GEnergy &srcEng) const
Implement cache to save computation time if called with same energy value (happens for binned analysis for example)
Member GLATAeff::efficiency_factor2 (const GEnergy &srcEng) const
Implement cache to save computation time if called with same energy value (happens for binned analysis for example)
Member GLATAeff::operator() (const double &logE, const double &ctheta, const double &phi)
Phi-dependence not yet implemented.
Member GLATAeff::read (const GFits &file, const std::string &evtype)
Implement reading of Phi-dependence information.
Member GLATAeff::write (GFits &file) const
Write also phi and rate HDUs if they exist.
Class GLATEdisp
Implement support for older response functions?
Member GLATEdisp::read (const GFits &file, const std::string &evtype)
Implement reading of scaling parameters
Member GLATEdisp::read_edisp (const GFitsTable &table)
Implement reading of energy dispersion table
Class GLATEventBin
Implement stand alone version of event bin.
Member GLATEventBin::error (void) const
The choice of delta has been made somewhat arbitrary, mainly because the optimizer routines filter error^2 below 1e-100.
Member GLATEventCube::read_ebds (const GFitsTable &hdu)
Energy bounds read method should take const GFitsTable* as argument
Member GLATEventCube::set_times (void)
Could add a more sophisticated mean event time computation that weights by the length of the GTIs, yet so far we do not really use the mean event time, hence there is no rush to implement this.
Member GLATEventList::read_ds_keys (const GFitsHDU &hdu)

Declared header card const in to GFitsHDU.

Add check key method to GFitsHDU to avoid unneccesary try/catch blocks.

Member GLATEventList::save (const GFilename &filename, const bool &clobber=false) const
To be implemented.
Member GLATEventList::write (GFits &file) const
To be implemented.
Member GLATLtCube::read (const GFits &file)
Reading of cos theta boundaries not yet implemented. This is not critical since they are not really needed. We just need them once we want to implement also saving.
Member GLATLtCube::save (const GFilename &filename, const bool &clobber=false) const
Not yet implemented.
Member GLATMeanPsf::set_map_corrections (const GLATObservation &obs)
We can also implement a method for event atoms, yet it is not clear whether we really need this.
Member GLATObservation::load_binned (const std::string &cntmap_name, const std::string &expmap_name, const std::string &ltcube_name)
So far nothing is done with the expmap file. Approriate loading needs to be implemented.
Member GLATObservation::load_unbinned (const std::string &ft1name, const std::string &ft2name, const std::string &ltcube_name)
So far nothing is done with the ft2 file and the ltcube file. Loading of the relevant information needs to be implemented.
Member GLATObservation::write (GXmlElement &xml) const
We should create a special exception that informs that there is neither a valid LAT event list nor a valid LAT counts map in this observations.
Class GLATPsf
Implement Phi dependence
Member GLATPsf::has_phi (void) const
Implement phi dependence
Member GLATPsf::read (const GFits &file, const std::string &evtype)
Implement PSF version 2.
Member GLATPsf::write (GFits &file) const
Implement PSF versions 2 and 3.
Member GLATPsfBase::write_scale (GFits &file) const
Check if PSF_SCALING_PARAMS exists already in FITS file
Member GLATPsfV1::base_int (const double &u, const double &gamma)
Verify that 1+u/gamma is not negative
Member GLATPsfV1::psf (const double &offset, const double &logE, const double &ctheta)
Some optimisation could be done as in many cases gcore==gtail, and for this special case ntail=ncore, hence things become a little simpler.
Member GLATPsfV1::write (GFits &file) const
Check if a RPSF extension exists already in FITS file
Member GLATPsfV3::base_int (const double &u, const double &gamma)
Verify that 1+u/gamma is not negative
Member GLATPsfV3::integrate_psf (const double &energy, const int &index)
Implement gcore and gtail checking
Member GLATPsfV3::write (GFits &file) const
Check if a RPSF extension exists already in FITS file
Member GLATResponse::irf (const GEvent &event, const GPhoton &photon, const GObservation &obs) const
The IRF value is not divided by ontime of the event, but it is already time integrated.
Member GLATResponse::irf_spatial_atom (const GLATEventAtom &event, const GSource &source, const GObservation &obs) const
Not yet implemented.
Member GLATResponse::irf_spatial_bin (const GLATEventBin &event, const GSource &source, const GObservation &obs) const

Extract event cube from observation. We do not need the cube pointer in the event anymore.

Implement more efficient method for response search (name search is not very rapid).

Instead of calling "offset = event.dir().dist_deg(srcDir)" we can precompute and store for each PSF the offsets. This should save quite some time since the distance computation is time consuming.

Member GLATResponse::save (const std::string &rspname) const
Not yet implemented.
Member GLATResponseTable::energy (const int &ie) const
Store also linear energies to avoid conversion.
Member GLog::operator() (const char *msgFormat,...)
A static buffer of length 8192 is allocated. Although this is likely sufficient for any normal application there is nothing that prevents in principle the overflow of the buffer. A more sophisticated scheme should be implemented.
Member GLog::operator<< (std::ostream &(*fn)(std::ostream &))
This is a quick an dirty implementation of the std::endl operator. A clean GLog::endl operator should be implemented instead, yet this needs some deeper understanding of our the
Member GMatrix::invert (void) const
Needs to be implemented.
Member GMatrix::solve (const GVector &vector) const
Needs to be implemented.
Member GMatrixSparse::insert_row (const int &row, const GVector &vector, const bool &add)
Remove elements that are empty after addition
Member GMatrixSparse::invert (void) const
Specify in documentation for which kind of matrix the method works.
Member GMatrixSparse::operator*= (const GMatrixSparse &matrix)
Implement native sparse code
Member GMatrixSparse::operator+= (const GMatrixSparse &matrix)
Implement native sparse code
Member GMatrixSparse::operator-= (const GMatrixSparse &matrix)
Implement native sparse code
Member GMatrixSparse::operator== (const GMatrixSparse &matrix) const
Implement native sparse code
Member GMatrixSparse::solve (const GVector &vector) const
Specify in documentation for which kind of matrix the method works.
Member GMatrixSymmetric::add_to_row (const int &row, const GVector &vector)
To be implemented.
Member GMatrixSymmetric::alloc_members (const int &rows, const int &columns)
Verify if the index array m_inx should be initialized.
Member GMatrixSymmetric::invert (void) const
Specify in documentation for which kind of matrix the method works.
Member GMatrixSymmetric::row (const int &row, const GVector &vector)
To be implemented.
Member GMatrixSymmetric::solve (const GVector &vector) const
Specify in documentation for which kind of matrix the method works.
Member GModels::read (const GXml &xml)
Sources names are not verified so far for uniqueness. This would be required to achieve an unambiguous update of parameters in an already existing XML file when using the write method.
Member GModelSky::flux (const GEnergy &emin, const GEnergy &emax) const
Take spatial photon flux normalisation into account
Member GModelSky::mc (const double &area, const GSkyDir &dir, const double &radius, const GEnergy &emin, const GEnergy &emax, const GTime &tmin, const GTime &tmax, GRan &ran) const
Implement unique model ID to assign as Monte Carlo ID
Member GModelSky::set_type (void)
A method could be implemented in the GModelSpatial class that determines the model type. This is however not very critical.
Member GModelSky::value (const GPhoton &photon)
We probably should return a value of 0 is no model components exist. But we may also make sure that the model never has NULL pointers, which would avoid all the pointer checks.
Member GModelSpatialComposite::set_region (void) const
Implement computation of sky boundary region
Member GModelSpatialDiffuseCube::mc (const GEnergy &energy, const GTime &time, GRan &ran) const
Make sure that spatial model value is taken into account.
Member GModelSpatialEllipticalDisk::contains (const GSkyDir &dir, const double &margin=0.0) const
Implement correct evaluation of effective ellipse radius.
Member GModelSpatialEllipticalDisk::eval (const double &theta, const double &posangle, const GEnergy &energy, const GTime &time, const bool &gradients=false) const
Quote formula for ellipse solid angle
Member GModelSpatialEllipticalDisk::mc (const GEnergy &energy, const GTime &time, GRan &ran) const
Test function
Member GModelSpatialEllipticalDisk::read (const GXmlElement &xml)
Implement a test of the ellipse boundary. The axes and axes minimum should be >0.
Member GModelSpatialEllipticalDisk::update (void) const
check this formula
Member GModelSpatialEllipticalGauss::contains (const GSkyDir &dir, const double &margin=0.0) const
Implement correct evaluation of effective ellipse radius.
Member GModelSpatialEllipticalGauss::read (const GXmlElement &xml)
Implement a test of the ellipse boundary. The axes and axes minimum should be >0.
Member GModelSpatialEllipticalGeneralGauss::contains (const GSkyDir &dir, const double &margin=0.0) const
Implement correct evaluation of effective ellipse radius.
Member GModelSpatialEllipticalGeneralGauss::read (const GXmlElement &xml)
Implement a test of the ellipse boundary. The axes and axes minimum should be >0.
Member GModelSpatialRadialDisk::read (const GXmlElement &xml)
Implement a test of the radius and radius boundary. The radius and radius minimum should be >0.
Member GModelSpatialRadialGauss::mc (const GEnergy &energy, const GTime &time, GRan &ran) const
This method is only valid in the small angle approximation.
Member GModelSpatialRadialGauss::read (const GXmlElement &xml)
Implement a test of the sigma and sigma boundary. The sigma and sigma minimum should be >0.
Member GModelSpatialRadialGeneralGauss::mc (const GEnergy &energy, const GTime &time, GRan &ran) const
This method is only valid in the small angle approximation.
Member GModelSpatialRadialGeneralGauss::read (const GXmlElement &xml)
Implement a test of the radius and radius boundary. The sigma and sigma minimum should be >0.
Member GModelSpatialRadialRing::read (const GXmlElement &xml)
Implement a test of the radius and width. Both parameters should be >0.
Member GModelSpatialRadialShell::read (const GXmlElement &xml)
Implement tests of the radius and radius boundary and the width and width boundary. The radius and radius boundary should be >=0, the width and width boundary should be >0.
Member GModelSpectralBins::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
Document method.
Member GModelSpectralBins::read (const GXmlElement &xml)

Check that bins are ordered

Check that energy boundaries are not overlapping

Member GModelSpectralBrokenPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that energy!=0. Otherwise Inf or NaN may result.
Member GModelSpectralExpInvPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that pivot!=0. Otherwise Inf or NaN may result. We should add a test that prevents using invalid values.
Member GModelSpectralExpPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that pivot!=0 and ecut!=0. Otherwise Inf or NaN may result. We should add a test that prevents using invalid values.
Member GModelSpectralLogParabola::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that energy!=0. Otherwise Inf or NaN may result.
Member GModelSpectralMultiplicative::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that energy!=0. Otherwise Inf or NaN may result.
Member GModelSpectralNodes::read (const GXmlElement &xml)

Check that nodes are ordered

Check that energy boundaries are not overlapping

Check whether we require at least one or two nodes

Member GModelSpectralNodes::set_eval_cache (void) const
Check that all energies and intensities are > 0
Member GModelSpectralNodes::set_flux_cache (void) const
Handle special case emin=emax and fmin=fmax
Member GModelSpectralNodes::update_eval_cache (void) const
Check that all energies and intensities are > 0
Member GModelSpectralPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that energy!=0. Otherwise Inf or NaN may result.
Member GModelSpectralSmoothBrokenPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that energy!=0. Otherwise Inf or NaN may result.
Member GModelSpectralSuperExpPlaw::eval (const GEnergy &srcEng, const GTime &srcTime=GTime(), const bool &gradients=false) const
The method expects that pivot!=0 and ecut!=0. Otherwise Inf or NaN may result. We should add a test that prevents using invalid values.
Member GMWLSpectrum::load (const GFilename &filename)
So far only FITS file support is implemented.
Member GMWLSpectrum::read_fits (const GFitsTable &table)
Investigate whether we can exploit UCDs for identifying the correct columns or for determining the units.
Member GMWLSpectrum::save (const GFilename &filename, const bool &clobber=false) const
To be implemented.
Member GMWLSpectrum::write (GFits &file) const
To be implemented.
Member GObservations::read (const GXml &xml)
Observation names and IDs are not verified so far for uniqueness. This would be required to achieve an unambiguous update of parameters in an already existing XML file when using the write method.
Member GRan::cdf (const GVector &cdf)
Somehow merge with the above method to reduce code repetition
Member GRan::exp (const double &lambda)
Check that \(\lambda>0\).
Member GSkyMap::create_wcs_hdu (void) const
Set additional keywords.
Member GSkyMap::load (const GFilename &filename)
Do we have to restrict a HEALPix map to a BinTable and a WCS map to a Double precision image???
Member GSkyMap::projection (const GSkyProjection &proj)
We may restrict this method to not allow changing the projection dimension.
Member GSkyRegionMap::read (const std::string &line)
Translate any DS9 region into a map.
Member GSkyRegionMap::write (void) const
Translate region map into a DS9 polygon.
Member GSkyRegionRectangle::overlaps (const GSkyRegion &reg) const
Improve implementation for rectangle-rectangle
Member GSPIEventBin::error (void) const
The choice of delta has been made somewhat arbitrary, mainly because the optimizer routines filter error^2 below 1e-100.
Member GSPIModelDataSpace::mc (const GObservation &obs, GRan &ran) const
Implement method.
Member GSPIModelDataSpace::npred (const GEnergy &obsEng, const GTime &obsTime, const GObservation &obs) const
Implement method.
Class GSPIObservation
Complete the class description.
Class GSPIResponse
Complete the class description.
Member GSPIResponse::ebounds (const GEnergy &obsEnergy) const
Implement this method if you need energy dispersion.
Member GSPIResponse::irf (const GEvent &event, const GPhoton &photon, const GObservation &obs) const

Write down formula

Describe in detail how the response is computed.

Member GSPIResponse::use_edisp (void) const
Implement method as needed.
Member GSPIResponse::use_tdisp (void) const
Implement method as needed.
Class GTestSuite
Detailed explanation.
Class GTestSuites
Provide detailed description
Member GTimeReference::set (const double &mrdref, const std::string &timeunit, const std::string &timesys="TT", const std::string &timeref="LOCAL")
Implement checking of "timesys" and "timeref" parameters.
Member GUrlFile::copy_members (const GUrlFile &url)
The simple copying of the file pointer is not clean as we have no control anymore over the object. The file pointer should be cloned somehow.
Member GUrlFile::open (const std::string &url, const std::string &mode)
Strip any file:// prefix
Member GUrlString::scanf (const char *format,...)
The position indicator is not forwared as I have no idea how to do this in fact!!!
Member GWcs::set_members (const std::string &coords, const double &crval1, const double &crval2, const double &crpix1, const double &crpix2, const double &cdelt1, const double &cdelt2)
Implement parameter validity check
Member GWcs::wcs_p2s (int ncoord, int nelem, const double *pixcrd, double *imgcrd, double *phi, double *theta, double *world, int *stat) const

Check for constant x and/or y to speed-up computations

Zero the unused world coordinate elements

Member GWcs::wcs_s2p (int ncoord, int nelem, const double *world, double *phi, double *theta, double *imgcrd, double *pixcrd, int *stat) const

Check for constant x and/or y to speed-up computations

Zero the unused world coordinate elements

Member GWcs::wcs_set (void) const

Determine axis types from CTYPEia

Convert to canonical units

Do we have PVi_ma keyvalues?

Do simple alias translations

Update PVi_ma keyvalues

Non-linear spectral axis present?

Tabular axes present?

Member GXml::load (const GFilename &filename)
Ideally, we would like to extract the URL type from the filename so that any kind of URL can be used for loading.
Member GXml::save (const GFilename &filename) const
Ideally, we would like to extract the URL type from the filename so that any kind of URL can be used for loading.
Member GXmlComment::parse (const std::string &segment)
Check validity of characters in comment string
Member GXmlElement::parse_attribute (size_t *pos, const std::string &segment)
Verify XML validity of attribute name and value
Member GXmlNode::copy_members (const GXmlNode &node)
Is copying the parent node pointer correct?
Member operator== (const GHorizDir &a, const GHorizDir &b)
: really should test for being within some tolerance here