File indexing completed on 2024-09-07 04:38:13
0001 #ifndef MultiStatePropagation_h_
0002 #define MultiStatePropagation_h_
0003
0004 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0005 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateAssembler.h"
0006 #include "TrackingTools/GeomPropagators/interface/PropagationDirectionFromPath.h"
0007
0008
0009
0010
0011
0012
0013
0014 template <class T>
0015 class MultiStatePropagation {
0016 public:
0017
0018
0019 MultiStatePropagation(const Propagator& aPropagator) : thePropagator(aPropagator) {}
0020
0021 ~MultiStatePropagation() {}
0022
0023
0024
0025 std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const TrajectoryStateOnSurface& tsos,
0026 const T& surface) const;
0027
0028 private:
0029
0030 TrajectoryStateOnSurface setWeight(const TrajectoryStateOnSurface, const double) const;
0031
0032 private:
0033
0034 const Propagator& thePropagator;
0035
0036 typedef std::pair<TrajectoryStateOnSurface, double> TsosWP;
0037 typedef std::vector<TrajectoryStateOnSurface> MultiTSOS;
0038 };
0039
0040 #include "TrackingTools/GsfTools/src/MultiStatePropagation.icc"
0041 #endif