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
ThirdHitZPrediction Class Reference

#include <ThirdHitZPrediction.h>

Public Types

typedef PixelRecoRange< float > Range
 

Public Member Functions

Range operator() (const GlobalPoint &p3, float erroRPhi3) const
 
 ThirdHitZPrediction (const GlobalPoint &p1, float erroRPhi1, float errorZ1, const GlobalPoint &p2, float erroRPhi2, float errorZ2, double curvature, double nSigma=3.)
 

Private Attributes

double dR12
 
double dS12
 
double dZ12
 
double sqr_errorXY12
 
double sqr_errorXY2
 
double theCurvature
 
double theErrorZ1
 
double theErrorZ2
 
double theNSigma
 
GlobalPoint thePoint2
 

Detailed Description

Definition at line 9 of file ThirdHitZPrediction.h.

Member Typedef Documentation

Definition at line 11 of file ThirdHitZPrediction.h.

Constructor & Destructor Documentation

ThirdHitZPrediction::ThirdHitZPrediction ( const GlobalPoint p1,
float  erroRPhi1,
float  errorZ1,
const GlobalPoint p2,
float  erroRPhi2,
float  errorZ2,
double  curvature,
double  nSigma = 3. 
)
inline

Definition at line 12 of file ThirdHitZPrediction.h.

References abs, dR12, dS12, dZ12, alignCSCRings::e, p1, and theCurvature.

14  :
15  thePoint2(p2),
16  sqr_errorXY12(erroRPhi1*erroRPhi1+erroRPhi2*erroRPhi2),
17  sqr_errorXY2(erroRPhi2*erroRPhi2),
18  theErrorZ1(errorZ1),
19  theErrorZ2(errorZ2),
21  auto d = p2-p1;
22  dR12 = d.perp(); if (dR12 < 1.e-5) dR12 = 1.e-5;
23  dS12 = std::abs(0.5*dR12*theCurvature) <1 ? std::asin(0.5*dR12*theCurvature) : 1.;
24  dZ12 = d.z();
25  }
#define abs(x)
Definition: mlp_lapack.h:159
T curvature(T InversePt, const edm::EventSetup &iSetup)
double p1[4]
Definition: TauolaWrapper.h:89

Member Function Documentation

ThirdHitZPrediction::Range ThirdHitZPrediction::operator() ( const GlobalPoint p3,
float  erroRPhi3 
) const

Definition at line 8 of file ThirdHitZPrediction.cc.

References abs, dR12, dS12, dZ12, alignCSCRings::e, error, perp(), slope, funct::sqr(), sqr_errorXY12, sqr_errorXY2, mathSSE::sqrt(), theCurvature, theErrorZ1, theErrorZ2, theNSigma, thePoint2, and PV3DBase< T, PVType, FrameType >::z().

10 {
11  double dR23 = (thePoint3-thePoint2).perp();
12 
13  double slope = dR23/dR12;
14  if ( (theCurvature > 1.e-4)
15  && (std::abs(0.5*dR23*theCurvature) < 1.)
16  ) slope = std::asin(0.5*dR23*theCurvature)/dS12;
17 
18  double z3 = thePoint2.z() + dZ12*slope;
19 
20  double sqr_errorXY23 = sqr_errorXY2+sqr(erroRPhi3);
21  double error = sqrt( sqr( (1+dR23/dR12)*theErrorZ2 )
22  + sqr( dR23/dR12 * theErrorZ1 )
23  + sqr(dZ12/dR12 )*sqr_errorXY23
24  + sqr((dZ12/dR12)*(dR23/dR12))*sqr_errorXY12
25  );
26  error *= theNSigma;
27  return Range(z3-error,z3+error);
28 }
PixelRecoRange< float > Range
static const double slope[3]
#define abs(x)
Definition: mlp_lapack.h:159
T sqrt(T t)
Definition: SSEVec.h:48
T z() const
Definition: PV3DBase.h:64
T perp() const
Magnitude of transverse component.
Square< F >::type sqr(const F &f)
Definition: Square.h:13

Member Data Documentation

double ThirdHitZPrediction::dR12
private

Definition at line 29 of file ThirdHitZPrediction.h.

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

double ThirdHitZPrediction::dS12
private

Definition at line 29 of file ThirdHitZPrediction.h.

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

double ThirdHitZPrediction::dZ12
private

Definition at line 29 of file ThirdHitZPrediction.h.

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

double ThirdHitZPrediction::sqr_errorXY12
private

Definition at line 30 of file ThirdHitZPrediction.h.

Referenced by operator()().

double ThirdHitZPrediction::sqr_errorXY2
private

Definition at line 31 of file ThirdHitZPrediction.h.

Referenced by operator()().

double ThirdHitZPrediction::theCurvature
private

Definition at line 33 of file ThirdHitZPrediction.h.

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

double ThirdHitZPrediction::theErrorZ1
private

Definition at line 32 of file ThirdHitZPrediction.h.

Referenced by operator()().

double ThirdHitZPrediction::theErrorZ2
private

Definition at line 32 of file ThirdHitZPrediction.h.

Referenced by operator()().

double ThirdHitZPrediction::theNSigma
private

Definition at line 34 of file ThirdHitZPrediction.h.

Referenced by operator()().

GlobalPoint ThirdHitZPrediction::thePoint2
private

Definition at line 28 of file ThirdHitZPrediction.h.

Referenced by operator()().