ATLAS Offline Software
EigenP4JacobianPxPyPzM2PxPyPzE.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 M) :
14  AmgMatrix(4,4)()
15 {
16  double pt2 = px*px + py*py;
17  double p2 = pt2 + pz*pz;
18  double E = std::sqrt( std::max( 0., M*M + p2));
19 
20  this->setZero();
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/E; // dM/dpx
26  (*this)(3,1) = py/E; // dM/dpy
27  (*this)(3,2) = pz/E; // dM/dpz
28  (*this)(3,3) = M/E; // dM/dE
29 }
test_pyathena.px
px
Definition: test_pyathena.py:18
max
#define max(a, b)
Definition: cfImp.cxx:41
EigenP4JacobianPxPyPzM2PxPyPzE::EigenP4JacobianPxPyPzM2PxPyPzE
EigenP4JacobianPxPyPzM2PxPyPzE(double px, double py, double pz, double M)
Definition: EigenP4JacobianPxPyPzM2PxPyPzE.cxx:10
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
EigenP4JacobianPxPyPzM2PxPyPzE.h