CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/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 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