CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
OuterHitPhiPrediction Class Reference

#include <OuterHitPhiPrediction.h>

Public Types

using Range = PixelRecoRange< float >
 

Public Member Functions

Range operator() (float radius) const
 
 OuterHitPhiPrediction (const Range &phiAtVertex, const Range &curvature, float originRBound)
 
void setTolerance (float tolerance)
 

Private Member Functions

Range asym (float radius) const
 
Range sym (float radius) const
 

Private Attributes

Range theCurvature
 
float theOriginRBound
 
Range thePhiAtVertex
 
float theTolerance = 0.f
 

Detailed Description

predicts phi range at a given radius r

Definition at line 12 of file OuterHitPhiPrediction.h.

Member Typedef Documentation

Definition at line 14 of file OuterHitPhiPrediction.h.

Constructor & Destructor Documentation

OuterHitPhiPrediction::OuterHitPhiPrediction ( const Range phiAtVertex,
const Range curvature,
float  originRBound 
)
inline

Definition at line 16 of file OuterHitPhiPrediction.h.

References cms::cuda::assert().

17  : thePhiAtVertex(phiAtVertex), theCurvature(curvature), theOriginRBound(originRBound) {
18  // assert(theCurvature.max()>0);
20  }
T max() const
T min() const
assert(be >=bs)
T curvature(T InversePt, const MagneticField &field)

Member Function Documentation

OuterHitPhiPrediction::Range OuterHitPhiPrediction::asym ( float  radius) const
private

Definition at line 12 of file OuterHitPhiPrediction.cc.

References funct::abs(), validate-o2o-wbm::f, M_PI, PixelRecoRange< T >::max(), SiStripPI::max, PixelRecoRange< T >::mean(), PixelRecoRange< T >::min(), CosmicsPD_Skims::radius, theCurvature, theOriginRBound, thePhiAtVertex, and theTolerance.

12  {
13  auto invr = 1.f / radius;
15  return Range(-M_PI, M_PI);
16 
17  float Phi_r = std::asin(radius * theCurvature.max() * 0.5f + theOriginRBound * invr);
18 
19  if (theCurvature.max() == -theCurvature.min())
20  return Range(thePhiAtVertex.min() - Phi_r - theTolerance, thePhiAtVertex.max() + Phi_r + theTolerance);
21 
22  float curv0 = theCurvature.mean();
23  float Phi_0 = std::asin(radius * curv0 * 0.5f);
24  float Phi_m = std::asin(radius * theCurvature.min() * 0.5f - theOriginRBound * invr);
25  return Range(thePhiAtVertex.min() + Phi_0 + Phi_m - theTolerance,
26  thePhiAtVertex.max() + Phi_0 + Phi_r + theTolerance);
27 }
T max() const
T min() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
#define M_PI
T mean() const
PixelRecoRange< float > Range
Range OuterHitPhiPrediction::operator() ( float  radius) const
inline

Definition at line 24 of file OuterHitPhiPrediction.h.

24 { return sym(radius); }
Range sym(float radius) const
void OuterHitPhiPrediction::setTolerance ( float  tolerance)
inline

Definition at line 22 of file OuterHitPhiPrediction.h.

References tolerance.

Referenced by RectangularEtaPhiTrackingRegion::estimator().

const double tolerance
OuterHitPhiPrediction::Range OuterHitPhiPrediction::sym ( float  radius) const
private

Member Data Documentation

Range OuterHitPhiPrediction::theCurvature
private

Definition at line 31 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

float OuterHitPhiPrediction::theOriginRBound
private

Definition at line 32 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

Range OuterHitPhiPrediction::thePhiAtVertex
private

Definition at line 30 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

float OuterHitPhiPrediction::theTolerance = 0.f
private

Definition at line 33 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().