CMS 3D CMS Logo

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 15 of file OuterHitPhiPrediction.h.

Constructor & Destructor Documentation

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

Definition at line 17 of file OuterHitPhiPrediction.h.

21  : thePhiAtVertex(phiAtVertex), theCurvature(curvature),
22  theOriginRBound (originRBound) {
23  // assert(theCurvature.max()>0);
24  assert(theCurvature.max() == -theCurvature.min());
25  }
T max() const
T min() const
T curvature(T InversePt, const edm::EventSetup &iSetup)

Member Function Documentation

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

Definition at line 17 of file OuterHitPhiPrediction.cc.

References funct::abs(), f, M_PI, hpstanc_transforms::max, PixelRecoRange< T >::max(), PixelRecoRange< T >::mean(), PixelRecoRange< T >::min(), TCMET_cfi::radius, theCurvature, theOriginRBound, thePhiAtVertex, and theTolerance.

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 }
T max() const
T min() 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
Range OuterHitPhiPrediction::operator() ( float  radius) const
inline

Definition at line 29 of file OuterHitPhiPrediction.h.

References TCMET_cfi::radius.

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

Member Data Documentation

Range OuterHitPhiPrediction::theCurvature
private

Definition at line 38 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

float OuterHitPhiPrediction::theOriginRBound
private

Definition at line 39 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

Range OuterHitPhiPrediction::thePhiAtVertex
private

Definition at line 37 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().

float OuterHitPhiPrediction::theTolerance = 0.f
private

Definition at line 40 of file OuterHitPhiPrediction.h.

Referenced by asym(), and sym().