#include <EvtdFunctionSingle.hh>
Definition at line 24 of file EvtdFunctionSingle.hh.
◆ EvtdFunctionSingle()
| EvtdFunctionSingle::EvtdFunctionSingle |
( |
| ) |
|
Definition at line 29 of file EvtdFunctionSingle.cc.
29 {
30 _j = 0;
31 _m1 = 0;
32 _m2 = 0;
33 _coef = 0;
34 _kmin = 0;
35 _kmax = 0;
36}
◆ ~EvtdFunctionSingle()
| EvtdFunctionSingle::~EvtdFunctionSingle |
( |
| ) |
|
◆ d()
| double EvtdFunctionSingle::d |
( |
int | j, |
|
|
int | m1, |
|
|
int | m2, |
|
|
double | theta ) |
Definition at line 80 of file EvtdFunctionSingle.cc.
80 {
81
82
83
84 assert( j == _j );
87
88 double c2 =
cos( 0.5 * theta );
89 double s2 =
sin( 0.5 * theta );
90
92
93 int k;
94 for ( k = _kmin; k <= _kmax; k += 2 )
95 {
96 d += _coef[( k - _kmin ) / 2] * pow( c2, ( 2 * _j - 2 * k +
m2 -
m1 ) / 2 ) *
97 pow( s2, ( 2 * k -
m2 +
m1 ) / 2 );
98 }
99
101}
double sin(const BesAngle a)
double cos(const BesAngle a)
double d(int j, int m1, int m2, double theta)
Referenced by EvtdFunction::d(), and d().
◆ init()
| void EvtdFunctionSingle::init |
( |
int | j, |
|
|
int | m1, |
|
|
int | m2 ) |
Definition at line 42 of file EvtdFunctionSingle.cc.
42 {
43
46
47 _j = j;
50
51 _kmin = _m2 - _m1;
52 _kmax = _j - _m1;
53
54 assert( _kmin <= _kmax );
55
56 _coef = new double[( _kmax - _kmin ) / 2 + 1];
57
58 int k;
59
60 for ( k = _kmin; k <= _kmax; k += 2 )
61 {
62 int sign = 1;
63 if ( ( k - _m2 + _m1 ) % 4 != 0 ) sign = -sign;
64
65 double fkwTmp = fact( ( _j + _m2 ) / 2 ) * fact( ( _j - _m2 ) / 2 ) *
66 fact( ( _j + _m1 ) / 2 ) * fact( ( _j - _m1 ) / 2 );
67 _coef[( k - _kmin ) / 2] =
68 sign * sqrt( fkwTmp ) /
69 ( fact( ( _j + _m2 - k ) / 2 ) * fact( k / 2 ) * fact( ( _j - _m1 - k ) / 2 ) *
70 fact( ( k - _m2 + _m1 ) / 2 ) );
71
72
73
74
75
76
77 }
78}
Referenced by EvtdFunction::d().
The documentation for this class was generated from the following files: