ATLAS Offline Software
Loading...
Searching...
No Matches
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}
#define AmgMatrix(rows, cols)