ATLAS Offline Software
Loading...
Searching...
No Matches
P4JacobianPxPyPzE2EEtaPhiM.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 HepMatrix(4,4,0)
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)[0][3] = 1; // dE/dE
22
23 (*this)[1][0] = -px*pz/(p*pt2); // deta/dpx
24 (*this)[1][1] = -py*pz/(p*pt2); // deta/dpy
25 (*this)[1][2] = 1/p; // deta/dpz
26
27 (*this)[2][0] = -py/pt2; // dphi/dpx
28 (*this)[2][1] = px/pt2; // dphi/dpy
29
30 (*this)[3][0] = -px/M; // dM/dpx
31 (*this)[3][1] = -py/M; // dM/dpy
32 (*this)[3][2] = -pz/M; // dM/dpz
33 (*this)[3][3] = E/M; // dM/dE
34}
P4JacobianPxPyPzE2EEtaPhiM(double px, double py, double pz, double E)