CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch1/src/TrackingTools/PatternTools/interface/ClosestApproachOnHelices.h

Go to the documentation of this file.
00001 #ifndef _ClosestApproachOnHelices_H_
00002 #define _ClosestApproachOnHelices_H_
00003 
00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00005 #include <utility>
00006 
00017 class FreeTrajectoryState;
00018 class TrajectoryStateOnSurface;
00019 
00020 class ClosestApproachOnHelices {
00021 
00022 public:
00023 
00024   ClosestApproachOnHelices() {}
00025 
00026   virtual ~ClosestApproachOnHelices() {}
00027 
00028 
00029   virtual bool calculate(const TrajectoryStateOnSurface & sta, 
00030          const TrajectoryStateOnSurface & stb) = 0;
00031 
00032   virtual bool calculate(const FreeTrajectoryState & sta,
00033         const FreeTrajectoryState & stb) = 0;
00034 
00035   virtual bool status() const = 0;
00036 
00038   virtual std::pair<GlobalPoint, GlobalPoint> points() const = 0;
00039 
00044   virtual GlobalPoint crossingPoint() const = 0;
00045 
00047   virtual float distance() const = 0;
00048 
00049   virtual ClosestApproachOnHelices * clone() const = 0;
00050 
00051 };
00052 
00053 #endif