This class builds a TrajectoryStateClosestToPoint given an original TrajectoryStateOnSurface or FreeTrajectoryState. This new state is then defined at the point of closest approach to the reference point. In case the propagation was not successful, this state can be invalid.
Definition at line 17 of file TSCPBuilderNoMaterial.h.
Definition at line 54 of file TSCPBuilderNoMaterial.cc.
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();
References anyDirection, FreeTrajectoryState::charge(), FreeTrajectoryState::curvilinearError(), HelixBarrelPlaneCrossingByCircle::direction(), FreeTrajectoryState::hasError(), MagneticField::inInverseGeV(), AnalyticalCurvilinearJacobian::jacobian(), kappa, PV3DBase< T, PVType, FrameType >::mag(), GlobalTrajectoryParameters::magneticField(), CurvilinearTrajectoryError::matrix(), FreeTrajectoryState::momentum(), FreeTrajectoryState::parameters(), HelixBarrelPlaneCrossingByCircle::pathLength(), HelixBarrelPlaneCrossingByCircle::position(), FreeTrajectoryState::position(), makeMuonMisalignmentScenario::rot, alignCSCRings::s, FreeTrajectoryState::transverseCurvature(), Vector3DBase< T, FrameTag >::unit(), X, PV3DBase< T, PVType, FrameType >::x(), Basic3DVector< T >::x(), BeamSpotPI::Y, PV3DBase< T, PVType, FrameType >::y(), Basic3DVector< T >::y(), PV3DBase< T, PVType, FrameType >::z(), and Basic3DVector< T >::z().
Referenced by createFTSatTransverseImpactPoint().
Definition at line 121 of file TSCPBuilderNoMaterial.cc.
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);
134 double xGen = xOrig + s2D *
cos(
phi);
135 double yGen = yOrig + s2D *
sin(
phi);
136 double zGen = zOrig + s2D /
tan(
theta);
References FreeTrajectoryState::charge(), funct::cos(), FreeTrajectoryState::curvilinearError(), FreeTrajectoryState::hasError(), AnalyticalCurvilinearJacobian::jacobian(), GlobalTrajectoryParameters::magneticField(), CurvilinearTrajectoryError::matrix(), FreeTrajectoryState::momentum(), FreeTrajectoryState::parameters(), phi, PV3DBase< T, PVType, FrameType >::phi(), FreeTrajectoryState::position(), alignCSCRings::s, funct::sin(), funct::tan(), PV3DBase< T, PVType, FrameType >::theta(), theta(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by createFTSatTransverseImpactPoint().