ATLAS Offline Software
Event
FourMom
src
EigenP4JacobianEEtaPhiM2PxPyPzE.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
FourMom/EigenP4JacobianEEtaPhiM2PxPyPzE.h
"
6
7
#include <cmath>
8
#include <algorithm>
9
10
EigenP4JacobianEEtaPhiM2PxPyPzE::EigenP4JacobianEEtaPhiM2PxPyPzE
(
double
E
,
11
double
eta
,
12
double
phi
,
13
double
M) :
14
AmgMatrix
(4,4)()
15
{
16
double
t
=
std::exp
(-
eta
);
// == tg(theta/2)
17
double
P
= std::sqrt(
std::max
( 0.,
E
*
E
- M*M));
18
double
u
= 1+
t
*
t
;
19
double
cosTheta = (1-
t
*
t
)/
u
;
20
double
sinTheta = 2*
t
/
u
;
21
double
sinPhi =
std::sin
(
phi
);
22
double
cosPhi =
std::cos
(
phi
);
23
double
pt
=
P
* sinTheta;
24
25
this->setZero();
26
27
(*this)(0,0) =
E
/
P
* sinTheta*cosPhi;
// dpx/dE
28
(*this)(1,0) =
E
/
P
* sinTheta*sinPhi;
// dpy/dE
29
(*this)(2,0) =
E
/
P
* cosTheta;
// dpz/dE
30
(*this)(3,0) = 1;
// dE/dE
31
32
(*this)(0,1) = -
P
* cosPhi * cosTheta*sinTheta;
// dpx/deta
33
(*this)(1,1) = -
P
* sinPhi * cosTheta*sinTheta;
// dpy/deta
34
(*this)(2,1) =
P
* sinTheta*sinTheta;
// dpz/deta;
35
36
(*this)(0,2) = -
pt
* sinPhi;
// dpx/dphi
37
(*this)(1,2) =
pt
* cosPhi;
// dpy/dphi
38
39
(*this)(0,3) = -M/
P
* sinTheta*cosPhi;
// dpx/dM
40
(*this)(1,3) = -M/
P
* sinTheta*sinPhi;
// dpy/dM
41
(*this)(2,3) = -M/
P
* cosTheta;
// dpz/dM
42
}
phi
Scalar phi() const
phi method
Definition:
AmgMatrixBasePlugin.h:67
eta
Scalar eta() const
pseudorapidity method
Definition:
AmgMatrixBasePlugin.h:83
max
constexpr double max()
Definition:
ap_fixedTest.cxx:33
DMTest::P
P_v1 P
Definition:
P.h:23
test_pyathena.pt
pt
Definition:
test_pyathena.py:11
read_hist_ntuple.t
t
Definition:
read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition:
drawFromPickle.py:36
drawFromPickle.exp
exp
Definition:
drawFromPickle.py:36
Trk::u
@ u
Enums for curvilinear frames.
Definition:
ParamDefs.h:77
AmgMatrix
#define AmgMatrix(rows, cols)
Definition:
EventPrimitives.h:49
VP1PartSpect::E
@ E
Definition:
VP1PartSpectFlags.h:21
EigenP4JacobianEEtaPhiM2PxPyPzE::EigenP4JacobianEEtaPhiM2PxPyPzE
EigenP4JacobianEEtaPhiM2PxPyPzE(double E, double eta, double phi, double M)
Definition:
EigenP4JacobianEEtaPhiM2PxPyPzE.cxx:10
EigenP4JacobianEEtaPhiM2PxPyPzE.h
drawFromPickle.sin
sin
Definition:
drawFromPickle.py:36
Generated on Fri Jan 10 2025 21:09:44 for ATLAS Offline Software by
1.8.18