Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:38:06

0001 #ifndef RecTracksDistanceMatrix_H
0002 #define RecTracksDistanceMatrix_H
0003 
0004 #include <vector>
0005 #include <map>
0006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0007 // #include "CommonReco/PatternTools/interface/RecTrack.h"
0008 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0009 // #include "Utilities/GenUtil/interface/ReferenceCounted.h"
0010 
0011 /** \class RecTracksDistanceMatrix
0012  *  Calculates all distances between a given bunch of reco::TransientTracks at once,
0013  *  stores the results. CrossingPoints can optionally be calculated and 
0014  *  stored, as well.
0015  */
0016 
0017 class RecTracksDistanceMatrix {  // : public ReferenceCounted {
0018 
0019 public:
0020   virtual const std::vector<reco::TransientTrack>* tracks() const = 0;
0021   virtual ~RecTracksDistanceMatrix() {}
0022 
0023   virtual double distance(const reco::TransientTrack, const reco::TransientTrack) const = 0;
0024   virtual double weightedDistance(const reco::TransientTrack, const reco::TransientTrack) const = 0;
0025 
0026   virtual GlobalPoint crossingPoint(const reco::TransientTrack, const reco::TransientTrack) const = 0;
0027 
0028   virtual std::pair<GlobalPoint, GlobalPoint> pointsOfClosestApproach(const reco::TransientTrack,
0029                                                                       const reco::TransientTrack) const = 0;
0030 
0031   virtual bool hasDistances() const = 0;
0032   virtual bool hasWeightedDistances() const = 0;
0033   virtual bool hasCrossingPoints() const = 0;
0034   virtual bool hasPCAs() const = 0;
0035 };
0036 
0037 #endif