CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoVertex/VertexPrimitives/interface/VertexFitter.h

Go to the documentation of this file.
00001 #ifndef _VertexFitter_H_
00002 #define _VertexFitter_H_
00003 
00004 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
00005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00006 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00007 
00008 #include <vector>
00009 
00019 template <unsigned int N>
00020 class VertexFitter {
00021 
00022 public:
00023 
00024   VertexFitter() {}
00025 
00026   virtual ~VertexFitter() {}
00027 
00030   virtual CachingVertex<N> 
00031   vertex(const std::vector<reco::TransientTrack> & tracks) const = 0;
00032 
00036   virtual CachingVertex<N> 
00037   vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack > & tracks) const = 0;
00038   
00042   virtual CachingVertex<N> 
00043   vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack > & tracks, const reco::BeamSpot & spot ) const = 0;
00044 
00045 
00049   virtual CachingVertex<N> 
00050   vertex(const std::vector<reco::TransientTrack> & tracks, const GlobalPoint& linPoint) const = 0;
00051 
00057   virtual CachingVertex<N> 
00058   vertex(const std::vector<reco::TransientTrack> & tracks, const GlobalPoint& priorPos,
00059          const GlobalError& priorError) const = 0;
00060 
00065   virtual CachingVertex<N> 
00066   vertex(const std::vector<reco::TransientTrack> & tracks, const reco::BeamSpot& beamSpot) const = 0;
00067 
00072   virtual CachingVertex<N> 
00073   vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack > & tracks, 
00074          const GlobalPoint& priorPos,
00075          const GlobalError& priorError) const = 0;
00076 
00079 //   virtual CachingVertex<N> 
00080 //   vertex(const RefCountedVertexSeed vtxSeed) const = 0;
00081 
00082   virtual VertexFitter * clone() const = 0;
00083 
00084 };
00085 
00086 #endif