CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoVertex/VertexTools/interface/VertexDistance.h

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