00001 #ifndef GenericLinearizationPointFinder_H 00002 #define GenericLinearizationPointFinder_H 00003 00004 #include "RecoVertex/VertexTools/interface/LinearizationPointFinder.h" 00005 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h" 00006 00011 class GenericLinearizationPointFinder : public LinearizationPointFinder { 00012 00013 public: 00014 00015 GenericLinearizationPointFinder ( const VertexFitter & fitter ) : 00016 theFitter ( fitter.clone() ) {} 00017 00018 ~GenericLinearizationPointFinder () { delete theFitter; } 00019 00022 virtual 00023 GlobalPoint getLinearizationPoint(const std::vector<reco::TransientTrack> & tracks) const { 00024 return theFitter->vertex ( tracks ).position(); 00025 } 00026 00029 virtual LinearizationPointFinder * clone() const { 00030 return new GenericLinearizationPointFinder(* this); 00031 } 00032 00033 private: 00034 00035 const VertexFitter * theFitter; 00036 00037 }; 00038 00039 #endif