ATLAS Offline Software
EigenP4JacobianPxPyPzE2PxPyPzM.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 py,
12  double pz,
13  double E) :
14  AmgMatrix(4,4)()
15 {
16  double pt2 = px*px + py*py;
17  double p2 = pt2 + pz*pz;
18  double M = std::sqrt( std::max( 0., E*E - p2));
19  this->setZero();
20 
21  (*this)(0,0) = 1; // dpx/dpx
22  (*this)(1,1) = 1; // dpy/dpy
23  (*this)(2,2) = 1; // dpz/dpz
24 
25  (*this)(3,0) = -px/M; // dM/dpx
26  (*this)(3,1) = -py/M; // dM/dpy
27  (*this)(3,2) = -pz/M; // dM/dpz
28  (*this)(3,3) = E/M; // dM/dE
29 }
test_pyathena.px
px
Definition: test_pyathena.py:18
max
#define max(a, b)
Definition: cfImp.cxx:41
EigenP4JacobianPxPyPzE2PxPyPzM.h
AmgMatrix
#define AmgMatrix(rows, cols)
Definition: EventPrimitives.h:51
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
Amg::py
@ py
Definition: GeoPrimitives.h:39
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21
EigenP4JacobianPxPyPzE2PxPyPzM::EigenP4JacobianPxPyPzE2PxPyPzM
EigenP4JacobianPxPyPzE2PxPyPzM(double px, double py, double pz, double E)
Definition: EigenP4JacobianPxPyPzE2PxPyPzM.cxx:10