![]() |
![]() |
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 #include <climits> 00008 00014 template <unsigned int N> 00015 class VertexTrackCompatibilityEstimator { 00016 00017 public: 00018 00019 typedef typename CachingVertex<N>::RefCountedVertexTrack RefCountedVertexTrack; 00020 typedef typename VertexTrack<N>::RefCountedLinearizedTrackState RefCountedLinearizedTrackState; 00021 typedef typename std::pair <bool, double> BDpair; 00022 00023 VertexTrackCompatibilityEstimator(){} 00024 virtual ~VertexTrackCompatibilityEstimator(){} 00025 00029 virtual BDpair estimate(const CachingVertex<N> & v, 00030 const RefCountedLinearizedTrackState track, 00031 unsigned int hint=UINT_MAX) const = 0; 00032 00033 virtual BDpair estimate(const reco::Vertex & v, 00034 const reco::TransientTrack & track) const = 0; 00035 00036 // obsolete ? 00037 virtual BDpair estimate(const CachingVertex<N> & v, 00038 const RefCountedVertexTrack track, unsigned int hint=UINT_MAX) const = 0; 00042 virtual VertexTrackCompatibilityEstimator<N> * clone() const = 0; 00043 00044 }; 00045 00046 #endif