CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoVertex/KalmanVertexFit/interface/KalmanVertexTrackCompatibilityEstimator.h

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 //#include "TrackingTools/PatternTools/interface/TSCPBuilderNoMaterial.h"
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) const;
00048 
00049   virtual BDpair estimate(const CachingVertex<N> & v, 
00050                          const RefCountedLinearizedTrackState track) const;
00051 
00052   virtual BDpair estimate(const reco::Vertex & vertex, 
00053                          const reco::TransientTrack & track) const;
00054 
00055   virtual KalmanVertexTrackCompatibilityEstimator<N> * clone() const
00056   {
00057     return new KalmanVertexTrackCompatibilityEstimator(* this);
00058   }
00059 
00060 
00061 private:
00062 
00063   BDpair estimateFittedTrack(const CachingVertex<N> & v, const RefCountedVertexTrack track) const;
00064   BDpair estimateNFittedTrack(const CachingVertex<N> & v, const RefCountedVertexTrack track) const;  
00065   BDpair estimateDifference(const CachingVertex<N> & more, const CachingVertex<N> & less, 
00066                                                        const RefCountedVertexTrack track) const;
00067   KalmanVertexUpdator<N> updator;
00068   KalmanVertexTrackUpdator<N> trackUpdator;
00069   VertexTrackFactory<N> vTrackFactory;
00070   KVFHelper<N> helper;
00071 
00072 };
00073 
00074 #endif