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