SpinorJones.h
1//-*-C++-*-
2/***************************************************************************
3 *
4 * Copyright (C) 2008 by Willem van Straten
5 * Licensed under the Academic Free License version 2.1
6 *
7 ***************************************************************************/
8
9// psrchive/More/MEAL/MEAL/SpinorJones.h
10
11#ifndef __MEAL_SpinorJones_H
12#define __MEAL_SpinorJones_H
13
14/*
15 * It is necessary to include complex_math.h first in order to define true_math::finite(complex)
16 * before the Evaluable::evaluate method is encountered.
17 */
18
19#include "complex_math.h"
20#include "MEAL/Complex2.h"
21#include "MEAL/Spinor.h"
22#include "MEAL/Composite.h"
23
24namespace MEAL {
25
27
29 {
30
31 public:
32
34 SpinorJones ();
35
37 virtual void set_spinor (Spinor*);
38
40 virtual void set_spinorA (Spinor*);
41
43 virtual Spinor* get_spinorA () { return spinorA; }
44
46 virtual void set_spinorB (Spinor*);
47
49 virtual Spinor* get_spinorB () { return spinorB; }
50
51 std::string get_name () const;
52
53 protected:
54
56 virtual void calculate (Jones<double>& result,
57 std::vector< Jones<double> >*);
58
61
64
67
70
71 };
72
73}
74
75#endif
76
Pure virtual base class of all complex 2x2 matrix functions.
Definition Complex2.h:40
Parameter policy for composite functions.
Definition Composite.h:20
Template combines a reference to a Component and its Projection.
Definition Projection.h:60
SpinorJones()
Default constructor.
Definition SpinorJones.C:15
virtual void calculate(Jones< double > &result, std::vector< Jones< double > > *)
Calculate the Mueller matrix and its gradient.
Definition SpinorJones.C:79
virtual Spinor * get_spinorB()
Get spinor B.
Definition SpinorJones.h:49
virtual void set_spinor(Spinor *)
Set spinor A == spinor B.
Definition SpinorJones.C:24
std::string get_name() const
Return the name of the class.
Definition SpinorJones.C:19
Composite composite
Composite parameter policy.
Definition SpinorJones.h:66
virtual void set_spinorA(Spinor *)
Set spinor A.
Definition SpinorJones.C:30
Project< Spinor > spinorB
Spinor B.
Definition SpinorJones.h:63
virtual void set_spinorB(Spinor *)
Set spinor B.
Definition SpinorJones.C:35
virtual Spinor * get_spinorA()
Get spinor A.
Definition SpinorJones.h:43
Project< Spinor > spinorA
Spinor A.
Definition SpinorJones.h:60
Pure virtual base class of scalar functions.
Definition Spinor.h:22
Namespace in which all modeling and calibration related code is declared.
Definition ExampleComplex2.h:16

Generated using doxygen 1.14.0