Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:28

0001 #ifndef HelixBarrelPlaneCrossing2OrderLocal_H
0002 #define HelixBarrelPlaneCrossing2OrderLocal_H
0003 
0004 #include "DataFormats/GeometrySurface/interface/Plane.h"
0005 
0006 /** Calculates an approximate crossing of a helix and a barrel plane.
0007  *  The helix circle is approximated with a parabola.
0008  *  The current class name is misleading, since it does not have the
0009  *  HelixPlaneCrossing interface.
0010  */
0011 
0012 class HelixBarrelPlaneCrossing2OrderLocal {
0013 public:
0014   typedef Surface::GlobalPoint GlobalPoint;
0015   typedef Surface::GlobalVector GlobalVector;
0016   typedef Surface::LocalPoint LocalPoint;
0017   typedef Surface::LocalVector LocalVector;
0018 
0019   HelixBarrelPlaneCrossing2OrderLocal(const GlobalPoint& startingPos,
0020                                       const GlobalVector& startingDir,
0021                                       float rho,
0022                                       const Plane& plane);
0023 
0024   LocalPoint position() const { return thePos; }
0025   LocalVector direction() const { return theDir; }
0026 
0027   static LocalPoint positionOnly(const GlobalPoint& startingPos,
0028                                  const GlobalVector& startingDir,
0029                                  float rho,
0030                                  const Plane& plane);
0031 
0032 private:
0033   LocalPoint thePos;
0034   LocalVector theDir;
0035 };
0036 
0037 #endif