00001 #ifndef _MultiVertexReconstructor_H_ 00002 #define _MultiVertexReconstructor_H_ 00003 00004 #include "RecoVertex/VertexPrimitives/interface/VertexReconstructor.h" 00005 #include "RecoVertex/MultiVertexFit/interface/MultiVertexFitter.h" 00006 #include "RecoVertex/MultiVertexFit/interface/DefaultMVFAnnealing.h" 00007 00012 class MultiVertexReconstructor : public VertexReconstructor 00013 { 00014 public: 00015 MultiVertexReconstructor ( const VertexReconstructor &, 00016 const AnnealingSchedule & s = DefaultMVFAnnealing(), 00017 float revive=-1. ); 00018 MultiVertexReconstructor ( const MultiVertexReconstructor & ); 00019 ~MultiVertexReconstructor(); 00020 00021 std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &, 00022 const reco::BeamSpot & ) const; 00023 std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &) const; 00024 std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &, 00025 const std::vector < reco::TransientTrack > & primaries ) const; 00026 00027 std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &, 00028 const std::vector < reco::TransientTrack > & primaries, 00029 const reco::BeamSpot & spot ) const; 00030 00031 VertexReconstructor * reconstructor() const; 00032 00033 MultiVertexReconstructor * clone() const; 00034 00035 private: 00036 VertexReconstructor * theOldReconstructor; 00037 mutable MultiVertexFitter theFitter; 00038 }; 00039 00040 #endif