Go to the documentation of this file.00001 #ifndef _VertexReconstructor_H_
00002 #define _VertexReconstructor_H_
00003
00004 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
00005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00006 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00007 #include <vector>
00008
00013 class VertexReconstructor {
00014
00015 public:
00016
00017 VertexReconstructor() {}
00018 virtual ~VertexReconstructor() {}
00019
00022 virtual std::vector<TransientVertex>
00023 vertices(const std::vector<reco::TransientTrack> &) const = 0;
00024
00028 virtual std::vector<TransientVertex>
00029 vertices( const std::vector<reco::TransientTrack> & t, const
00030 reco::BeamSpot & ) const
00031 {
00032 return vertices ( t );
00033 }
00034
00044 virtual std::vector<TransientVertex>
00045 vertices( const std::vector<reco::TransientTrack> & primaries,
00046 const std::vector<reco::TransientTrack> & tracks,
00047 const reco::BeamSpot & spot ) const
00048 {
00049 return vertices ( tracks, spot );
00050 }
00051
00052 virtual VertexReconstructor * clone() const = 0;
00053
00054 };
00055
00056 #endif