11 #include <tracking/dataobjects/ExtHit.h>
14 #include <TMatrixDSym.h>
24 m_DetectorID(
Const::EDetector::invalidDetector),
27 m_BackwardPropagation(false),
36 for (
int k = 0; k < 21; ++k) {
43 const TVector3& position,
const TVector3& momentum,
const TMatrixDSym& covariance) :
46 m_DetectorID(detectorID),
49 m_BackwardPropagation(backwardPropagation),
59 for (
int i = 0; i < 6; ++i) {
60 for (
int j = 0; j <= i; ++j) {
68 const G4ThreeVector& position,
const G4ThreeVector& momentum,
const G4ErrorSymMatrix& covariance) :
71 m_DetectorID(detectorID),
74 m_BackwardPropagation(backwardPropagation),
84 for (
int i = 0; i < 6; ++i) {
85 for (
int j = 0; j <= i; ++j) {
94 m_PdgCode(h.m_PdgCode),
95 m_DetectorID(h.m_DetectorID),
106 for (
int k = 0; k < 21; ++k) {
125 for (
int k = 0; k < 21; ++k) {
136 for (
int i = 0; i < 6; ++i) {
137 for (
int j = 0; j <= i; ++j) {
146 const G4ThreeVector& momentum,
const G4ErrorSymMatrix& covariance)
157 for (
int i = 0; i < 6; ++i) {
158 for (
int j = 0; j <= i; ++j) {
178 TMatrixDSym covariance(3);
186 double perp = sqrt(perpSq);
188 double r = sqrt(rSq);
189 TMatrixD jacobian(3, 3);
195 jacobian[1][2] = -perp / rSq;
198 jacobian[2][2] = 0.0;
199 return (covariance.Similarity(jacobian))[i][i];