14 #include "GaudiKernel/PhysicalConstants.h"
15 #include "GaudiKernel/MsgStream.h"
34 double locZdotCurvT =
locZ.dot(curvUVT.
curvT());
35 (*this)(0,0) = curvUVT.
curvV().dot(
locY)/locZdotCurvT;
36 (*this)(0,1) = - curvUVT.
curvU().dot(
locY)/locZdotCurvT;
37 (*this)(1,0) = - curvUVT.
curvV().dot(
locX)/locZdotCurvT;
38 (*this)(1,1) = curvUVT.
curvU().dot(
locX)/locZdotCurvT;
58 double oneOverZt = 1./
locZ.dot(curvUVT.
curvT());
68 double alpha =
n.mag();
70 double B = bfield.mag();
74 double alphaQ = alpha*Q;
76 double un = curvUVT.
curvU().dot(
n);
77 double vn = curvUVT.
curvV().dot(
n);
79 (*this)(0,0) = vy*oneOverZt;
80 (*this)(0,1) = - uy*oneOverZt;
81 (*this)(1,0) = - vx*oneOverZt;
82 (*this)(1,1) = ux*oneOverZt;
83 (*this)(2,0) = - alphaQ/sinTheta*un*uz*oneOverZt;
84 (*this)(2,1) = - alphaQ/sinTheta*un*vz*oneOverZt;
85 (*this)(3,0) = alphaQ*vn*uz*oneOverZt;
86 (*this)(3,1) = alphaQ*vn*vz*oneOverZt;
95 sl << std::setiosflags(std::ios::fixed);
96 sl << std::setprecision(6);
97 sl <<
MSG::DEBUG <<
"Trk::JacobianCurvilinearToLocal" << std::endl;
98 sl <<
"______________________________________________________________________" << std::endl;
99 for (
int irow = 0; irow<5; irow++){
101 sl << (jac)(irow,
icol);
102 if (irow < 4 ||
icol < 4 ) { sl <<
" "; }
106 sl <<
"______________________________________________________________________";
112 sl << std::setiosflags(std::ios::fixed);
113 sl << std::setprecision(7);
114 sl <<
"Trk::JacobianCurvilinearToLocal " << std::endl;
115 sl <<
"______________________________________________________________________" << std::endl;
116 for (
int irow = 0; irow<5; irow++){
118 sl << (jac)(irow,
icol);
119 if (irow < 4 ||
icol < 4 ) { sl <<
" ";}
123 sl <<
"______________________________________________________________________";