Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:19

0001 #ifndef _VertexTrackCompatibilityEstimator_H
0002 #define _VertexTrackCompatibilityEstimator_H
0003 
0004 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
0005 #include "DataFormats/VertexReco/interface/Vertex.h"
0006 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0007 #include <climits>
0008 
0009 /**
0010  * Pure abstract base class for compatibility estimators 
0011  * (distance, chi-squared, etc.)
0012  */
0013 
0014 template <unsigned int N>
0015 class VertexTrackCompatibilityEstimator {
0016 public:
0017   typedef typename CachingVertex<N>::RefCountedVertexTrack RefCountedVertexTrack;
0018   typedef typename VertexTrack<N>::RefCountedLinearizedTrackState RefCountedLinearizedTrackState;
0019   typedef typename std::pair<bool, double> BDpair;
0020 
0021   VertexTrackCompatibilityEstimator() {}
0022   virtual ~VertexTrackCompatibilityEstimator() {}
0023 
0024   /**
0025    * Methods giving back the compatibility estimation
0026    */
0027   virtual BDpair estimate(const CachingVertex<N>& v,
0028                           const RefCountedLinearizedTrackState track,
0029                           unsigned int hint = UINT_MAX) const = 0;
0030 
0031   virtual BDpair estimate(const reco::Vertex& v, const reco::TransientTrack& track) const = 0;
0032 
0033   // obsolete ?
0034   virtual BDpair estimate(const CachingVertex<N>& v,
0035                           const RefCountedVertexTrack track,
0036                           unsigned int hint = UINT_MAX) const = 0;
0037   /**
0038    * Clone method 
0039    */
0040   virtual VertexTrackCompatibilityEstimator<N>* clone() const = 0;
0041 };
0042 
0043 #endif