00001 #ifndef Vertex_VertexDistance3D_H 00002 #define Vertex_VertexDistance3D_H 00003 00004 #include "RecoVertex/VertexTools/interface/VertexDistance.h" 00005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00006 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" 00007 00013 class VertexDistance3D : public VertexDistance { 00014 00015 public: 00016 using VertexDistance::compatibility; 00017 00018 VertexDistance3D() {} 00019 00028 virtual Measurement1D signedDistance(const reco::Vertex &primVtx , 00029 const reco::Vertex &secVtx, 00030 const GlobalVector & momentum) const; 00031 00032 virtual VertexDistance3D * clone() const 00033 { 00034 return new VertexDistance3D(*this); 00035 } 00036 00037 using VertexDistance::distance; 00038 00039 private: 00040 00041 AlgebraicSymMatrix33 theNullMatrix; 00042 virtual Measurement1D distance(const GlobalPoint & vtx1Position, 00043 const GlobalError & vtx1PositionError, 00044 const GlobalPoint & vtx2Position, 00045 const GlobalError & vtx2PositionError) const; 00046 00047 virtual float compatibility(const GlobalPoint & vtx1Position, 00048 const GlobalError & vtx1PositionError, 00049 const GlobalPoint & vtx2Position, 00050 const GlobalError & vtx2PositionError) const; 00051 }; 00052 00053 00054 #endif 00055 00056 00057