ATLAS Offline Software
Public Member Functions | List of all members
Trk::JacobianCartesianToPerigee Class Reference

Jacobian from cartesian parameters \( (p_x, p_y, p_z, E, x, y, z) \) to perigee parameters \( (d_0, z_0, \phi_0, \theta, q/p) \). More...

#include <JacobianCartesianToPerigee.h>

Inheritance diagram for Trk::JacobianCartesianToPerigee:
Collaboration diagram for Trk::JacobianCartesianToPerigee:

Public Member Functions

 JacobianCartesianToPerigee (const double px, const double py, const double pz, const double E, const double x, const double y, const double z, const double charge)
 

Detailed Description

Jacobian from cartesian parameters \( (p_x, p_y, p_z, E, x, y, z) \) to perigee parameters \( (d_0, z_0, \phi_0, \theta, q/p) \).

It needs the particle charge to provide the correct perigee \( q/p \) sign.

Author
Maaik.nosp@m.e.Li.nosp@m.mper@.nosp@m.cern.nosp@m..ch

Definition at line 28 of file JacobianCartesianToPerigee.h.

Constructor & Destructor Documentation

◆ JacobianCartesianToPerigee()

Trk::JacobianCartesianToPerigee::JacobianCartesianToPerigee ( const double  px,
const double  py,
const double  pz,
const double  E,
const double  x,
const double  y,
const double  z,
const double  charge 
)

Definition at line 12 of file JacobianCartesianToPerigee.cxx.

12  :
13  AmgMatrix(5,7)()
14 {
15  // initialize to zero
16  this->setZero();
17 
18  double ptot = std::sqrt(px*px+py*py+pz*pz);
19  double pt = std::sqrt(px*px+py*py);
20 
21  double tan_theta = pt/pz;
22 
23  double cos_phi = px/pt;
24  double sin_phi = py/pt;
25 
26  (*this)(0,4) = -sin_phi ; // dd0/dx
27  (*this)(0,5) = cos_phi ; // dd0/dy
28  (*this)(1,6) = 1.; // dz0/dz
29  (*this)(2,0) = -py/(px*px+py*py) ; // dphi/dpx
30  (*this)(2,1) = px/(px*px+py*py) ; // dphi/dpy
31  (*this)(3,0) = (cos_phi/pz)*(1./(1+tan_theta*tan_theta)); // dtheta/dpx
32  (*this)(3,1) = (sin_phi/pz)*(1./(1+tan_theta*tan_theta)); // dtheta/dpy
33  (*this)(3,2) = (-tan_theta/pz)*(1./(1+tan_theta*tan_theta)); // dtheta/dpz
34  (*this)(4,3) = -charge*E/(ptot*ptot*ptot); // dqOverP/dE
35 
36 }

The documentation for this class was generated from the following files:
Trk::py
@ py
Definition: ParamDefs.h:60
Trk::AmgMatrix
AmgMatrix(3, 3) NeutralParticleParameterCalculator
Definition: NeutralParticleParameterCalculator.cxx:233
test_pyathena.pt
pt
Definition: test_pyathena.py:11
Trk::pz
@ pz
global momentum (cartesian)
Definition: ParamDefs.h:61
Trk::px
@ px
Definition: ParamDefs.h:59
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
charge
double charge(const T &p)
Definition: AtlasPID.h:538