ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::JacobianPhiThetaQoverPToPxyz Class Reference

Jacobian for the transformation of momentum in polar coordinates \( (\phi,\theta,qOverP)\) to momentum in Cartesian coordinates \((px, py, pz)\) : More...

#include <JacobianPhiThetaQoverPToPxyz.h>

Inheritance diagram for Trk::JacobianPhiThetaQoverPToPxyz:
Collaboration diagram for Trk::JacobianPhiThetaQoverPToPxyz:

Public Member Functions

 JacobianPhiThetaQoverPToPxyz (const double phi, const double theta, const double QoverP)
 ~JacobianPhiThetaQoverPToPxyz ()

Detailed Description

Jacobian for the transformation of momentum in polar coordinates \( (\phi,\theta,qOverP)\) to momentum in Cartesian coordinates \((px, py, pz)\) :

  • \( \frac{\partial px}{\partial \phi} = -\frac{sin \phi \cdot sin \theta}{|qOverP|} \)
  • \( \frac{\partial px}{\partial \theta} = \frac{cos \phi \cdot cos \theta}{|qOverP|} \)
  • \( \frac{\partial px}{\partial qOverP} = -(+)\frac{cos \phi \cdot sin \theta}{qOverP \mathrm{^2}} \)
    the sign depends on the charge sign (if charge > 0 sign = " - ")
  • \( \frac{\partial py}{\partial \phi} = \frac{cos \phi \cdot sin \theta}{|qOverP|} \)
  • \( \frac{\partial py}{\partial \theta} = \frac{sin \phi \cdot cos \theta}{|qOverP|} \)
  • \( \frac{\partial py}{\partial qOverP} = -(+)\frac{sin \phi \cdot sin \theta}{qOverP \mathrm{^2}} \)
  • \( \frac{\partial pz}{\partial \phi} = 0 \)
  • \( \frac{\partial pz}{\partial \theta} = -\frac{sin \theta}{|qOverP|} \)
  • \( \frac{\partial pz}{\partial qOverP} = -(+)\frac{cos \theta}{qOverP \mathrm{^2}} \)
Author
Tatja.nosp@m.na.L.nosp@m.enz@c.nosp@m.ern..nosp@m.ch

Definition at line 36 of file JacobianPhiThetaQoverPToPxyz.h.

Constructor & Destructor Documentation

◆ JacobianPhiThetaQoverPToPxyz()

Trk::JacobianPhiThetaQoverPToPxyz::JacobianPhiThetaQoverPToPxyz ( const double phi,
const double theta,
const double QoverP )

Definition at line 12 of file JacobianPhiThetaQoverPToPxyz.cxx.

12 :
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}
#define AmgMatrix(rows, cols)
int sign(int a)
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ phi
Definition ParamDefs.h:75

◆ ~JacobianPhiThetaQoverPToPxyz()

Trk::JacobianPhiThetaQoverPToPxyz::~JacobianPhiThetaQoverPToPxyz ( )
inline

Definition at line 39 of file JacobianPhiThetaQoverPToPxyz.h.

39{}

The documentation for this class was generated from the following files: