00001 #ifndef GsfVertexMerger_H 00002 #define GsfVertexMerger_H 00003 00004 #include "TrackingTools/GsfTools/interface/MultiGaussianStateMerger.h" 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "DataFormats/GeometryCommonDetAlgo/interface/DeepCopyPointerByClone.h" 00007 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h" 00008 00013 class VertexState; 00014 00015 class GsfVertexMerger { 00016 public: 00017 00018 GsfVertexMerger(const edm::ParameterSet& pSet); 00019 ~GsfVertexMerger() {} 00020 00021 CachingVertex<5> merge(const CachingVertex<5> & vertex) const; 00022 00023 VertexState merge(const VertexState & vertex) const; 00024 00025 GsfVertexMerger * clone() const { 00026 return new GsfVertexMerger(* this); 00027 } 00028 00029 private: 00030 DeepCopyPointerByClone< MultiGaussianStateMerger<3> > merger; 00031 unsigned int maxComponents; 00032 }; 00033 00034 #endif