38 double p = pvec.
mag(),
p2 = p *
p;
39 double lambda = 0.5 *
M_PI - pvec.
theta();
41 double sinlambda =
sin(lambda), coslambda =
cos(lambda);
42 double sinphi =
sin(phi), cosphi =
cos(phi);
44 theJacobian(1, 3) = 1.;
45 theJacobian(2, 4) = 1.;
46 theJacobian(3, 0) = -q *
p2 * coslambda * cosphi;
47 theJacobian(3, 1) = -p * sinlambda * cosphi;
48 theJacobian(3, 2) = -p * coslambda * sinphi;
49 theJacobian(4, 0) = -q *
p2 * coslambda * sinphi;
50 theJacobian(4, 1) = -p * sinlambda * sinphi;
51 theJacobian(4, 2) = p * coslambda * cosphi;
52 theJacobian(5, 0) = -q *
p2 * sinlambda;
53 theJacobian(5, 1) = p * coslambda;
54 theJacobian(5, 2) = 0.;
58 theJacobian = R * theJacobian;
70 double px = pvec.
x(),
py = pvec.
y(), pz = pvec.
z();
96 theJacobian(0, 3) = -q * px /
p3;
97 theJacobian(0, 4) = -q *
py /
p3;
98 theJacobian(0, 5) = -q * pz /
p3;
101 theJacobian(1, 3) = -(px * pz) / (pt * p2);
102 theJacobian(1, 4) = -(
py * pz) / (pt * p2);
103 theJacobian(1, 5) = pt /
p2;
104 theJacobian(2, 3) = -
py /
pt2;
105 theJacobian(2, 4) = px /
pt2;
106 theJacobian(2, 5) = 0.;
108 theJacobian(3, 1) = 1.;
109 theJacobian(4, 2) = 1.;
110 theJacobian = theJacobian *
R;
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
AlgebraicMatrix65 jacobianCurvilinearToCartesian(const GlobalVector &momentum, int q)
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
AlgebraicMatrix56 jacobianCartesianToCurvilinear(const GlobalVector &momentum, int q)
Geom::Theta< T > theta() const
ROOT::Math::SMatrix< double, 5, 6, ROOT::Math::MatRepStd< double, 5, 6 > > AlgebraicMatrix56
Cos< T >::type cos(const T &t)
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepStd< double, 6, 6 > > AlgebraicMatrix66
Vector3DBase unit() const
ROOT::Math::SMatrix< double, 6, 5, ROOT::Math::MatRepStd< double, 6, 5 > > AlgebraicMatrix65