#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 |
Definition at line 9 of file ThirdHitZPrediction.h.
typedef PixelRecoRange<float> ThirdHitZPrediction::Range |
Definition at line 11 of file ThirdHitZPrediction.h.
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.
: thePoint2(p2), sqr_errorXY12(erroRPhi1*erroRPhi1+erroRPhi2*erroRPhi2), sqr_errorXY2(erroRPhi2*erroRPhi2), theErrorZ1(errorZ1), theErrorZ2(errorZ2), theCurvature(curvature), theNSigma(nSigma){ auto d = p2-p1; dR12 = d.perp(); if (dR12 < 1.e-5) dR12 = 1.e-5; dS12 = std::abs(0.5*dR12*theCurvature) <1 ? std::asin(0.5*dR12*theCurvature) : 1.; dZ12 = d.z(); }
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().
{ double dR23 = (thePoint3-thePoint2).perp(); double slope = dR23/dR12; if ( (theCurvature > 1.e-4) && (std::abs(0.5*dR23*theCurvature) < 1.) ) slope = std::asin(0.5*dR23*theCurvature)/dS12; double z3 = thePoint2.z() + dZ12*slope; double sqr_errorXY23 = sqr_errorXY2+sqr(erroRPhi3); double error = sqrt( sqr( (1+dR23/dR12)*theErrorZ2 ) + sqr( dR23/dR12 * theErrorZ1 ) + sqr(dZ12/dR12 )*sqr_errorXY23 + sqr((dZ12/dR12)*(dR23/dR12))*sqr_errorXY12 ); error *= theNSigma; return Range(z3-error,z3+error); }
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()().