CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OuterHitPhiPrediction.cc
Go to the documentation of this file.
1 #include <cmath>
3 
6 {
7 
8  if( std::max(fabs(theCurvature.min()), fabs(theCurvature.max())) > 1./radius)
9  return Range(-M_PI,M_PI);
10 
11  float Phi_r = asin(radius*theCurvature.max()/2 + theOriginRBound/radius);
12  float curv0 = theCurvature.mean();
13 
14  if (curv0 == 0.) {
15  return Range( thePhiAtVertex.min() - Phi_r - theTolerance.left(),
16  thePhiAtVertex.max() + Phi_r + theTolerance.right());
17  }
18  else {
19  float Phi_0 = asin(radius*curv0/2);
20  float Phi_m = asin(radius*theCurvature.min()/2-theOriginRBound/radius);
21  return Range( thePhiAtVertex.min() + Phi_0 + Phi_m - theTolerance.left(),
22  thePhiAtVertex.max() + Phi_0 + Phi_r + theTolerance.right());
23  }
24 }
T max() const
T min() const
const T & max(const T &a, const T &b)
PixelRecoRange< float > Range
#define M_PI
Definition: BFit3D.cc:3
T mean() const
Range operator()(float radius) const