00001 #ifndef MultiTrajectoryStateMerger_H 00002 #define MultiTrajectoryStateMerger_H 00003 00004 #include "TrackingTools/GsfTools/interface/MultiGaussianStateMerger.h" 00005 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00006 00007 #include "boost/shared_ptr.hpp" 00008 00009 class TrajectoryStateOnSurface; 00010 00015 class MultiTrajectoryStateMerger { 00016 public: 00017 MultiTrajectoryStateMerger ( const MultiGaussianStateMerger<5>& merger ) : 00018 theMultiStateMerger(merger.clone()) {} 00019 TrajectoryStateOnSurface merge(const TrajectoryStateOnSurface& tsos) const; 00020 MultiTrajectoryStateMerger* clone() const { 00021 return new MultiTrajectoryStateMerger(*this); 00022 } 00023 00024 private: 00025 const boost::shared_ptr< const MultiGaussianStateMerger<5> > theMultiStateMerger; 00026 }; 00027 00028 #endif