CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoVertex/VertexPrimitives/interface/VertexReconstructor.h

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