Go to the documentation of this file.00001 #ifndef TransverseImpactPointExtrapolator_h_
00002 #define TransverseImpactPointExtrapolator_h_
00003
00004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00006 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00007 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
00008 #include "MagneticField/Engine/interface/MagneticField.h"
00009
00010 class FreeTrajectoryState;
00011 class TrajectoryStateOnSurface;
00012 class Plane;
00013 template <class T> class ReferenceCountingPointer;
00014
00025 class TransverseImpactPointExtrapolator {
00026
00027 public:
00028
00030 TransverseImpactPointExtrapolator();
00031
00033 TransverseImpactPointExtrapolator(const MagneticField* field);
00035 TransverseImpactPointExtrapolator(const Propagator& u);
00036
00038 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
00039 const GlobalPoint& vtx) const;
00041 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
00042 const GlobalPoint& vtx) const;
00043
00045 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
00046 const GlobalPoint& vtx,
00047 const Propagator& u) const;
00049 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
00050 const GlobalPoint& vtx,
00051 const Propagator& u) const;
00052
00053 private:
00055 TrajectoryStateOnSurface doExtrapolation (const TrajectoryStateOnSurface tsos,
00056 const GlobalPoint& vtx,
00057 const Propagator& u) const;
00059 TrajectoryStateOnSurface doExtrapolation (const FreeTrajectoryState& fts,
00060 const GlobalPoint& vtx,
00061 const Propagator& u) const;
00063 ReferenceCountingPointer<Plane> tipSurface (const GlobalPoint& position,
00064 const GlobalVector& momentum,
00065 const double& signedTransverseRadius,
00066 const GlobalPoint& vtx) const;
00067
00068 private:
00069 DeepCopyPointerByClone<Propagator> thePropagator;
00070 };
00071
00072 #endif