CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/TrackingTools/GsfTools/src/MultiStatePropagation.h

Go to the documentation of this file.
00001 #ifndef MultiStatePropagation_h_
00002 #define MultiStatePropagation_h_
00003 
00004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00005 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateAssembler.h"
00006 #include "TrackingTools/GeomPropagators/interface/PropagationDirectionFromPath.h"
00007 
00014 template <class T>
00015 class MultiStatePropagation {  
00016   
00017 public:
00020   MultiStatePropagation(const Propagator& aPropagator) :
00021     thePropagator(aPropagator) {}
00022 
00023   ~MultiStatePropagation() {};
00024 
00027   std::pair<TrajectoryStateOnSurface,double> 
00028   propagateWithPath (const TrajectoryStateOnSurface& tsos, 
00029                      const T& surface) const;
00030 
00031 private:
00033   TrajectoryStateOnSurface setWeight (const TrajectoryStateOnSurface,
00034                                       const double) const;
00035 
00036 private:
00037   // Single state propagator
00038   const Propagator& thePropagator;
00039 
00040   typedef std::pair<TrajectoryStateOnSurface,double> TsosWP;
00041   typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;
00042 };
00043 
00044 #include "TrackingTools/GsfTools/src/MultiStatePropagation.icc"
00045 #endif