ModeCoherency.h
1 //-*-C++-*-
2 /***************************************************************************
3  *
4  * Copyright (C) 2011 by Willem van Straten
5  * Licensed under the Academic Free License version 2.1
6  *
7  ***************************************************************************/
8 
9 // psrchive/More/MEAL/MEAL/ModeCoherency.h
10 
11 #ifndef __MEAL_ModeCoherency_H
12 #define __MEAL_ModeCoherency_H
13 
14 #include "MEAL/Coherency.h"
15 #include "MEAL/Wrap.h"
16 #include "Vector.h"
17 
18 namespace MEAL {
19 
20  class Scalar;
21  class ScalarParameter;
22  class BoostUnion;
23  class UnitTangent;
24 
26 
33  class ModeCoherency : public Wrap<Coherency>
34  {
35 
36  public:
37 
39  ModeCoherency ();
40 
43 
46 
48  ~ModeCoherency ();
49 
51  UnitTangent* get_axis ();
52 
54  void set_axis (UnitTangent*);
55 
57  Scalar* get_beta ();
58 
60  Scalar* get_intensity ();
61 
63  virtual void set_stokes (const Stokes<double>& stokes);
64 
66  virtual void set_stokes (const Stokes< Estimate<double> >& stokes);
67 
69  virtual Stokes< Estimate<double> > get_stokes () const;
70 
71  // ///////////////////////////////////////////////////////////////////
72  //
73  // Function implementation
74  //
75  // ///////////////////////////////////////////////////////////////////
76 
78  std::string get_name () const;
79 
80  protected:
81 
83  void init ();
84 
88  Reference::To<ScalarParameter> log_intensity;
89 
91  Reference::To<Scalar> intensity;
92  };
93 
94 }
95 
96 #endif
const ScalarMath exp(const ScalarMath &x)
Return a ScalarMath instance representing exp(x)
Definition: ScalarMath.C:224
Scalar * get_intensity()
Get the intensity.
Definition: ModeCoherency.C:105
Scalar * get_expression() const
Access the expression.
Definition: ScalarMath.h:70
virtual Stokes< Estimate< double > > get_stokes() const
Get the Stokes parameters and their estimated errors.
Definition: ModeCoherency.C:158
~ModeCoherency()
Destructor.
Definition: ModeCoherency.C:75
Pure virtual base class of all complex 2x2 matrix functions.
Definition: Complex2.h:34
Represents a boost (Hermitian, dichroic) transformation.
Definition: BoostUnion.h:29
virtual void set_stokes(const Stokes< double > &stokes)
Set the Stokes parameters of the model.
Definition: ModeCoherency.C:111
const ScalarMath log(const ScalarMath &x)
Return a ScalarMath instance representing log(x)
Definition: ScalarMath.C:232
void set_value_name(const std::string &name)
Set the name of the parameter.
Definition: ScalarParameter.C:53
const ScalarMath sqrt(const ScalarMath &x)
Return a ScalarMath instance representing x^.5.
Definition: ScalarMath.C:151
ModeCoherency()
Default constructor.
Definition: ModeCoherency.C:48
Represents a scalar parameter, .
Definition: ScalarParameter.h:24
std::string get_name() const
Return the name of the class.
Definition: ModeCoherency.C:80
Namespace in which all modeling and calibration related code is declared.
Definition: ExampleComplex2.h:16
ModeCoherency & operator=(const ModeCoherency &copy)
Assignment operator.
Definition: ModeCoherency.C:62
A coherency matrix parameterized by a logarithmic gain times a boost.
Definition: ModeCoherency.h:38
const ScalarMath atanh(const ScalarMath &x)
Return a ScalarMath instance representing atanh(x)
Definition: ScalarMath.C:240
Scalar * get_beta()
Get beta.
Definition: ModeCoherency.C:99
void set_axis(UnitTangent *)
Set the model of the unit vector.
Definition: ModeCoherency.C:92
Pure virtual base class of scalar functions.
Definition: Scalar.h:24
virtual void copy(const Function *model)
Does the work for operator =.
Definition: Function.C:58
UnitTangent * get_axis()
Get the model of the unit vector.
Definition: ModeCoherency.C:86
Represents a unit vector in three-dimensional space.
Definition: UnitTangent.h:46
void init()
Works for the constructors.
Definition: ModeCoherency.C:24

Generated using doxygen 1.8.17