ATLAS Offline Software
JacobianPhiThetaQoverPToPxyz.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // JacobianPhiThetaQoverPToPxyz.cxx, (c) ATLAS Detector software
8 
10 #include <cmath>
11 
13  AmgMatrix(3,3)()
14 {
15  double p = 1/std::fabs(qOverP);
16  double sign = - std::fabs(qOverP)/qOverP;
17  (*this)(0,0) = -std::sin(phi)*std::sin(theta)/std::fabs(qOverP);
18  (*this)(0,1) = std::cos(phi)*std::cos(theta)/std::fabs(qOverP);
19  (*this)(0,2) = sign*std::pow(p,2)*std::cos(phi)*std::sin(theta);
20  (*this)(1,0) = std::cos(phi)*std::sin(theta)/std::fabs(qOverP);
21  (*this)(1,1) = std::sin(phi)*std::cos(theta)/std::fabs(qOverP);
22  (*this)(1,2) = sign*std::pow(p,2)*std::sin(phi)*std::sin(theta);
23  (*this)(2,0) = 0.;
24  (*this)(2,1) = -std::sin(theta)/std::fabs(qOverP);
25  (*this)(2,2) = sign*std::pow(p,2)*std::cos(theta);
26 
27 }
28 
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
InDetAccessor::qOverP
@ qOverP
perigee
Definition: InDetAccessor.h:35
AmgMatrix
#define AmgMatrix(rows, cols)
Definition: EventPrimitives.h:49
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Trk::theta
@ theta
Definition: ParamDefs.h:66
sign
int sign(int a)
Definition: TRT_StrawNeighbourSvc.h:107
Trk::JacobianPhiThetaQoverPToPxyz::JacobianPhiThetaQoverPToPxyz
JacobianPhiThetaQoverPToPxyz(const double phi, const double theta, const double QoverP)
Definition: JacobianPhiThetaQoverPToPxyz.cxx:12
JacobianPhiThetaQoverPToPxyz.h
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
Trk::phi
@ phi
Definition: ParamDefs.h:75
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15