CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2_patch1/src/RecoVertex/VertexTools/interface/RecTracksDistanceMatrix.h

Go to the documentation of this file.
00001 #ifndef RecTracksDistanceMatrix_H
00002 #define RecTracksDistanceMatrix_H
00003 
00004 #include <vector>
00005 #include <map>
00006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00007 // #include "CommonReco/PatternTools/interface/RecTrack.h"
00008 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00009 // #include "Utilities/GenUtil/interface/ReferenceCounted.h"
00010 
00017 class RecTracksDistanceMatrix { // : public ReferenceCounted {
00018 
00019 public:
00020   virtual const std::vector < reco::TransientTrack > * tracks() const = 0;
00021   virtual ~RecTracksDistanceMatrix() {};
00022 
00023   virtual double distance ( const reco::TransientTrack , const reco::TransientTrack ) const = 0;
00024   virtual double weightedDistance ( const reco::TransientTrack , const reco::TransientTrack ) const = 0;
00025 
00026   virtual GlobalPoint crossingPoint ( const reco::TransientTrack , const reco::TransientTrack ) const = 0;
00027 
00028   virtual std::pair < GlobalPoint, GlobalPoint > pointsOfClosestApproach (
00029               const reco::TransientTrack, const reco::TransientTrack ) const = 0;
00030 
00031   virtual bool hasDistances()      const =0;
00032   virtual bool hasWeightedDistances()      const =0;
00033   virtual bool hasCrossingPoints() const =0;
00034   virtual bool hasPCAs()           const =0;
00035 };
00036 
00037 #endif