Feed.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2004 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/More/Polarimetry/Pulsar/Feed.h
10 
11 #ifndef __Calibration_Feed_H
12 #define __Calibration_Feed_H
13 
14 #include "MEAL/SumRule.h"
15 #include "MEAL/Rotation1.h"
16 
17 #include "Estimate.h"
18 
19 namespace Calibration {
20 
22 
27  class Feed : public MEAL::SumRule<MEAL::Complex2> {
28 
29  public:
30 
32  Feed ();
33 
35  Feed (const Feed& feed);
36 
38  Feed& operator = (const Feed& feed);
39 
41  ~Feed ();
42 
44  void set_cyclic (bool flag = true);
45 
47  Estimate<double> get_orientation (unsigned ireceptor) const;
48 
50  Estimate<double> get_ellipticity (unsigned ireceptor) const;
51 
53  void set_orientation (unsigned ireceptor, const Estimate<double>& theta);
54 
56  void set_ellipticity (unsigned ireceptor, const Estimate<double>& chi);
57 
59  void load (const std::string& filename);
60 
62  void parse (const std::string& line);
63 
64  // ///////////////////////////////////////////////////////////////////
65  //
66  // Model implementation
67  //
68  // ///////////////////////////////////////////////////////////////////
69 
71  std::string get_name () const;
72 
74  MEAL::Rotation1* get_orientation_transformation( unsigned receptor );
75 
77  MEAL::Rotation1* get_ellipticity_transformation( unsigned receptor );
78 
79  protected:
80 
83 
86 
87  private:
88 
90  void init ();
91 
92  };
93 
94 }
95 
96 #endif
97 
void set_cyclic(bool flag=true)
Enforce cyclical limits on parameters.
Definition: Feed.C:95
Feed & operator=(const Feed &feed)
Assignment Operator.
Definition: Feed.C:81
void set_upper_bound(double bound)
void set_orientation(unsigned ireceptor, const Estimate< double > &theta)
Set the orientation, , of the specified receptor (radians)
Definition: Feed.C:165
void set_lower_bound(double bound)
Estimate< double > get_ellipticity(unsigned ireceptor) const
Get the ellipticity, , of the specified receptor in radians.
Definition: Feed.C:159
Estimate< double > get_orientation(unsigned ireceptor) const
Get the orientation, , of the specified receptor (radians)
Definition: Feed.C:175
Phenomenological description of the receiver feed.
Definition: Feed.h:32
void parse(const std::string &line)
Parse a feed parameter from a line of text.
Definition: Feed_load.C:23
Feed()
Default Constructor.
Definition: Feed.C:70
void add_model(T *model)
void load(const std::string &filename)
Parse the feed parameters from the specified file.
Definition: Feed_load.C:16
Reference::To< MEAL::Rotation1 > ellipticity[2]
The receptor ellipticity tranformations.
Definition: Feed.h:95
MEAL::Rotation1 * get_orientation_transformation(unsigned receptor)
Get the orientation tranformation for the specified receptor.
Definition: Feed.C:182
MEAL::Rotation1 * get_ellipticity_transformation(unsigned receptor)
Get the ellipticity tranformation for the specified receptor.
Definition: Feed.C:189
~Feed()
Destructor.
Definition: Feed.C:91
void set_period(double period)
void set_azimuth(CyclicParameter *azimuth)
void set_ellipticity(unsigned ireceptor, const Estimate< double > &chi)
Set the ellipticity, , of the specified receptor in radians.
Definition: Feed.C:149
std::string get_name() const
Return the name of the class.
Definition: Feed.C:144
Reference::To< MEAL::Rotation1 > orientation[2]
The receptor orientation tranformations.
Definition: Feed.h:92

Generated using doxygen 1.8.17