CMS 3D CMS Logo

TwoTrackMinimumDistanceHelixHelix.h
Go to the documentation of this file.
1 #ifndef _Tracker_TwoTrackMinimumDistanceHelixHelix_H_
2 #define _Tracker_TwoTrackMinimumDistanceHelixHelix_H_
3 
5 // #include <string>
6 // #include <sstream>
7 #include <utility>
8 
17 
19 
20 public:
23 
26  const float qual=.001 ); // retval=true? error occured.
27 
28  std::pair <GlobalPoint, GlobalPoint> points() const {
29  if (!pointsUpdated) finalPoints();
30  return std::pair<GlobalPoint, GlobalPoint> (pointG, pointH);
31  }
32 
33  std::pair <double, double> pathLength() const {
34  if (!pointsUpdated) finalPoints();
35  return std::pair <double, double> ( pathG, pathH);
36  }
37 
38 
39 
40  double firstAngle() const {return thepG;}
41  double secondAngle() const {return thepH;}
42 
43 private:
44  bool updateCoeffs( const GlobalPoint & , const GlobalPoint & );
45  bool oneIteration ( double &, double & ) const;
46 
47 // bool parallelTracks () const;
48  void finalPoints() const;
49 
50 private:
52  // the 'GH-track data' (constants)
54  // double thelambdaG, thelambdaH;
58  double thepG0, thepH0;
59 
60  // the variable stuff
61  // = the point we are currently looking at.
62  mutable double thepG, thepH;
63  mutable double thesinpG, thesinpH;
64  mutable double thecospG, thecospH;
66  mutable double pathG, pathH;
67  mutable bool pointsUpdated;
68 
71 
72 };
73 #endif
std::pair< double, double > pathLength() const
bool updateCoeffs(const GlobalPoint &, const GlobalPoint &)
bool calculate(const GlobalTrajectoryParameters &, const GlobalTrajectoryParameters &, const float qual=.001)
std::pair< GlobalPoint, GlobalPoint > points() const