![]() |
![]() |
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 typedef typename std::pair <bool, double> BDpair; 00021 00022 VertexTrackCompatibilityEstimator(){} 00023 virtual ~VertexTrackCompatibilityEstimator(){} 00024 00028 virtual BDpair estimate(const CachingVertex<N> & v, 00029 const RefCountedLinearizedTrackState track) const = 0; 00030 00031 virtual BDpair estimate(const reco::Vertex & v, 00032 const reco::TransientTrack & track) const = 0; 00033 00034 // obsolete ? 00035 virtual BDpair estimate(const CachingVertex<N> & v, 00036 const RefCountedVertexTrack track) const = 0; 00040 virtual VertexTrackCompatibilityEstimator<N> * clone() const = 0; 00041 00042 }; 00043 00044 #endif