/***********************************************************************//** * @brief Load COMPTEL response. * * @param[in] rspname COMPTEL response name. * * Loads the COMPTEL response with specified name @p rspname. The method first * searchs for an appropriate response in the calibration database. If no * appropriate response is found, the method takes the database root path * and response name to build the full path to the response file, and tries * to load the response from these paths. ***************************************************************************/ void GCOMResponse::load(const std::string& rspname) { // Clear instance but conserve calibration database GCaldb caldb = m_caldb; clear(); m_caldb = caldb; // Save response name m_rspname = rspname; // First attempt reading the response using the GCaldb interface GFilename filename = m_caldb.filename("","","IAQ","","",rspname); // If filename is empty then build filename from CALDB root path and // response name if (filename.is_empty()) { filename = gammalib::filepath(m_caldb.rootdir(), rspname); if (!filename.exists()) { GFilename testname = filename + ".fits"; if (testname.exists()) { filename = testname; } } } // Open FITS file GFits fits(filename); // Get IAQ image const GFitsImage& iaq = *fits.image(0); // Read IAQ read(iaq); // Close ARF FITS file fits.close(); // Return return; }