diff --git a/include/GModelTemporalPhaseCurve.hpp b/include/GModelTemporalPhaseCurve.hpp index c63aeb3..31c9162 100644 --- a/include/GModelTemporalPhaseCurve.hpp +++ b/include/GModelTemporalPhaseCurve.hpp @@ -80,6 +80,11 @@ public: GModelTemporalPhaseCurve(void); explicit GModelTemporalPhaseCurve(const GXmlElement& xml); GModelTemporalPhaseCurve(const GFilename& filename, + const GTime& mjd, + const double& phase, + const double& f0, + const double& f1, + const double& f2, const double& norm = 1.0); GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); virtual ~GModelTemporalPhaseCurve(void); diff --git a/pyext/GModelTemporalPhaseCurve.i b/pyext/GModelTemporalPhaseCurve.i index 3aa0448..018a280 100644 --- a/pyext/GModelTemporalPhaseCurve.i +++ b/pyext/GModelTemporalPhaseCurve.i @@ -41,6 +41,11 @@ public: GModelTemporalPhaseCurve(void); explicit GModelTemporalPhaseCurve(const GXmlElement& xml); GModelTemporalPhaseCurve(const GFilename& filename, + const GTime& mjd, + const double& phase, + const double& f0, + const double& f1, + const double& f2, const double& norm = 1.0); GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); virtual ~GModelTemporalPhaseCurve(void); diff --git a/src/model/GModelTemporalPhaseCurve.cpp b/src/model/GModelTemporalPhaseCurve.cpp index 7615858..c485e0d 100644 --- a/src/model/GModelTemporalPhaseCurve.cpp +++ b/src/model/GModelTemporalPhaseCurve.cpp @@ -78,25 +78,41 @@ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(void) : GModelTemporal() * @brief File constructor * * @param[in] filename File name of phase curve nodes. + * @param[in] mjd Reference time. + * @param[in] phase Phase at reference time. + * @param[in] f0 Frequency at reference time (Hz). + * @param[in] f1 First frequency derivative at reference time. + * @param[in] f2 Second frequency derivative at reference time. * @param[in] norm Normalization factor. * * Constructs phase curve from a list of nodes that is found in the specified - * FITS file. See the load_nodes() method for more information about the - * expected structure of the file. + * FITS file, a reference time and phase information at the reference time. + * See the load_nodes() method for more information about the expected + * structure of the file. ***************************************************************************/ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(const GFilename& filename, + const GTime& mjd, + const double& phase, + const double& f0, + const double& f1, + const double& f2, const double& norm) : GModelTemporal() { // Initialise members init_members(); + // Set parameters + this->mjd(mjd); + this->phase(phase); + this->f0(f0); + this->f1(f1); + this->f2(f2); + this->norm(norm); + // Load nodes load_nodes(filename); - // Set normalization - m_norm.value(norm); - // Return return; } diff --git a/test/test_GModel.cpp b/test/test_GModel.cpp index c4cc6a9..66f639f 100644 --- a/test/test_GModel.cpp +++ b/test/test_GModel.cpp @@ -2307,9 +2307,20 @@ void TestGModel::test_temp_phasecurve(void) test_value(model1.type(), "PhaseCurve", "Check void model type"); // Test value constructor - GModelTemporalPhaseCurve model2(m_temp_phasecurve, 2.0); + GModelTemporalPhaseCurve model2(m_temp_phasecurve, + GTime(3.0, "secs"), + 0.0, + 1.0, + 0.1, + 0.01, + 2.0); test_value(model2.filename().url(), m_temp_phasecurve, "Check phase curve file name"); + test_value(model2.mjd().secs(), 3.0); + test_value(model2.phase(), 0.0); + test_value(model2.f0(), 1.0); + test_value(model2.f1(), 0.1); + test_value(model2.f2(), 0.01); test_value(model2.norm(), 2.0); // Test XML constructor