CMS 3D CMS Logo

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

#include <OuterHitPhiPrediction.h>

Public Types

typedef
TkTrackingRegionsMargin< float > 
Margin
 
typedef PixelRecoRange< float > Range
 

Public Member Functions

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

Private Attributes

Range theCurvature
 
float theOriginRBound
 
Range thePhiAtVertex
 
Margin theTolerance
 

Detailed Description

predicts phi range at a given radius r

Definition at line 10 of file OuterHitPhiPrediction.h.

Member Typedef Documentation

Definition at line 14 of file OuterHitPhiPrediction.h.

Definition at line 13 of file OuterHitPhiPrediction.h.

Constructor & Destructor Documentation

OuterHitPhiPrediction::OuterHitPhiPrediction ( const Range phiAtVertex,
const Range curvature,
float  originRBound,
const Margin tolerance = Margin(0,0) 
)
inline

Definition at line 16 of file OuterHitPhiPrediction.h.

21  : thePhiAtVertex(phiAtVertex), theCurvature(curvature),
22  theOriginRBound (originRBound), theTolerance(tolerance) { }
T curvature(T InversePt, const edm::EventSetup &iSetup)

Member Function Documentation

OuterHitPhiPrediction::Range OuterHitPhiPrediction::operator() ( float  radius) const

Definition at line 5 of file OuterHitPhiPrediction.cc.

References TkTrackingRegionsMargin< T >::left(), M_PI, max(), PixelRecoRange< T >::max(), PixelRecoRange< T >::mean(), PixelRecoRange< T >::min(), CosmicsPD_Skims::radius, TkTrackingRegionsMargin< T >::right(), theCurvature, theOriginRBound, thePhiAtVertex, and theTolerance.

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
void OuterHitPhiPrediction::setTolerance ( const Margin tolerance)
inline

Definition at line 24 of file OuterHitPhiPrediction.h.

References theTolerance.

Referenced by RectangularEtaPhiTrackingRegion::estimator().

24 { theTolerance = tolerance; }

Member Data Documentation

Range OuterHitPhiPrediction::theCurvature
private

Definition at line 29 of file OuterHitPhiPrediction.h.

Referenced by operator()().

float OuterHitPhiPrediction::theOriginRBound
private

Definition at line 30 of file OuterHitPhiPrediction.h.

Referenced by operator()().

Range OuterHitPhiPrediction::thePhiAtVertex
private

Definition at line 28 of file OuterHitPhiPrediction.h.

Referenced by operator()().

Margin OuterHitPhiPrediction::theTolerance
private

Definition at line 31 of file OuterHitPhiPrediction.h.

Referenced by operator()(), and setTolerance().