ATLAS Offline Software
|
#include <JacobianCurvilinearToLocal.h>
Public Member Functions | |
JacobianCurvilinearToLocal (const Trk::CurvilinearUVT &curvUVT, const Amg::Vector3D &locX, const Amg::Vector3D &locY, const Amg::Vector3D &locZ) | |
Constructor for straight line track model. More... | |
JacobianCurvilinearToLocal (const Amg::Vector3D &bfield, double qOp, double sinTheta, const CurvilinearUVT &curvUVT, const Amg::Vector3D &locX, const Amg::Vector3D &locY, const Amg::Vector3D &locZ) | |
Constructor for helix track model. More... | |
This class represents the jacobian for transforming from a curvilinear to a local frame
The curvilinear frame is defined as follows: Given a direction \( \vec t = \frac{\vec p }{|\vec p |} \) of a track at a specific point, the plane perpenticular to the track may be defined by two vectors \( (\vec u, \vec v) \), denoting \( \vec z \) as the global z-axis and defining: \( \vec{u} = \frac {\vec z \times \vec{t}}{|\vec z \times \vec{t}|} \) and
\( \vec{v} = \vec{t} \times \vec{u} \),
the unit vectors \( (\vec{curv_{i}}) = (\vec{u}, \vec{v}, \vec{t}) \) define at any point of the track a right-handed orthogonal coordinate system (the so-called curvilinear frame)
The local frame on a surface may be represented through two local vectors \( \vec{locX} \) and \( \vec{locY} \) within the plane and one perpenticular vector \( \vec{locZ} \) pointing along the surface's normal.
Detailed Description
The non-zero elements of the jacobian for the transformation between the curvilinear representation \( (u, v, \phi', \theta', q/p') \) and the local representations of the track parameters \( (locX, locY, \phi, \theta, q/p) \) can then be expressed as:
for the straight line case:
\( \frac{\partial locX}{\partial u} = \frac{\vec{locY} \cdot \vec{v}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial locX}{\partial v} = - \frac{\vec{locY} \cdot \vec{u}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial locY}{\partial u} = - \frac{\vec{locX} \cdot \vec{v}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial locY}{\partial v} = \frac{\vec{locX} \cdot \vec{u}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial \phi}{\partial \phi'} = 1 \)
\( \frac{\partial \theta}{\partial \theta'} = 1 \)
\( \frac{\partial (q/p)}{\partial (q/p)'} = 1 \)
and additionally for the helix case:
\( \frac{\partial\phi}{\partial u} = \frac{\alpha\cdot Q}{\sin\theta} \cdot (\vec{u}\cdot\vec{n})\frac{\vec{u}\cdot\vec{locZ}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial\phi{\partial v} = \frac{\alpha\cdot Q}{\sin\theta} \cdot (\vec{u}\cdot\vec{n})\frac{\vec{v}\cdot\vec{locZ}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial\theta}{\partial u} = -\alpha\cdot Q \cot (\vec{v}\cdot\vec{n})\frac{\vec{u}\cdot\vec{locZ}}{\vec{locZ} \cdot \vec{t}} \)
\( \frac{\partial\theta}{\partial v} = -\alpha\cdot Q \cot (\vec{v}\cdot\vec{n})\frac{\vec{v}\cdot\vec{locZ}}{\vec{locZ} \cdot \vec{t}}\)
Definition at line 74 of file JacobianCurvilinearToLocal.h.
Trk::JacobianCurvilinearToLocal::JacobianCurvilinearToLocal | ( | const Trk::CurvilinearUVT & | curvUVT, |
const Amg::Vector3D & | locX, | ||
const Amg::Vector3D & | locY, | ||
const Amg::Vector3D & | locZ | ||
) |
Constructor for straight line track model.
Calculates the Jacobian for straight line track model.
Definition at line 24 of file JacobianCurvilinearToLocal.cxx.
Trk::JacobianCurvilinearToLocal::JacobianCurvilinearToLocal | ( | const Amg::Vector3D & | bfield, |
double | qOp, | ||
double | sinTheta, | ||
const CurvilinearUVT & | curvUVT, | ||
const Amg::Vector3D & | locX, | ||
const Amg::Vector3D & | locY, | ||
const Amg::Vector3D & | locZ | ||
) |
Constructor for helix track model.
Calculates the Jacobian for helical track model.
Definition at line 45 of file JacobianCurvilinearToLocal.cxx.