CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HelixBarrelPlaneCrossingByCircle.h
Go to the documentation of this file.
1 #ifndef HelixBarrelPlaneCrossingByCircle_H
2 #define HelixBarrelPlaneCrossingByCircle_H
3 
8 
14 public:
15 
17  const DirectionType& dir,
18  double rho,
20 
22  const GlobalVector& dir,
23  double rho,
25 
26  virtual std::pair<bool,double> pathLength( const Plane&);
27 
28  virtual PositionType position( double s) const;
29 
30  virtual DirectionType direction( double s) const;
31 
32 private:
33 
35 
38  double theRho;
40 
41  double theCosTheta;
42  double theSinTheta;
43  double theXCenter;
44  double theYCenter;
45 
46  // caching of the solution for faster access
47  double theS;
49  double theDmag;
50 
51  // internal communication - not very clean
52  double theActualDir;
54 
55  void init();
56  bool chooseSolution( const Vector2D& d1, const Vector2D& d2);
57 
58 };
59 
60 #endif
virtual PositionType position(double s) const
#define GCC11_FINAL
Definition: DDAxes.h:10
PropagationDirection
Definition: Plane.h:17
bool chooseSolution(const Vector2D &d1, const Vector2D &d2)
Basic3DVector< float > PositionType
the helix is passed to the constructor and does not appear in the interface
virtual std::pair< bool, double > pathLength(const Plane &)
dbl *** dir
Definition: mlp_gen.cc:35
HelixBarrelPlaneCrossingByCircle(const PositionType &pos, const DirectionType &dir, double rho, PropagationDirection propDir=alongMomentum)
virtual DirectionType direction(double s) const