Commit 47ae45b627563b37b8b4efe7dc5bb2268d638f20

Authored by Jürgen Knödlseder
1 parent 0bb6c9ac

Complemented temporal phase curve constructor

include/GModelTemporalPhaseCurve.hpp
@@ -80,6 +80,11 @@ public: @@ -80,6 +80,11 @@ public:
80 GModelTemporalPhaseCurve(void); 80 GModelTemporalPhaseCurve(void);
81 explicit GModelTemporalPhaseCurve(const GXmlElement& xml); 81 explicit GModelTemporalPhaseCurve(const GXmlElement& xml);
82 GModelTemporalPhaseCurve(const GFilename& filename, 82 GModelTemporalPhaseCurve(const GFilename& filename,
  83 + const GTime& mjd,
  84 + const double& phase,
  85 + const double& f0,
  86 + const double& f1,
  87 + const double& f2,
83 const double& norm = 1.0); 88 const double& norm = 1.0);
84 GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); 89 GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model);
85 virtual ~GModelTemporalPhaseCurve(void); 90 virtual ~GModelTemporalPhaseCurve(void);
pyext/GModelTemporalPhaseCurve.i
@@ -41,6 +41,11 @@ public: @@ -41,6 +41,11 @@ public:
41 GModelTemporalPhaseCurve(void); 41 GModelTemporalPhaseCurve(void);
42 explicit GModelTemporalPhaseCurve(const GXmlElement& xml); 42 explicit GModelTemporalPhaseCurve(const GXmlElement& xml);
43 GModelTemporalPhaseCurve(const GFilename& filename, 43 GModelTemporalPhaseCurve(const GFilename& filename,
  44 + const GTime& mjd,
  45 + const double& phase,
  46 + const double& f0,
  47 + const double& f1,
  48 + const double& f2,
44 const double& norm = 1.0); 49 const double& norm = 1.0);
45 GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model); 50 GModelTemporalPhaseCurve(const GModelTemporalPhaseCurve& model);
46 virtual ~GModelTemporalPhaseCurve(void); 51 virtual ~GModelTemporalPhaseCurve(void);
src/model/GModelTemporalPhaseCurve.cpp
@@ -78,25 +78,41 @@ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(void) : GModelTemporal() @@ -78,25 +78,41 @@ GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(void) : GModelTemporal()
78 * @brief File constructor 78 * @brief File constructor
79 * 79 *
80 * @param[in] filename File name of phase curve nodes. 80 * @param[in] filename File name of phase curve nodes.
  81 + * @param[in] mjd Reference time.
  82 + * @param[in] phase Phase at reference time.
  83 + * @param[in] f0 Frequency at reference time (Hz).
  84 + * @param[in] f1 First frequency derivative at reference time.
  85 + * @param[in] f2 Second frequency derivative at reference time.
81 * @param[in] norm Normalization factor. 86 * @param[in] norm Normalization factor.
82 * 87 *
83 * Constructs phase curve from a list of nodes that is found in the specified 88 * Constructs phase curve from a list of nodes that is found in the specified
84 - * FITS file. See the load_nodes() method for more information about the  
85 - * expected structure of the file. 89 + * FITS file, a reference time and phase information at the reference time.
  90 + * See the load_nodes() method for more information about the expected
  91 + * structure of the file.
86 ***************************************************************************/ 92 ***************************************************************************/
87 GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(const GFilename& filename, 93 GModelTemporalPhaseCurve::GModelTemporalPhaseCurve(const GFilename& filename,
  94 + const GTime& mjd,
  95 + const double& phase,
  96 + const double& f0,
  97 + const double& f1,
  98 + const double& f2,
88 const double& norm) : 99 const double& norm) :
89 GModelTemporal() 100 GModelTemporal()
90 { 101 {
91 // Initialise members 102 // Initialise members
92 init_members(); 103 init_members();
93 104
  105 + // Set parameters
  106 + this->mjd(mjd);
  107 + this->phase(phase);
  108 + this->f0(f0);
  109 + this->f1(f1);
  110 + this->f2(f2);
  111 + this->norm(norm);
  112 +
94 // Load nodes 113 // Load nodes
95 load_nodes(filename); 114 load_nodes(filename);
96 115
97 - // Set normalization  
98 - m_norm.value(norm);  
99 -  
100 // Return 116 // Return
101 return; 117 return;
102 } 118 }
test/test_GModel.cpp
@@ -2307,9 +2307,20 @@ void TestGModel::test_temp_phasecurve(void) @@ -2307,9 +2307,20 @@ void TestGModel::test_temp_phasecurve(void)
2307 test_value(model1.type(), "PhaseCurve", "Check void model type"); 2307 test_value(model1.type(), "PhaseCurve", "Check void model type");
2308 2308
2309 // Test value constructor 2309 // Test value constructor
2310 - GModelTemporalPhaseCurve model2(m_temp_phasecurve, 2.0); 2310 + GModelTemporalPhaseCurve model2(m_temp_phasecurve,
  2311 + GTime(3.0, "secs"),
  2312 + 0.0,
  2313 + 1.0,
  2314 + 0.1,
  2315 + 0.01,
  2316 + 2.0);
2311 test_value(model2.filename().url(), m_temp_phasecurve, 2317 test_value(model2.filename().url(), m_temp_phasecurve,
2312 "Check phase curve file name"); 2318 "Check phase curve file name");
  2319 + test_value(model2.mjd().secs(), 3.0);
  2320 + test_value(model2.phase(), 0.0);
  2321 + test_value(model2.f0(), 1.0);
  2322 + test_value(model2.f1(), 0.1);
  2323 + test_value(model2.f2(), 0.01);
2313 test_value(model2.norm(), 2.0); 2324 test_value(model2.norm(), 2.0);
2314 2325
2315 // Test XML constructor 2326 // Test XML constructor