4 #include "boost/intrusive_ptr.hpp"
23 thePropagator(u.
clone())
39 if ( !tsos.
isValid() )
return tsos;
60 if ( !tsos.
isValid() )
return tsos;
77 LogDebug(
"TransverseImpactPointExtrapolator")<<
"negligeable curvature: using a trick to extrapolate:\n"<<tsos;
112 LogDebug(
"TransverseImpactPointExtrapolator")<<
"negligeable curvature: using a trick to extrapolate:\n"<<fts;
141 const double& signedTransverseRadius,
145 LogDebug(
"TransverseImpactPointExtrapolator")<< position<<
"\n"
147 <<
"signedTransverseRadius : "<<signedTransverseRadius<<
"\n"
153 PositionType2D x0(position.
x(),position.
y());
154 DirectionType2D t0(-momentum.
y(),momentum.
x());
157 PositionType2D xc(x0+signedTransverseRadius*t0);
159 DirectionType2D vtxDirection(xc.x()-vertex.x(),xc.y()-vertex.y());
160 double vtxDistance = vtxDirection.mag();
164 vtxDirection.y()/vtxDistance,
166 if ( vtxDistance<fabs(signedTransverseRadius) ) {
167 LogDebug(
"TransverseImpactPointExtrapolator")<<
"Inverting the x axis.";
172 if ( zLocal.dot(momentum)<0. ) {
173 LogDebug(
"TransverseImpactPointExtrapolator")<<
"Inverting the y,z frame.";
179 LogDebug(
"TransverseImpactPointExtrapolator")<<
"plane center: "<<origin<<
"\n"
180 <<
"plane rotation axis:\n"
187 <<
"vtxDirection: "<<vtxDirection;
ReturnType plane(const PositionType &pos, const RotationType &rot) const
GlobalPoint globalPosition() const
static int position[TOTALCHAMBERS][3]
FreeTrajectoryState const * freeState(bool withErrors=true) const
Vector3DBase< typename PreciseFloatType< T, U >::Type, FrameTag > cross(const Vector3DBase< U, FrameTag > &v) const
GlobalVector momentum() const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
GlobalPoint position() const
double transverseCurvature() const
GlobalVector globalMomentum() const
virtual void setPropagationDirection(PropagationDirection dir) const
tuple AnalyticalPropagator
Global3DVector GlobalVector
double transverseCurvature() const