CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoVertex/VertexPrimitives/interface/VertexTrackCompatibilityEstimator.h

Go to the documentation of this file.
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