CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/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 
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