64 LogDebug(
"TransverseImpactPointExtrapolator") <<
"negligeable curvature: using a trick to extrapolate:\n" << tsos;
78 return p.propagate(*tsos.
freeState(), *surface);
85 return p.propagate(tsos, *surface);
96 LogDebug(
"TransverseImpactPointExtrapolator") <<
"negligeable curvature: using a trick to extrapolate:\n" << fts;
110 return p.propagate(fts, *surface);
117 return p.propagate(fts, *surface);
123 const double& signedTransverseRadius,
127 <<
"signedTransverseRadius : " << signedTransverseRadius <<
"\n"
134 DirectionType2D
t0(-momentum.
y(), momentum.
x());
137 PositionType2D xc(x0 + signedTransverseRadius *
t0);
139 DirectionType2D vtxDirection(xc.x() -
vertex.x(), xc.y() -
vertex.y());
140 double vtxDistance = vtxDirection.mag();
143 GlobalVector xLocal(vtxDirection.x() / vtxDistance, vtxDirection.y() / vtxDistance, 0.);
144 if (vtxDistance < fabs(signedTransverseRadius)) {
145 LogDebug(
"TransverseImpactPointExtrapolator") <<
"Inverting the x axis.";
150 if (zLocal.dot(momentum) < 0.) {
151 LogDebug(
"TransverseImpactPointExtrapolator") <<
"Inverting the y,z frame.";
157 LogDebug(
"TransverseImpactPointExtrapolator") <<
"plane center: " << origin <<
"\n"
158 <<
"plane rotation axis:\n"
162 <<
"x0: " << x0 <<
"\n"
163 <<
"t0: " <<
t0 <<
"\n"
164 <<
"xc: " << xc <<
"\n"
165 <<
"vtxDirection: " << vtxDirection;