ATLAS Offline Software
EigenP4JacobianEEtaPhiM2PxPyPzE.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <cmath>
8 #include <algorithm>
9 
11  double eta,
12  double phi,
13  double M) :
14  AmgMatrix(4,4)()
15 {
16  double t = std::exp(-eta); // == tg(theta/2)
17  double P = std::sqrt( std::max( 0., E*E - M*M));
18  double u = 1+t*t;
19  double cosTheta = (1-t*t)/u;
20  double sinTheta = 2*t/u;
21  double sinPhi = std::sin(phi);
22  double cosPhi = std::cos(phi);
23  double pt = P * sinTheta;
24 
25  this->setZero();
26 
27  (*this)(0,0) = E/P * sinTheta*cosPhi; // dpx/dE
28  (*this)(1,0) = E/P * sinTheta*sinPhi; // dpy/dE
29  (*this)(2,0) = E/P * cosTheta; // dpz/dE
30  (*this)(3,0) = 1; // dE/dE
31 
32  (*this)(0,1) = -P * cosPhi * cosTheta*sinTheta; // dpx/deta
33  (*this)(1,1) = -P * sinPhi * cosTheta*sinTheta; // dpy/deta
34  (*this)(2,1) = P * sinTheta*sinTheta; // dpz/deta;
35 
36  (*this)(0,2) = -pt * sinPhi; // dpx/dphi
37  (*this)(1,2) = pt * cosPhi; // dpy/dphi
38 
39  (*this)(0,3) = -M/P * sinTheta*cosPhi; // dpx/dM
40  (*this)(1,3) = -M/P * sinTheta*sinPhi; // dpy/dM
41  (*this)(2,3) = -M/P * cosTheta; // dpz/dM
42 }
max
#define max(a, b)
Definition: cfImp.cxx:41
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
test_pyathena.pt
pt
Definition: test_pyathena.py:11
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
AmgMatrix
#define AmgMatrix(rows, cols)
Definition: EventPrimitives.h:51
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
EigenP4JacobianEEtaPhiM2PxPyPzE::EigenP4JacobianEEtaPhiM2PxPyPzE
EigenP4JacobianEEtaPhiM2PxPyPzE(double E, double eta, double phi, double M)
Definition: EigenP4JacobianEEtaPhiM2PxPyPzE.cxx:10
EigenP4JacobianEEtaPhiM2PxPyPzE.h
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36