CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HelixArbitraryPlaneCrossing2Order.h
Go to the documentation of this file.
1 #ifndef HELIXARBITRARYPLANECROSSING2ORDER_H_
2 #define HELIXARBITRARYPLANECROSSING2ORDER_H_
5 
10 
11 
12 public:
16  const DirectionType& direction,
17  const float curvature,
18  const PropagationDirection propDir = alongMomentum);
21  HelixArbitraryPlaneCrossing2Order(const double& x0, const double& y0, const double& z0,
22  const double& cosPhi0, const double& sinPhi0,
23  const double& cosTheta, const double& sinTheta,
24  const double& rho,
25  const PropagationDirection propDir = alongMomentum) :
26  theX0(x0), theY0(y0), theZ0(z0),
27  theCosPhi0(cosPhi0), theSinPhi0(sinPhi0),
28  theCosTheta(cosTheta), theSinThetaI(1./sinTheta),
29  theRho(rho),
30  thePropDir(propDir) {}
31 
32  // destructor
34 
39  virtual std::pair<bool,double> pathLength(const Plane&);
40 
43  virtual PositionType position(double s) const;
44 
47  virtual DirectionType direction(double s) const;
48  //
49  // double precision vectors
50  //
53 
57 
61 
64  inline double smallestPathLength (const double firstPathLength,
65  const double secondPathLength) const {
66  return fabs(firstPathLength)<fabs(secondPathLength) ? firstPathLength : secondPathLength;
67  }
68 
69 private:
70 
73  std::pair<bool,double> solutionByDirection(const double dS1,const double dS2) const;
74 
75 private:
76  const double theX0,theY0,theZ0;
79  const double theRho;
81 
82 };
83 
84 #endif
85 
86 
HelixArbitraryPlaneCrossing2Order(const PositionType &point, const DirectionType &direction, const float curvature, const PropagationDirection propDir=alongMomentum)
DirectionTypeDouble directionInDouble(double s) const
Definition: DDAxes.h:10
virtual std::pair< bool, double > pathLength(const Plane &)
HelixArbitraryPlaneCrossing2Order(const double &x0, const double &y0, const double &z0, const double &cosPhi0, const double &sinPhi0, const double &cosTheta, const double &sinTheta, const double &rho, const PropagationDirection propDir=alongMomentum)
PropagationDirection
double smallestPathLength(const double firstPathLength, const double secondPathLength) const
Definition: Plane.h:17
T curvature(T InversePt, const edm::EventSetup &iSetup)
PositionTypeDouble positionInDouble(double s) const
std::pair< bool, double > solutionByDirection(const double dS1, const double dS2) const
Basic3DVector< float > PositionType
the helix is passed to the constructor and does not appear in the interface
Basic3DVector< float > DirectionType
virtual PositionType position(double s) const
virtual DirectionType direction(double s) const
string s
Definition: asciidump.py:422
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5