CMS 3D CMS Logo

Classes | Functions
RecHitPropagator.h File Reference
#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
#include "Geometry/CommonDetUnit/interface/GeomDet.h"

Go to the source code of this file.

Classes

class  RecHitPropagator
 

Functions

TrajectoryStateOnSurface fastProp (const TrajectoryStateOnSurface &ts, const Plane &oPlane, const Plane &tPlane)
 

Function Documentation

◆ fastProp()

TrajectoryStateOnSurface fastProp ( const TrajectoryStateOnSurface ts,
const Plane oPlane,
const Plane tPlane 
)
inline

Definition at line 20 of file RecHitPropagator.h.

References TrajectoryStateOnSurface::charge(), TrajectoryStateOnSurface::curvilinearError(), dumpMFGeometry_cfg::delta, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::globalPosition(), runTauDisplay::gp, TrajectoryStateOnSurface::hasError(), Plane::localZ(), GlobalTrajectoryParameters::magneticField(), GloballyPositioned< T >::position(), Surface::toGlobal(), GloballyPositioned< T >::toLocal(), and PV3DBase< T, PVType, FrameType >::z().

20  {
21  GlobalVector gdir = ts.globalMomentum();
22  LocalVector ldir = tPlane.toLocal(gdir); // fast prop!
23 
24  // if ldir.z() == 0, return an invalid TrajectoryStateOnSurface
25  if (ldir.z() == 0) {
26  return TrajectoryStateOnSurface();
27  }
28 
29  double delta = tPlane.localZ(oPlane.position());
30  LocalPoint lPos = tPlane.toLocal(ts.globalPosition());
31  LocalPoint projectedPos = lPos - ldir * delta / ldir.z();
32  // we can also patch it up as only the position-errors are used...
34  tPlane.toGlobal(projectedPos), gdir, ts.charge(), &ts.globalParameters().magneticField());
35  if (ts.hasError())
36  return TrajectoryStateOnSurface(gp, ts.curvilinearError(), tPlane);
37  else
38  return TrajectoryStateOnSurface(gp, tPlane);
39 }
T z() const
Definition: PV3DBase.h:61
const GlobalTrajectoryParameters & globalParameters() const
LocalPoint toLocal(const GlobalPoint &gp) const
GlobalPoint globalPosition() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
float localZ(const GlobalPoint &gp) const
Definition: Plane.h:45
const PositionType & position() const
const CurvilinearTrajectoryError & curvilinearError() const
const MagneticField & magneticField() const
GlobalVector globalMomentum() const