/***********************************************************************//** * @brief Read sky model from XML element * * @param[in] xml XML element. ***************************************************************************/ void GModelSky::read(const GXmlElement& xml) { // Clear sky model clear(); // Get pointers on spectrum and spatial model GXmlElement* spec = static_cast<GXmlElement*>(xml.element("spectrum", 0)); GXmlElement* spat = static_cast<GXmlElement*>(xml.element("spatialModel", 0)); // Allocate constant GModelTemporalConst temporal; // Clone spatial and spectral models m_spatial = xml_spatial(*spat); m_spectral = xml_spectral(*spec); m_temporal = temporal.clone(); // Set model name name(xml.attribute("name")); // Set instruments instruments(xml.attribute("instrument")); // Set observation identifiers ids(xml.attribute("id")); // Set parameter pointers set_pointers(); // Return return; }
/***********************************************************************//** * @brief Read model from XML element * * @param[in] xml XML element. * * The model is composed of a spectrum component ('spectral'), a spatial * component ('spatialModel'), and, optionally, of a temporal component * ('lightcurve'). If no temporal component is found a constant model is * assumed. ***************************************************************************/ void GCTAModelBackground::read(const GXmlElement& xml) { // Clear model clear(); // Initialise XML elements const GXmlElement* spat = NULL; const GXmlElement* spec = NULL; const GXmlElement* temp = NULL; // Get pointers on spectrum and radial model spat = xml.element("spatialModel", 0); spec = xml.element("spectrum", 0); // Clone radial and spectral models m_spatial = xml_spatial(*spat); m_spectral = xml_spectral(*spec); // Optionally get temporal model if (xml.elements("temporalModel")) { temp = xml.element("temporalModel", 0); m_temporal = xml_temporal(*temp); } else { GModelTemporalConst temporal; m_temporal = temporal.clone(); } // Set model name name(xml.attribute("name")); // Set instruments instruments(xml.attribute("instrument")); // Set observation identifiers ids(xml.attribute("id")); // Set parameter pointers set_pointers(); // Return return; }
/***********************************************************************//** * @brief Construct sky model from spatial and spectral XML elements * * @param[in] spatial Spatial XML element. * @param[in] spectral Spectral XML element. ***************************************************************************/ GModelSky::GModelSky(const GXmlElement& spatial, const GXmlElement& spectral) : GModel() { // Initialise private members for clean destruction init_members(); // Allocate constant GModelTemporalConst temporal; // Clone spatial and spectral models m_spatial = xml_spatial(spatial); m_spectral = xml_spectral(spectral); m_temporal = temporal.clone(); // Set parameter pointers set_pointers(); // Return return; }
/***********************************************************************//** * @brief XML constructor * * @param[in] xml XML element. ***************************************************************************/ GModelSky::GModelSky(const GXmlElement& xml) : GModel(xml) { // Initialise private members for clean destruction init_members(); // Get pointers on spectrum and spatial model GXmlElement* spec = static_cast<GXmlElement*>(xml.element("spectrum", 0)); GXmlElement* spat = static_cast<GXmlElement*>(xml.element("spatialModel", 0)); // Allocate constant GModelTemporalConst temporal; // Clone spatial and spectral models m_spatial = xml_spatial(*spat); m_spectral = xml_spectral(*spec); m_temporal = temporal.clone(); // Set parameter pointers set_pointers(); // Return return; }