CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
EllipticIntegral.hh
Go to the documentation of this file.
1// -*- C++ -*-
2// $Id:
3//---------------------EllipticIntegral---------------------------------------//
4// //
5// //
6// Joe Boudreau, September 2001 //
7// //
8//-------------------------------------------------------------------------- //
9#ifndef EllipticIntegral_h
10#define EllipticIntegral_h 1
11#include "CLHEP/GenericFunctions/AbsFunction.hh"
12#include "CLHEP/GenericFunctions/Parameter.hh"
13
14namespace Genfun {
15namespace EllipticIntegral {
16
17 class FirstKind : public AbsFunction {
18
20
21 public:
22
23 // Constructor:
25
26 // Copy constructor
27 FirstKind(const FirstKind &right);
28
29 // Destructor
30 virtual ~FirstKind();
31
32 // Retreive function value
33 virtual double operator ()(double argument) const override;
34 virtual double operator ()(const Argument & a) const override {return operator() (a[0]);}
35
36 // Get the k-parameter. Default value = 1.0.
38 const Parameter & k() const;
39
40 private:
41
42 // It is illegal to assign an adjustable constant
43 const FirstKind & operator=(const FirstKind &right);
44
45 Parameter _k; // the k parameter
46
47 };
48
49 class SecondKind : public AbsFunction {
50
52
53 public:
54
55 // Constructor:
57
58 // Copy constructor
59 SecondKind(const SecondKind &right);
60
61 // Destructor
62 virtual ~SecondKind();
63
64 // Retreive function value
65 virtual double operator ()(double argument) const override;
66 virtual double operator ()(const Argument & a) const override {return operator() (a[0]);}
67
68 // Get the k-parameter. Default value = 1.0.
70 const Parameter & k() const;
71
72 private:
73
74 // It is illegal to assign an adjustable constant
75 const SecondKind & operator=(const SecondKind &right);
76
77 Parameter _k; // the k parameter
78
79 };
80
81 class ThirdKind : public AbsFunction {
82
84
85 public:
86
87 // Constructor:
89
90 // Copy constructor
91 ThirdKind(const ThirdKind &right);
92
93 // Destructor
94 virtual ~ThirdKind();
95
96 // Retreive function value
97 virtual double operator ()(double argument) const override;
98 virtual double operator ()(const Argument & a) const override {return operator() (a[0]);}
99
100 // Get the k-parameter. Default value = 1.0.
102 const Parameter & k() const;
103
104 // Get the n-parameter. Default value = 1.0.
106 const Parameter & n() const;
107
108 private:
109
110 // It is illegal to assign an adjustable constant
111 const ThirdKind & operator=(const ThirdKind &right);
112
113 Parameter _k; // the k parameter
114 Parameter _n; // the n parameter
115
116 };
117
118} // end namespace EllipticIntegral
119} // end namespace Genfun
120
121#include "CLHEP/GenericFunctions/EllipticIntegral.icc"
122#endif
#define FUNCTION_OBJECT_DEF(classname)
Definition: AbsFunction.hh:143
FirstKind(const FirstKind &right)
const Parameter & k() const
virtual double operator()(double argument) const override
SecondKind(const SecondKind &right)
virtual double operator()(double argument) const override
const Parameter & k() const
const Parameter & n() const
const Parameter & k() const
ThirdKind(const ThirdKind &right)
virtual double operator()(double argument) const override
Definition: Abs.hh:14