00001 #ifndef MultiGaussianStateMerger_H 00002 #define MultiGaussianStateMerger_H 00003 00004 #include "TrackingTools/GsfTools/interface/SingleGaussianState.h" 00005 #include "TrackingTools/GsfTools/interface/MultiGaussianState.h" 00006 00011 template <unsigned int N> class MultiGaussianStateMerger { 00012 public: 00013 typedef SingleGaussianState<N> SingleState; 00014 typedef MultiGaussianState<N> MultiState; 00015 00016 public: 00017 virtual MultiState merge(const MultiState& mgs) const = 0; 00018 virtual ~MultiGaussianStateMerger() {} 00019 virtual MultiGaussianStateMerger* clone() const = 0; 00020 00021 protected: 00022 00023 MultiGaussianStateMerger() {} 00024 typedef std::vector<SingleState> SGSVector; 00025 00026 }; 00027 00028 #endif