19 if (newStatePair.first) {
34 if (newStatePair.first) {
59 double pxOrig = pvecOrig.
x();
60 double pyOrig = pvecOrig.
y();
61 double pzOrig = pvecOrig.
z();
62 double xOrig = xvecOrig.
x();
63 double yOrig = xvecOrig.
y();
64 double zOrig = xvecOrig.
z();
89 std::pair<bool, double> propResult = planeCrossing.
pathLength(*plane);
90 if (!propResult.first) {
91 edm::LogWarning(
"TSCPBuilderNoMaterial") <<
"Propagation to perigee plane failed!";
94 double s = propResult.second;
99 pGen *= pvecOrig.
mag() / pGen.mag();
122 const FTS& originalFTS,
const GlobalPoint& referencePoint)
const {
126 double xOrig = xvecOrig.
x();
127 double yOrig = xvecOrig.
y();
128 double zOrig = xvecOrig.
z();
129 double xR = referencePoint.
x();
130 double yR = referencePoint.
y();
132 double s2D = (xR - xOrig) *
cos(phi) + (yR - yOrig) *
sin(phi);
133 double s = s2D /
sin(theta);
134 double xGen = xOrig + s2D *
cos(phi);
135 double yGen = yOrig + s2D *
sin(phi);
136 double zGen = zOrig + s2D /
tan(theta);
TrajectoryStateClosestToPoint operator()(const FTS &originalFTS, const GlobalPoint &referencePoint) const override
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
Vector3DBase< double, GlobalTag > GlobalVectorDouble
const GlobalTrajectoryParameters & parameters() const
const AlgebraicMatrix55 & jacobian() const
Sin< T >::type sin(const T &t)
PairBoolFTS createFTSatTransverseImpactPointCharged(const FTS &originalFTS, const GlobalPoint &referencePoint) const
Geom::Phi< T > phi() const
Global3DPoint GlobalPoint
Geom::Theta< T > theta() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepStd< double, 5, 5 > > AlgebraicMatrix55
GlobalPoint globalPosition() const
TrackCharge charge() const
std::pair< bool, FreeTrajectoryState > PairBoolFTS
const CurvilinearTrajectoryError & curvilinearError() const
Geom::Theta< T > theta() const
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
static TrajectoryStateClosestToPoint constructTSCP(const FTS &originalFTS, const GlobalPoint &referencePoint)
static bool positionEqual(const GlobalPoint &ptB, const GlobalPoint &ptA)
T z() const
Cartesian z coordinate.
FreeTrajectoryState const * freeState(bool withErrors=true) const
DirectionType direction(double s) const override
Cos< T >::type cos(const T &t)
Tan< T >::type tan(const T &t)
GlobalVector momentum() const
Vector3DBase unit() const
GlobalPoint position() const
std::pair< bool, double > pathLength(const Plane &) override
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
double transverseCurvature() const
const AlgebraicSymMatrix55 & matrix() const
const MagneticField & magneticField() const
PairBoolFTS createFTSatTransverseImpactPointNeutral(const FTS &originalFTS, const GlobalPoint &referencePoint) const
Log< level::Warning, false > LogWarning
PositionType position(double s) const override
Global3DVector GlobalVector
PairBoolFTS createFTSatTransverseImpactPoint(const FTS &originalFTS, const GlobalPoint &referencePoint) const