CMS 3D CMS Logo

AnalyticalTrajectoryExtrapolatorToLine.h

Go to the documentation of this file.
00001 #ifndef AnalyticalTrajectoryExtrapolatorToLine_h_
00002 #define AnalyticalTrajectoryExtrapolatorToLine_h_
00003 
00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00005 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00006 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h"
00007 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00008 
00009 class FreeTrajectoryState;
00010 class TrajectoryStateOnSurface;
00011 class Line;
00012 class IterativeHelixExtrapolatorToLine;
00013 class MagneticField;
00014 
00026 class AnalyticalTrajectoryExtrapolatorToLine {
00027 
00028 public:
00030   AnalyticalTrajectoryExtrapolatorToLine (const MagneticField* field);
00031 
00033   AnalyticalTrajectoryExtrapolatorToLine (const Propagator&);
00034 
00036   TrajectoryStateOnSurface extrapolate (const FreeTrajectoryState& fts,
00037                                         const Line & L) const;
00038 
00040   TrajectoryStateOnSurface extrapolate (const TrajectoryStateOnSurface tsos,
00041                                         const Line & L) const;
00042 
00043 private:
00045   TrajectoryStateOnSurface extrapolateFullState (const TrajectoryStateOnSurface tsos, 
00046                                                  const Line& line) const;
00048   TrajectoryStateOnSurface extrapolateSingleState (const FreeTrajectoryState& fts, 
00049                                                    const Line& line) const;
00051   bool propagateWithHelix (const IterativeHelixExtrapolatorToLine& extrapolator, 
00052                            const Line& line,
00053                            GlobalPoint& x, GlobalVector& p, double& s) const;
00054 
00055 private:
00056   DeepCopyPointerByClone<Propagator> thePropagator;
00057 };
00058 
00059 #endif
00060 
00061 
00062 
00063 

Generated on Tue Jun 9 17:48:16 2009 for CMSSW by  doxygen 1.5.4