/***********************************************************************//** * @brief Read CTA cube background model from XML element * * @param[in] xml XML element. * * Set up CTA cube background model from the information provided by * an XML element. The XML element is expected to have the following * structure * * <source name="..." type="..." instrument="..."> * <spectrum type="..."> * ... * </spectrum> * </source> * * Optionally, a temporal model may be provided using the following * syntax * * <source name="..." type="..." instrument="..."> * <spectrum type="..."> * ... * </spectrum> * <temporalModel type="..."> * ... * </temporalModel> * </source> * * If no temporal component is found a constant model is assumed. ***************************************************************************/ void GCTAModelCubeBackground::read(const GXmlElement& xml) { // Clear model clear(); // Initialise XML elements const GXmlElement* spectral = NULL; const GXmlElement* temporal = NULL; // Get pointer on spectrum spectral = xml.element("spectrum", 0); // Extract spectral model m_spectral = xml_spectral(*spectral); // Optionally get temporal model if (xml.elements("temporalModel")) { temporal = xml.element("temporalModel", 0); m_temporal = xml_temporal(*temporal); } else { GModelTemporalConst constant; m_temporal = constant.clone(); } // Read model attributes read_attributes(xml); // Set parameter pointers set_pointers(); // Return return; }
/***********************************************************************//** * @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 CTA instrument background model from XML element * * @param[in] xml XML element. * * Set up CTA instrument background model from the information provided by * an XML element. The XML element is expected to have the following * structure * * <source name="..." type="..." instrument="..."> * <spectrum type="..."> * ... * </spectrum> * </source> * * Optionally, a temporal model may be provided using the following * syntax * * <source name="..." type="..." instrument="..."> * <spectrum type="..."> * ... * </spectrum> * <temporalModel type="..."> * ... * </temporalModel> * </source> * * If no temporal component is found a constant model is assumed. ***************************************************************************/ void GCTAModelIrfBackground::read(const GXmlElement& xml) { // Clear model clear(); // Initialise XML elements const GXmlElement* spectral = NULL; const GXmlElement* temporal = NULL; // Get pointer on spectrum spectral = xml.element("spectrum", 0); // Extract spectral model m_spectral = xml_spectral(*spectral); // Optionally get temporal model if (xml.elements("temporalModel")) { temporal = xml.element("temporalModel", 0); m_temporal = xml_temporal(*temporal); } else { GModelTemporalConst constant; m_temporal = constant.clone(); } // Set model name name(xml.attribute("name")); // Set instruments instruments(xml.attribute("instrument")); // Set observation identifiers ids(xml.attribute("id")); // Check flag if TS value should be computed bool tscalc = (xml.attribute("tscalc") == "1") ? true : false; // Set flag if TS value should be computed this->tscalc(tscalc); // 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; }