10 double xx,yy,zz,Det,Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz,Dx,Dy,Dz;
24 if (segments->GetEntries()==1) {
34 for (
int i=0; i<segments->GetEntries(); i++) {
42 double a = ax*ax+ay*ay+az*az;
43 double c = -ax*x-ay*y-az*z;
44 double b = (ax*ax+ay*ay);
48 Ax+=2.0*
w/b*(
a*(ay*ay+az*az) );
49 Bx+=2.0*
w/b*( -
a*ax*ay );
50 Cx+=2.0*
w/b*( -
a*ax*az );
51 Dx+=2.0*
w/b*( -(
a*x+c*ax)*(ax*ax-
a)-(
a*y+c*ay)*ax*ay-(
a*z+c*az)*az*ax );
53 Ay+=2.0*
w/b*( -
a*ay*ax );
54 By+=2.0*
w/b*(
a*(az*az+ax*ax) );
55 Cy+=2.0*
w/b*( -
a*ay*az );
56 Dy+=2.0*
w/b*( -(
a*y+c*ay)*(ay*ay-
a)-(
a*z+c*az)*ay*az-(
a*x+c*ax)*ax*ay );
58 Az+=2.0*
w/b*( -
a*az*ax );
59 Bz+=2.0*
w/b*( -
a*az*ay );
61 Dz+=2.0*
w/b*( -(
a*z+c*az)*(az*az-
a)-(
a*x+c*ax)*az*ax-(
a*y+c*ay)*ay*az );
65 Det=
fabs( Ax*(By*Cz-Cy*Bz)-Bx*(Ay*Cz-Cy*Az)+Cx*(Ay*Bz-By*Az) );
66 xx=( (By*Cz-Cy*Bz)*Dx-(Bx*Cz-Cx*Bz)*Dy+(Bx*Cy-Cx*By)*Dz)/Det;
67 yy=(-(Ay*Cz-Cy*Az)*Dx+(Ax*Cz-Cx*Az)*Dy-(Ax*Cy-Cx*Ay)*Dz)/Det;
68 zz=( (Ay*Bz-By*Az)*Dx-(Ax*Bz-Bx*Az)*Dy+(Ax*By-Bx*Ay)*Dz)/Det;
Expr< UnaryOp< Fabs< T >, Expr< A, T, D >, T >, T, D > fabs(const Expr< A, T, D > &rhs)
Definition: UnaryOperators.hh:96
void PropagateTo(float z)
Definition: EdbSegP.cxx:292
Definition: EdbVertex.h:68
void SetXYZ(float x, float y, float z)
Definition: EdbVertex.h:157
void w(int rid=2, int nviews=2)
Definition: test.C:27