57 while (_p4parent.
d3mag()!=0) {
64 double theta=
Angles(_p4parent,1);
65 double phi=
Angles(_p4parent,2);
90if(i==1)
return _rotatep4p;
91if(i==2)
return _rotatep4d;
103double xp=
x*cp*ct+y*sp*ct-z*st,yp= -
x*sp+y*cp,zp=
x*cp*st+y*sp*st+z*ct;
110double rxy=sqrt(pow(bbst.
get(1),2.)+pow(bbst.
get(2),2.));
111 if(bbst.
d3mag()<=1e-10) {
113 else if (i==1)
return 0.;
114 else if (i==2)
return 0.;
115 else {cout<<
"Angles(i): i<=2"<<endl;abort();}
118 if(i==0)
return bbst.
d3mag();
121 else {cout<<
"Angles(i): i<=2"<<endl;abort();}
124 double theta=acos(bbst.
get(3)/bbst.
d3mag());
126 if(fabs(csphi)>1.0) csphi=csphi/fabs(csphi);
127 double phi=acos(csphi);
128 if(bbst.
get(2)<0.0) phi=2*3.1415926-phi;
129 if(i==0)
return bbst.
d3mag();
130 else if (i==1)
return theta;
131 else if (i==2)
return phi;
132 else {cout<<
"Angles(i): i<=2"<<endl;abort();}
138double djmn(
int j,
int m,
int n,
double theta){
139int j2=j*2,m2=m*2,
n2=
n*2;
144double djmn(
double j,
double m,
double n,
double theta){
145int j2=(int)(j*2*1.1),m2=(int)(m*2*1.1),
n2=(int)(
n*2*1.1);
152int j2=j*2,m2=m*2,
n2=
n*2;
166int j2=(int)(j*2*1.1),m2=(int)(m*2*1.1),
n2=(int)(
n*2*1.1);
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
double djmn(int j, int m, int n, double theta)
double sin(const BesAngle a)
double cos(const BesAngle a)
EvtVector4R checkst(int i)
EvtVector4R Helrotate(EvtVector4R p1, double phi, double theta)
EvtVector4R checkparent()
double Angles(EvtVector4R, int)
void set(int i, double d)
static double d(int j, int m1, int m2, double theta)