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_
6 
11 
12 
13 public:
17  const DirectionType& direction,
18  const float curvature,
19  const PropagationDirection propDir = alongMomentum);
22  HelixArbitraryPlaneCrossing2Order(const double& x0, const double& y0, const double& z0,
23  const double& cosPhi0, const double& sinPhi0,
24  const double& cosTheta, const double& sinTheta,
25  const double& rho,
26  const PropagationDirection propDir = alongMomentum) :
27  theX0(x0), theY0(y0), theZ0(z0),
28  theCosPhi0(cosPhi0), theSinPhi0(sinPhi0),
29  theCosTheta(cosTheta), theSinThetaI(1./sinTheta),
30  theRho(rho),
31  thePropDir(propDir) {}
32 
33  // destructor
35 
40  virtual std::pair<bool,double> pathLength(const Plane&);
41 
44  virtual PositionType position(double s) const;
45 
48  virtual DirectionType direction(double s) const;
49  //
50  // double precision vectors
51  //
54 
58 
62 
65  inline double smallestPathLength (const double firstPathLength,
66  const double secondPathLength) const {
67  return fabs(firstPathLength)<fabs(secondPathLength) ? firstPathLength : secondPathLength;
68  }
69 
70 private:
71 
74  std::pair<bool,double> solutionByDirection(const double dS1,const double dS2) const dso_internal;
75 
76 private:
77  const double theX0,theY0,theZ0;
80  const double theRho;
82 
83 };
84 
85 #endif
86 
87 
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
#define dso_internal
Definition: Visibility.h:13
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
*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