ATLAS Offline Software
EigenP4JacobianPxPyPzE2EEtaPhiM.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 p = std::sqrt(p2);
19  double M = std::sqrt( std::max( 0., E*E - p2));
20 
21  this->setZero();
22  (*this)(0,3) = 1; // dE/dE
23 
24  (*this)(1,0) = -px*pz/(p*pt2); // deta/dpx
25  (*this)(1,1) = -py*pz/(p*pt2); // deta/dpy
26  (*this)(1,2) = 1/p; // deta/dpz
27 
28  (*this)(2,0) = -py/pt2; // dphi/dpx
29  (*this)(2,1) = px/pt2; // dphi/dpy
30 
31  (*this)(3,0) = -px/M; // dM/dpx
32  (*this)(3,1) = -py/M; // dM/dpy
33  (*this)(3,2) = -pz/M; // dM/dpz
34  (*this)(3,3) = E/M; // dM/dE
35 }
test_pyathena.px
px
Definition: test_pyathena.py:18
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
EigenP4JacobianPxPyPzE2EEtaPhiM.h
AmgMatrix
#define AmgMatrix(rows, cols)
Definition: EventPrimitives.h:51
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
EigenP4JacobianPxPyPzE2EEtaPhiM::EigenP4JacobianPxPyPzE2EEtaPhiM
EigenP4JacobianPxPyPzE2EEtaPhiM()
Definition: EigenP4JacobianPxPyPzE2EEtaPhiM.h:14
Amg::py
@ py
Definition: GeoPrimitives.h:39
VP1PartSpect::E
@ E
Definition: VP1PartSpectFlags.h:21