Instrument.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/Instrument.h
10
11#ifndef __CalibrationInstrument_H
12#define __CalibrationInstrument_H
13
14#include "Pulsar/BackendFeed.h"
15#include "Pulsar/HasOrientation.h"
16#include "MEAL/ScalarParameter.h"
17#include "MEAL/ChainRule.h"
18
19namespace Calibration {
20
21 class Feed;
22
24
26 class Instrument : public BackendFeed, public HasOrientation
27 {
28
29 public:
30
32 Instrument ();
33
35 Instrument (const Instrument& s);
36
38 const Instrument& operator = (const Instrument& s);
39
41 Instrument* clone () const;
42
44 ~Instrument ();
45
47 void equal_ellipticities ();
48
51
54
56 bool has_equal_ellipticities () const { return ellipticities; }
57
59 void equal_orientations ();
60 void independent_orientations ();
61
63 void set_cyclic (bool flag = true);
64
66 void set_constant_orientation (bool);
67
69 Estimate<double> get_orientation (unsigned ireceptor) const;
70
72 Estimate<double> get_ellipticity (unsigned ireceptor) const;
73
75 unsigned get_ellipticity_index (unsigned receptor) const;
76
78 void set_orientation (unsigned ireceptor, const Estimate<double>& theta);
79
81 void set_ellipticity (unsigned ireceptor, const Estimate<double>& chi);
82
84 const Feed* get_feed () const;
85 Feed* get_feed ();
86
87 // ///////////////////////////////////////////////////////////////////
88 //
89 // HasOrientation implementation
90 //
91 // ///////////////////////////////////////////////////////////////////
92
94 Estimate<double> get_orientation () const override;
95
97 void offset_orientation (double delta_rad) override;
98
99 // ///////////////////////////////////////////////////////////////////
100 //
101 // Model implementation
102 //
103 // ///////////////////////////////////////////////////////////////////
104
106 std::string get_name () const;
107
108 protected:
109
112
115
118
121
122 private:
123
125 void init ();
126
127 };
128
129}
130
131#endif
132
BackendFeed()
Default constructor.
Definition BackendFeed.C:26
Phenomenological description of the receiver feed.
Definition Feed.h:27
Interface to transformations that have a feed rotation that can be offset.
Definition HasOrientation.h:20
std::string get_name() const
Return the name of the class.
Definition Instrument.C:67
Instrument * clone() const
Clone operator.
Definition Instrument.C:55
Reference::To< MEAL::ScalarParameter > orientations
ScalarParameter used to bind orientations.
Definition Instrument.h:120
void set_orientation(unsigned ireceptor, const Estimate< double > &theta)
Set the orientation, , of the specified receptor in radians.
Definition Instrument.C:99
MEAL::ScalarParameter * get_ellipticities()
Return the single model parameter that constrains both ellipticities.
Definition Instrument.h:53
~Instrument()
Destructor.
Definition Instrument.C:60
void offset_orientation(double delta_rad) override
Offset the rotation of the feed about the line of sight by delta, in radians.
Definition Instrument.C:193
Instrument()
Default Constructor.
Definition Instrument.C:32
const Feed * get_feed() const
Provide access to the Feed model.
Definition Instrument.C:182
Estimate< double > get_ellipticity(unsigned ireceptor) const
Get the ellipticity, , of the specified receptor in radians.
Definition Instrument.C:82
unsigned get_ellipticity_index(unsigned receptor) const
Get the index of the ellipticity parameter for the specified receptor.
Definition Instrument.C:90
Estimate< double > get_orientation() const override
Get the rotation of the feed about the line of sight, in radians.
Definition Instrument.C:187
const Instrument & operator=(const Instrument &s)
Assignment Operator.
Definition Instrument.C:45
void equal_ellipticities()
Model the ellipticities of both receptors using the same value.
Definition Instrument.C:118
void independent_ellipticities()
Model the ellipticities of the receptors using independent values.
Definition Instrument.C:128
void set_cyclic(bool flag=true)
Set cyclical limits on the model parameters.
Definition Instrument.C:166
void set_ellipticity(unsigned ireceptor, const Estimate< double > &chi)
Set the ellipticity, , of the specified receptor in radians.
Definition Instrument.C:109
Reference::To< MEAL::ScalarParameter > ellipticities
ScalarParameter used to bind ellipticities.
Definition Instrument.h:117
void set_constant_orientation(bool)
Fix the orientation of the frontend.
Definition Instrument.C:172
bool has_equal_ellipticities() const
Return true if both ellipticities are constrained by a single parameter.
Definition Instrument.h:56
void equal_orientations()
Model the orientations of both receptors using the same value.
Definition Instrument.C:146
Reference::To< Feed > feed
Feed model: and .
Definition Instrument.h:111
Reference::To< MEAL::ChainRule< MEAL::Complex2 > > feed_chain
ChainRule used to bind Feed parameters.
Definition Instrument.h:114

Generated using doxygen 1.14.0