Go to the documentation of this file.00001 #ifndef VertexDistance_H
00002 #define VertexDistance_H
00003
00004 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
00005 #include "DataFormats/VertexReco/interface/Vertex.h"
00006 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00007 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00008 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00009 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
00010
00015 class VertexState;
00016
00017 class VertexDistance {
00018 public:
00019
00020 virtual ~VertexDistance() {}
00021
00022 Measurement1D distance(const reco::Vertex &,
00023 const reco::Vertex &) const;
00024
00025 Measurement1D distance(const VertexState &,
00026 const VertexState &) const;
00027
00028 Measurement1D distance(const reco::Vertex &,
00029 const VertexState &) const;
00030
00031 Measurement1D distance(const VertexState &,
00032 const reco::Vertex &) const;
00033
00046 virtual Measurement1D signedDistance(const reco::Vertex &primVtx ,
00047 const reco::Vertex &secVtx,
00048 const GlobalVector & momentum) const = 0;
00049
00050 virtual float compatibility (const reco::Vertex &,
00051 const reco::Vertex &) const;
00052
00053 virtual float compatibility (const VertexState &,
00054 const VertexState &) const;
00055
00056 virtual float compatibility(const reco::Vertex &,
00057 const VertexState &) const;
00058
00059 virtual float compatibility(const VertexState &,
00060 const reco::Vertex &) const;
00061
00062 virtual VertexDistance * clone() const = 0;
00063
00064 protected:
00065 virtual Measurement1D distance(const GlobalPoint & vtx1Position,
00066 const GlobalError & vtx1PositionError,
00067 const GlobalPoint & vtx2Position,
00068 const GlobalError & vtx2PositionError) const = 0;
00069
00070 virtual float compatibility(const GlobalPoint & vtx1Position,
00071 const GlobalError & vtx1PositionError,
00072 const GlobalPoint & vtx2Position,
00073 const GlobalError & vtx2PositionError) const = 0;
00074
00075 };
00076 #endif // Tracker_VertexDistance_H