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.
3 
6 {
7  auto arc = radius*theCurvature.max()*0.5f + theOriginRBound/radius;
8 
9  auto Phi_r = unsafe_asin07<5>(arc);
10  return Range( thePhiAtVertex.min() - Phi_r - theTolerance,
11  thePhiAtVertex.max() + Phi_r + theTolerance);
12 }
13 
14 
15 // in case somebody comes with a RELEVANT use case...
18 {
19 
20  auto invr = 1.f/radius;
22  return Range(-M_PI,M_PI);
23 
24  float Phi_r = std::asin(radius*theCurvature.max()*0.5f + theOriginRBound*invr);
25 
26  if (theCurvature.max() == -theCurvature.min())
27  return Range( thePhiAtVertex.min() - Phi_r - theTolerance,
28  thePhiAtVertex.max() + Phi_r + theTolerance);
29 
30  float curv0 = theCurvature.mean();
31  float Phi_0 = std::asin(radius*curv0*0.5f);
32  float Phi_m = std::asin(radius*theCurvature.min()*0.5f-theOriginRBound*invr);
33  return Range( thePhiAtVertex.min() + Phi_0 + Phi_m - theTolerance,
34  thePhiAtVertex.max() + Phi_0 + Phi_r + theTolerance);
35 
36 }
37 
Range sym(float radius) const
T max() const
T min() const
Range asym(float radius) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
#define M_PI
T mean() const
PixelRecoRange< float > Range