CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TwoTrackMinimumDistance.h
Go to the documentation of this file.
1 #ifndef _TwoTrackMinimumDistance_H_
2 #define _TwoTrackMinimumDistance_H_
3 
9 
19 class TwoTrackMinimumDistance GCC11_FINAL : public ClosestApproachOnHelices {
20 
21 public:
22 
23  enum Mode { FastMode=0, SlowMode=1 };
24 
25  TwoTrackMinimumDistance( const Mode m=FastMode ) { theModus=m; status_ = false;};
27 
28  virtual bool calculate(const TrajectoryStateOnSurface & sta,
29  const TrajectoryStateOnSurface & stb);
30 
31  virtual bool calculate(const FreeTrajectoryState & sta,
32  const FreeTrajectoryState & stb);
33 
34  virtual bool calculate(const GlobalTrajectoryParameters & sta,
35  const GlobalTrajectoryParameters & stb);
36 
37  virtual bool status() const {return status_;}
38 
43  virtual std::pair<GlobalPoint, GlobalPoint> points() const;
44 
46  virtual GlobalPoint crossingPoint() const;
47 
49  virtual float distance() const;
50 
51 
55  virtual TwoTrackMinimumDistance * clone() const {
56  return new TwoTrackMinimumDistance(* this);
57  }
58 
59  double firstAngle() const;
60  double secondAngle() const;
61  std::pair <double, double> pathLength() const;
62 
63 private:
64  enum Charge { hh, hl, ll };
66  mutable Charge theCharge;
67  ClosestApproachInRPhi theIniAlgo;
71  bool status_;
72  std::pair<GlobalPoint, GlobalPoint> points_;
73 
74  bool pointsLineLine(const GlobalTrajectoryParameters & sta,
76  bool pointsHelixLine(const GlobalTrajectoryParameters & sta,
78  bool pointsHelixHelix(const GlobalTrajectoryParameters & sta,
80 };
81 
82 #endif
virtual float distance() const =0
ClosestApproachInRPhi theIniAlgo
TwoTrackMinimumDistanceHelixLine theTTMDhl
TwoTrackMinimumDistanceLineLine theTTMDll
virtual TwoTrackMinimumDistance * clone() const
TwoTrackMinimumDistance(const Mode m=FastMode)
#define dso_internal
Definition: Visibility.h:13
virtual std::pair< GlobalPoint, GlobalPoint > points() const =0
virtual bool calculate(const TrajectoryStateOnSurface &sta, const TrajectoryStateOnSurface &stb)=0
TwoTrackMinimumDistanceHelixHelix theTTMDhh
std::pair< GlobalPoint, GlobalPoint > points_
virtual bool status() const
virtual GlobalPoint crossingPoint() const =0
Unlimited (trivial) bounds.