362 double xx,yy,zz,Det,Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz,Dx,Dy,Dz;
376 if (segments->GetEntries()==1) {
386 for (
int i=0; i<segments->GetEntries(); i++) {
394 double a = ax*ax+ay*ay+az*az;
395 double c = -ax*x-ay*y-az*z;
396 double b = (ax*ax+ay*ay);
400 Ax+=2.0*
w/b*(
a*(ay*ay+az*az) );
401 Bx+=2.0*
w/b*( -
a*ax*ay );
402 Cx+=2.0*
w/b*( -
a*ax*az );
403 Dx+=2.0*
w/b*( -(
a*x+c*ax)*(ax*ax-
a)-(
a*y+c*ay)*ax*ay-(
a*z+c*az)*az*ax );
405 Ay+=2.0*
w/b*( -
a*ay*ax );
406 By+=2.0*
w/b*(
a*(az*az+ax*ax) );
407 Cy+=2.0*
w/b*( -
a*ay*az );
408 Dy+=2.0*
w/b*( -(
a*y+c*ay)*(ay*ay-
a)-(
a*z+c*az)*ay*az-(
a*x+c*ax)*ax*ay );
410 Az+=2.0*
w/b*( -
a*az*ax );
411 Bz+=2.0*
w/b*( -
a*az*ay );
413 Dz+=2.0*
w/b*( -(
a*z+c*az)*(az*az-
a)-(
a*x+c*ax)*az*ax-(
a*y+c*ay)*ay*az );
417 Det=
fabs( Ax*(By*Cz-Cy*Bz)-Bx*(Ay*Cz-Cy*Az)+Cx*(Ay*Bz-By*Az) );
418 xx=( (By*Cz-Cy*Bz)*Dx-(Bx*Cz-Cx*Bz)*Dy+(Bx*Cy-Cx*By)*Dz)/Det;
419 yy=(-(Ay*Cz-Cy*Az)*Dx+(Ax*Cz-Cx*Az)*Dy-(Ax*Cy-Cx*Ay)*Dz)/Det;
420 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 a()
Definition: check_aligned.C:59
Float_t TX() const
Definition: EdbSegP.h:172
void PropagateTo(float z)
Definition: EdbSegP.cxx:292
Float_t X() const
Definition: EdbSegP.h:170
Float_t Z() const
Definition: EdbSegP.h:150
Float_t Y() const
Definition: EdbSegP.h:171
Float_t TY() const
Definition: EdbSegP.h:173
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
EdbSegP * s
Definition: tlg2pattern.C:32