CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/TrackPropagation/RungeKutta/interface/RKPropagatorInZ.h

Go to the documentation of this file.
00001 #ifndef RKPropagatorInZ_H
00002 #define RKPropagatorInZ_H
00003 
00004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00005 #include "MagneticField/VolumeGeometry/interface/MagVolume.h"
00006 
00007 class RKPropagatorInZ : public Propagator {
00008 public:
00009 
00010   RKPropagatorInZ( const MagVolume& vol, PropagationDirection dir = alongMomentum) : 
00011     Propagator(dir), theVolume( &vol) {}
00012 
00013   virtual TrajectoryStateOnSurface 
00014   propagate (const FreeTrajectoryState&, const Plane&) const;
00015 
00016   virtual TrajectoryStateOnSurface 
00017   propagate (const FreeTrajectoryState&, const Cylinder&) const;
00018 
00019   virtual std::pair< TrajectoryStateOnSurface, double> 
00020   propagateWithPath (const FreeTrajectoryState&, const Plane&) const;
00021 
00022   virtual std::pair< TrajectoryStateOnSurface, double> 
00023   propagateWithPath (const FreeTrajectoryState&, const Cylinder&) const;
00024 
00025   virtual Propagator * clone() const;
00026 
00027   virtual const MagneticField* magneticField() const {return theVolume;}
00028 
00029 private:
00030 
00031   const MagVolume* theVolume;
00032 
00033 };
00034 
00035 #endif