ATLAS Offline Software
Tracking
TrkEvent
TrkEventPrimitives
src
JacobianPerigeeToCartesian.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// JacobianPerigeeToCartesian.cxx, (c) ATLAS Detector software
8
9
#include "
TrkEventPrimitives/JacobianPerigeeToCartesian.h
"
10
#include <cmath>
11
12
Trk::JacobianPerigeeToCartesian::JacobianPerigeeToCartesian
(
const
double
d0
,
13
const
double
,
14
const
double
phi0
,
15
const
double
theta
,
16
const
double
qOverP
,
17
const
double
mass
):
18
AmgMatrix
(7,5)()
19
{
20
21
// initialize to zero
22
this->setZero();
23
24
double
sinp =
std::sin
(
phi0
);
25
double
cosp =
std::cos
(
phi0
);
26
double
sint =
std::sin
(
theta
);
27
double
cost
=
std::cos
(
theta
);
28
double
rho
= std::fabs(
qOverP
);
29
int
charge
=+1;
30
if
(
qOverP
<0) {
charge
= -1;}
31
32
// transformation of track parameters
33
double
px
= cosp*sint/
rho
;
34
double
py
= sinp*sint/
rho
;
35
double
pz
=
cost
/
rho
;
36
double
E
= std::sqrt(1/
rho
/
rho
+
mass
*
mass
);
37
38
// I don't need this
39
//double x = xref[0] - d0*sinp;
40
//double y = xref[1] + d0*cosp;
41
//double z = xref[2] + z0;
42
43
(*this)(0,2) = -
py
;
// dpx/dphi0
44
(*this)(0,3) =
pz
*cosp;
// dpx/dtheta
45
(*this)(0,4) = -
charge
*
px
/
rho
;
// dpx/dqOverP
46
(*this)(1,2) =
px
;
// dpy/dphi0
47
(*this)(1,3) =
pz
*sinp;
// dpy/dtheta
48
(*this)(1,4) = -
charge
*
py
/
rho
;
// dpy/dqOverP
49
(*this)(2,3) = -sint/
rho
;
// dpz/dtheta
50
(*this)(2,4) = -
charge
*
pz
/
rho
;
// dpz/dqOverP
51
(*this)(3,4) = -
charge
*1./(
E
*
rho
*
rho
*
rho
);
// dE/dqOverP
52
(*this)(4,0) = -sinp;
// dx/dd0
53
(*this)(4,2) = -
d0
*cosp;
// dx/dphi0
54
(*this)(5,0) = +cosp;
// dy/dd0
55
(*this)(5,2) = -
d0
*sinp;
// dy/dphi0
56
(*this)(6,1) = 1.;
//dz/dz0
57
58
}
59
cost
int cost(std::vector< std::string > &files, node &n, const std::string &directory="", bool deleteref=false, bool relocate=false)
Definition:
hcg.cxx:921
Trk::py
@ py
Definition:
ParamDefs.h:60
Base_Fragment.mass
mass
Definition:
Sherpa_i/share/common/Base_Fragment.py:59
InDetAccessor::phi0
@ phi0
Definition:
InDetAccessor.h:33
theta
Scalar theta() const
theta method
Definition:
AmgMatrixBasePlugin.h:75
drawFromPickle.cos
cos
Definition:
drawFromPickle.py:36
InDetAccessor::qOverP
@ qOverP
perigee
Definition:
InDetAccessor.h:35
Trk::pz
@ pz
global momentum (cartesian)
Definition:
ParamDefs.h:61
AmgMatrix
#define AmgMatrix(rows, cols)
Definition:
EventPrimitives.h:49
Trk::theta
@ theta
Definition:
ParamDefs.h:66
TRT::Track::d0
@ d0
Definition:
InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
Trk::px
@ px
Definition:
ParamDefs.h:59
JacobianPerigeeToCartesian.h
Trk::d0
@ d0
Definition:
ParamDefs.h:63
VP1PartSpect::E
@ E
Definition:
VP1PartSpectFlags.h:21
charge
double charge(const T &p)
Definition:
AtlasPID.h:756
Trk::JacobianPerigeeToCartesian::JacobianPerigeeToCartesian
JacobianPerigeeToCartesian(const double d0, const double z0, const double phi0, const double theta, const double qOverP, const double mass=105.6583692)
Definition:
JacobianPerigeeToCartesian.cxx:12
Trk::qOverP
@ qOverP
perigee
Definition:
ParamDefs.h:67
drawFromPickle.sin
sin
Definition:
drawFromPickle.py:36
Trk::phi0
@ phi0
Definition:
ParamDefs.h:65
fitman.rho
rho
Definition:
fitman.py:532
Generated on Tue Dec 24 2024 21:12:12 for ATLAS Offline Software by
1.8.18