00001 #ifndef _VertexTrackCompatibilityEstimator_H 00002 #define _VertexTrackCompatibilityEstimator_H 00003 00004 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h" 00005 #include "DataFormats/VertexReco/interface/Vertex.h" 00006 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00007 00013 template <unsigned int N> 00014 class VertexTrackCompatibilityEstimator { 00015 00016 public: 00017 00018 typedef typename CachingVertex<N>::RefCountedVertexTrack RefCountedVertexTrack; 00019 typedef typename VertexTrack<N>::RefCountedLinearizedTrackState RefCountedLinearizedTrackState; 00020 00021 VertexTrackCompatibilityEstimator(){} 00022 virtual ~VertexTrackCompatibilityEstimator(){} 00023 00027 virtual float estimate(const CachingVertex<N> & v, 00028 const RefCountedLinearizedTrackState track) const = 0; 00029 00030 virtual float estimate(const reco::Vertex & v, 00031 const reco::TransientTrack & track) const = 0; 00032 00033 // obsolete ? 00034 virtual float estimate(const CachingVertex<N> & v, 00035 const RefCountedVertexTrack track) const = 0; 00039 virtual VertexTrackCompatibilityEstimator<N> * clone() const = 0; 00040 00041 }; 00042 00043 #endif