00001 #ifndef GsfVertexTrackCompatibilityEstimator_H 00002 #define GsfVertexTrackCompatibilityEstimator_H 00003 00004 00005 #include "RecoVertex/VertexPrimitives/interface/VertexTrackCompatibilityEstimator.h" 00006 #include "RecoVertex/VertexPrimitives/interface/VertexTrack.h" 00007 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h" 00008 #include "RecoVertex/VertexTools/interface/VertexTrackFactory.h" 00009 #include "RecoVertex/GaussianSumVertexFit/interface/MultiPerigeeLTSFactory.h" 00010 #include "RecoVertex/GaussianSumVertexFit/interface/GsfVertexUpdator.h" 00011 00012 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexTrackUpdator.h" 00013 #include "RecoVertex/KalmanVertexFit/interface/KVFHelper.h" 00014 00025 class GsfVertexTrackCompatibilityEstimator:public VertexTrackCompatibilityEstimator<5> 00026 { 00027 00028 public: 00029 00030 typedef CachingVertex<5>::RefCountedVertexTrack RefCountedVertexTrack; 00031 00032 GsfVertexTrackCompatibilityEstimator(){} 00033 00034 virtual ~GsfVertexTrackCompatibilityEstimator(){} 00035 00044 virtual BDpair estimate(const CachingVertex<5> & vrt, const RefCountedVertexTrack track) const; 00045 00046 virtual BDpair estimate(const CachingVertex<5> & v, 00047 const RefCountedLinearizedTrackState track) const; 00048 00049 virtual BDpair estimate(const reco::Vertex & vertex, 00050 const reco::TransientTrack & track) const; 00051 00052 virtual GsfVertexTrackCompatibilityEstimator * clone() const 00053 { 00054 return new GsfVertexTrackCompatibilityEstimator(* this); 00055 } 00056 00057 00058 private: 00059 00060 BDpair estimateFittedTrack(const CachingVertex<5> & v, const RefCountedVertexTrack track) const; 00061 BDpair estimateNFittedTrack(const CachingVertex<5> & v, const RefCountedVertexTrack track) const; 00062 00063 GsfVertexUpdator updator; 00064 // KalmanVertexTrackUpdator trackUpdator; 00065 MultiPerigeeLTSFactory lTrackFactory; 00066 VertexTrackFactory<5> vTrackFactory; 00067 // KVFHelper helper; 00068 00069 }; 00070 00071 #endif