Go to the documentation of this file.00001 #ifndef KalmanVertexTrackCompatibilityEstimator_H
00002 #define KalmanVertexTrackCompatibilityEstimator_H
00003
00004
00005 #include "RecoVertex/VertexPrimitives/interface/VertexTrackCompatibilityEstimator.h"
00006
00007 #include "RecoVertex/VertexPrimitives/interface/VertexTrack.h"
00008 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
00009 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexUpdator.h"
00010 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexTrackUpdator.h"
00011 #include "RecoVertex/VertexTools/interface/VertexTrackFactory.h"
00012 #include "RecoVertex/KalmanVertexFit/interface/KVFHelper.h"
00013
00024 template <unsigned int N>
00025 class KalmanVertexTrackCompatibilityEstimator : public VertexTrackCompatibilityEstimator<N>
00026 {
00027
00028 public:
00029
00030 typedef typename CachingVertex<N>::RefCountedVertexTrack RefCountedVertexTrack;
00031 typedef typename VertexTrack<N>::RefCountedLinearizedTrackState RefCountedLinearizedTrackState;
00032 typedef typename VertexTrack<N>::RefCountedRefittedTrackState RefCountedRefittedTrackState;
00033 typedef typename std::pair<bool, double> BDpair;
00034
00035 KalmanVertexTrackCompatibilityEstimator(){}
00036
00037 virtual ~KalmanVertexTrackCompatibilityEstimator(){}
00038
00047 virtual BDpair estimate(const CachingVertex<N> & vrt, const RefCountedVertexTrack track,
00048 unsigned int hint=UINT_MAX) const;
00049
00050 virtual BDpair estimate(const CachingVertex<N> & v,
00051 const RefCountedLinearizedTrackState track,
00052 unsigned int hint=UINT_MAX) const;
00053
00054 virtual BDpair estimate(const reco::Vertex & vertex,
00055 const reco::TransientTrack & track) const;
00056
00057 virtual KalmanVertexTrackCompatibilityEstimator<N> * clone() const
00058 {
00059 return new KalmanVertexTrackCompatibilityEstimator(* this);
00060 }
00061
00062
00063 private:
00064
00065 BDpair estimateFittedTrack(const CachingVertex<N> & v, const RefCountedVertexTrack track) const;
00066 BDpair estimateNFittedTrack(const CachingVertex<N> & v, const RefCountedVertexTrack track) const;
00067 BDpair estimateDifference(const CachingVertex<N> & more, const CachingVertex<N> & less,
00068 const RefCountedVertexTrack track) const;
00069 KalmanVertexUpdator<N> updator;
00070 KalmanVertexTrackUpdator<N> trackUpdator;
00071 VertexTrackFactory<N> vTrackFactory;
00072 KVFHelper<N> helper;
00073
00074 };
00075
00076 #endif