File indexing completed on 2023-03-17 11:23:33
0001 #ifndef _VertexTrackCompatibilityEstimator_H
0002 #define _VertexTrackCompatibilityEstimator_H
0003
0004 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
0005 #include "DataFormats/VertexReco/interface/Vertex.h"
0006 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0007 #include <climits>
0008
0009
0010
0011
0012
0013
0014 template <unsigned int N>
0015 class VertexTrackCompatibilityEstimator {
0016 public:
0017 typedef typename CachingVertex<N>::RefCountedVertexTrack RefCountedVertexTrack;
0018 typedef typename VertexTrack<N>::RefCountedLinearizedTrackState RefCountedLinearizedTrackState;
0019 typedef typename std::pair<bool, double> BDpair;
0020
0021 VertexTrackCompatibilityEstimator() {}
0022 virtual ~VertexTrackCompatibilityEstimator() {}
0023
0024
0025
0026
0027 virtual BDpair estimate(const CachingVertex<N>& v,
0028 const RefCountedLinearizedTrackState track,
0029 unsigned int hint = UINT_MAX) const = 0;
0030
0031 virtual BDpair estimate(const reco::Vertex& v, const reco::TransientTrack& track) const = 0;
0032
0033
0034 virtual BDpair estimate(const CachingVertex<N>& v,
0035 const RefCountedVertexTrack track,
0036 unsigned int hint = UINT_MAX) const = 0;
0037
0038
0039
0040 virtual VertexTrackCompatibilityEstimator<N>* clone() const = 0;
0041 };
0042
0043 #endif