File indexing completed on 2024-04-06 12:29:20
0001 #ifndef VertexDistance_H
0002 #define VertexDistance_H
0003
0004 #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h"
0005 #include "DataFormats/VertexReco/interface/Vertex.h"
0006 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
0009
0010
0011
0012
0013
0014 class VertexState;
0015
0016 class VertexDistance {
0017 public:
0018 virtual ~VertexDistance() {}
0019
0020 Measurement1D distance(const reco::Vertex &, const reco::Vertex &) const;
0021
0022 Measurement1D distance(const VertexState &, const VertexState &) const;
0023
0024 Measurement1D distance(const reco::Vertex &, const VertexState &) const;
0025
0026 Measurement1D distance(const VertexState &, const reco::Vertex &) const;
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 virtual Measurement1D signedDistance(const reco::Vertex &primVtx,
0041 const reco::Vertex &secVtx,
0042 const GlobalVector &momentum) const = 0;
0043
0044 virtual float compatibility(const reco::Vertex &, const reco::Vertex &) const;
0045
0046 virtual float compatibility(const VertexState &, const VertexState &) const;
0047
0048 virtual float compatibility(const reco::Vertex &, const VertexState &) const;
0049
0050 virtual float compatibility(const VertexState &, const reco::Vertex &) const;
0051
0052 virtual VertexDistance *clone() const = 0;
0053
0054 protected:
0055 virtual Measurement1D distance(const GlobalPoint &vtx1Position,
0056 const GlobalError &vtx1PositionError,
0057 const GlobalPoint &vtx2Position,
0058 const GlobalError &vtx2PositionError) const = 0;
0059
0060 virtual float compatibility(const GlobalPoint &vtx1Position,
0061 const GlobalError &vtx1PositionError,
0062 const GlobalPoint &vtx2Position,
0063 const GlobalError &vtx2PositionError) const = 0;
0064 };
0065 #endif