CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h

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 Propagator;
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