DP3
SourceData.h
Go to the documentation of this file.
1 // SourceData.h: Class holding all parameters of a source
2 //
3 // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 
9 
10 #ifndef LOFAR_PARMDB_SOURCEDATA_H
11 #define LOFAR_PARMDB_SOURCEDATA_H
12 
13 #include "SourceInfo.h"
14 
15 #include <iosfwd>
16 
17 namespace dp3 {
18 namespace blob {
19 class BlobIStream;
20 class BlobOStream;
21 } // namespace blob
22 
23 namespace parmdb {
24 
25 class ParmMap;
26 
29 
31 class SourceData {
32  public:
34 
35  SourceData(const SourceInfo&, const std::string& patchName, double ra,
36  double dec);
37 
39  const SourceInfo& getInfo() const { return itsInfo; }
40  const std::string& getPatchName() const { return itsPatchName; }
42  double getRa() const { return itsRa; }
44  double getDec() const { return itsDec; }
45  double getI() const { return itsI; }
46  double getQ() const { return itsQ; }
47  double getU() const { return itsU; }
48  double getV() const { return itsV; }
50  double getMajorAxis() const { return itsMajorAxis; }
52  double getMinorAxis() const { return itsMinorAxis; }
54  double getOrientation() const { return itsOrientation; }
55  double getPolarizationAngle() const { return itsPolAngle; }
56  double getPolarizedFraction() const { return itsPolFrac; }
57  double getRotationMeasure() const { return itsRM; }
58  const std::vector<double>& getSpectralTerms() const { return itsSpTerms; }
59 
62  void setInfo(const SourceInfo& info) { itsInfo = info; }
63  void setPatchName(const std::string& patchName) { itsPatchName = patchName; }
64  void setRa(double ra) { itsRa = ra; }
65  void setDec(double dec) { itsDec = dec; }
66  void setI(double i) { itsI = i; }
67  void setQ(double q) { itsQ = q; }
68  void setU(double u) { itsU = u; }
69  void setV(double v) { itsV = v; }
70  void setMajorAxis(double majorAxis) { itsMajorAxis = majorAxis; }
71  void setMinorAxis(double minorAxis) { itsMinorAxis = minorAxis; }
72  void setOrientation(double orientation) { itsOrientation = orientation; }
73  void setPolarizationAngle(double polarizationAngle) {
74  itsPolAngle = polarizationAngle;
75  }
76  void setPolarizedFraction(double polarizedFraction) {
77  itsPolFrac = polarizedFraction;
78  }
79  void setRotationMeasure(double potationMeasure) { itsRM = potationMeasure; }
80  void setSpectralTerms(const std::vector<double>& spectralTerms) {
81  itsSpTerms = spectralTerms;
82  }
84 
86  void setParms(const ParmMap& defaultParameters);
87 
89  void getParms(ParmMap& parms) const;
90 
93 
96 
98  void print(std::ostream&) const;
99 
100  private:
104  void setParm(const ParmMap& parms, const std::string& name, double defValue,
105  double& value);
106 
108  void makeParm(ParmMap& parms, const std::string& name, double value,
109  bool pertRel = true) const;
110 
111  SourceInfo itsInfo;
112  string itsPatchName;
113  double itsRa;
114  double itsDec;
115  double itsI;
116  double itsQ;
117  double itsU;
118  double itsV;
119  double itsMajorAxis;
120  double itsMinorAxis;
121  double itsOrientation;
122  double itsPolAngle;
123  double itsPolFrac;
124  double itsRM;
125  std::vector<double> itsSpTerms;
126 };
127 
131 void toSkymodel(std::ostream& output, const SourceData& source);
132 
134 
135 } // namespace parmdb
136 } // namespace dp3
137 
138 #endif
Info about a source.
Input stream for a blob.
Definition: BlobIStream.h:43
Output stream for a blob.
Definition: BlobOStream.h:40
A map of parameter name to value set.
Definition: ParmMap.h:30
Class holding a data of a source.
Definition: SourceData.h:31
void setDec(double dec)
Definition: SourceData.h:65
void setPolarizationAngle(double polarizationAngle)
Definition: SourceData.h:73
void setRa(double ra)
Definition: SourceData.h:64
void setSpectralTerms(const std::vector< double > &spectralTerms)
Definition: SourceData.h:80
void setV(double v)
Definition: SourceData.h:69
void setU(double u)
Definition: SourceData.h:68
double getDec() const
Get declination in radians.
Definition: SourceData.h:44
void readSource(blob::BlobIStream &)
Read the source data from a blob stream.
double getPolarizationAngle() const
Definition: SourceData.h:55
double getQ() const
Definition: SourceData.h:46
void print(std::ostream &) const
Print the source data.
void setOrientation(double orientation)
Definition: SourceData.h:72
double getOrientation() const
Get orientation in degrees.
Definition: SourceData.h:54
const std::string & getPatchName() const
Definition: SourceData.h:40
const SourceInfo & getInfo() const
Get the various source parameters.
Definition: SourceData.h:39
void setMinorAxis(double minorAxis)
Definition: SourceData.h:71
void writeSource(blob::BlobOStream &) const
Write the source data into a blob stream.
double getU() const
Definition: SourceData.h:47
double getMinorAxis() const
Get minor axis in arcsec.
Definition: SourceData.h:52
double getMajorAxis() const
Get major axis in arcsec.
Definition: SourceData.h:50
double getV() const
Definition: SourceData.h:48
const std::vector< double > & getSpectralTerms() const
Definition: SourceData.h:58
void setQ(double q)
Definition: SourceData.h:67
void getParms(ParmMap &parms) const
Get the parameters as a ParmMap object.
void setI(double i)
Definition: SourceData.h:66
void setPatchName(const std::string &patchName)
Definition: SourceData.h:63
void setRotationMeasure(double potationMeasure)
Definition: SourceData.h:79
double getPolarizedFraction() const
Definition: SourceData.h:56
double getRotationMeasure() const
Definition: SourceData.h:57
void setPolarizedFraction(double polarizedFraction)
Definition: SourceData.h:76
SourceData(const SourceInfo &, const std::string &patchName, double ra, double dec)
double getI() const
Definition: SourceData.h:45
void setInfo(const SourceInfo &info)
Definition: SourceData.h:62
void setParms(const ParmMap &defaultParameters)
Set the parameters from a ParmMap object.
double getRa() const
Get right ascension in radians.
Definition: SourceData.h:42
void setMajorAxis(double majorAxis)
Definition: SourceData.h:70
Info about a source.
Definition: SourceInfo.h:29
void toSkymodel(std::ostream &output, const PatchInfo &patch)
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53