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
00013 class BoundPlane;
00014 template <class T> class ReferenceCountingPointer;
00015
00026 class TransverseImpactPointExtrapolator {
00027
00028 public:
00029
00031 TransverseImpactPointExtrapolator();
00032
00034 TransverseImpactPointExtrapolator(const MagneticField* field);
00036 TransverseImpactPointExtrapolator(const Propagator& u);
00037
00039 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
00040 const GlobalPoint& vtx) const;
00042 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
00043 const GlobalPoint& vtx) const;
00044
00046 TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState& fts,
00047 const GlobalPoint& vtx,
00048 const Propagator& u) const;
00050 TrajectoryStateOnSurface extrapolate(const TrajectoryStateOnSurface tsos,
00051 const GlobalPoint& vtx,
00052 const Propagator& u) const;
00053
00054 private:
00056 TrajectoryStateOnSurface doExtrapolation (const TrajectoryStateOnSurface tsos,
00057 const GlobalPoint& vtx,
00058 const Propagator& u) const;
00060 TrajectoryStateOnSurface doExtrapolation (const FreeTrajectoryState& fts,
00061 const GlobalPoint& vtx,
00062 const Propagator& u) const;
00064 ReferenceCountingPointer<BoundPlane> tipSurface (const GlobalPoint& position,
00065 const GlobalVector& momentum,
00066 const double& signedTransverseRadius,
00067 const GlobalPoint& vtx) const;
00068
00069 private:
00070 DeepCopyPointerByClone<Propagator> thePropagator;
00071 };
00072
00073 #endif