CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
ThirdHitPredictionFromInvLine Class Reference

#include <ThirdHitPredictionFromInvLine.h>

Classes

class  MappedPoint
 

Public Types

typedef PixelRecoRange< float > Range
 
typedef TkRotation< double > Rotation
 

Public Member Functions

void add (const GlobalPoint &p, double erroriRPhi=1.)
 
double chi2 () const
 
GlobalPoint crossing (double radius) const
 
double curvature () const
 
double errorCurvature () const
 
void print () const
 
void remove (const GlobalPoint &p, double erroriRPhi=1.)
 
int size () const
 
 ThirdHitPredictionFromInvLine (const GlobalPoint &P1, const GlobalPoint &P2, double errorRPhiP1=1., double errorRPhiP2=1.)
 

Private Types

typedef MappedPoint< double > PointUV
 

Private Member Functions

void add (const ThirdHitPredictionFromInvLine::PointUV &point, double weight)
 
void check ()
 

Private Attributes

bool hasParameters
 
int nPoints
 
double theChi2
 
double theCurvatureError
 
double theCurvatureValue
 
Rotation theRotation
 
long double theSum
 
long double theSumU
 
long double theSumUU
 
long double theSumUV
 
long double theSumV
 
long double theSumVV
 

Detailed Description

Definition at line 19 of file ThirdHitPredictionFromInvLine.h.

Member Typedef Documentation

Definition at line 71 of file ThirdHitPredictionFromInvLine.h.

Definition at line 24 of file ThirdHitPredictionFromInvLine.h.

Definition at line 23 of file ThirdHitPredictionFromInvLine.h.

Constructor & Destructor Documentation

ThirdHitPredictionFromInvLine::ThirdHitPredictionFromInvLine ( const GlobalPoint P1,
const GlobalPoint P2,
double  errorRPhiP1 = 1.,
double  errorRPhiP2 = 1. 
)

Definition at line 20 of file ThirdHitPredictionFromInvLine.cc.

References add(), theRotation, Vector3DBase< T, FrameTag >::unit(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

23  : nPoints(0), theSum(0.), theSumU(0.), theSumUU(0.), theSumV(0.), theSumUV(0.), theSumVV(0.),
25 {
26  GlobalVector aX = GlobalVector( P1.x(), P1.y(), 0.).unit();
27  GlobalVector aY( -aX.y(), aX.x(), 0.);
28  GlobalVector aZ( 0., 0., 1.);
29  theRotation = Rotation(aX,aY,aZ);
30 
31  add(P1, errorRPhiP1);
32  add(P2, errorRPhiP2);
33 }
void add(const GlobalPoint &p, double erroriRPhi=1.)
T y() const
Definition: PV3DBase.h:63
Vector3DBase unit() const
Definition: Vector3DBase.h:57
T x() const
Definition: PV3DBase.h:62
Global3DVector GlobalVector
Definition: GlobalVector.h:10

Member Function Documentation

void ThirdHitPredictionFromInvLine::add ( const GlobalPoint p,
double  erroriRPhi = 1. 
)

Definition at line 48 of file ThirdHitPredictionFromInvLine.cc.

References PV3DBase< T, PVType, FrameType >::perp(), sqr(), theRotation, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by counter.Counter::register(), size(), and ThirdHitPredictionFromInvLine().

49 {
50  double weigth = sqr(sqr(p.perp())/errorRPhi);
51  add(PointUV(Point2D(p.x(),p.y()), &theRotation), weigth);
52 }
void add(const GlobalPoint &p, double erroriRPhi=1.)
T perp() const
Definition: PV3DBase.h:72
Basic2DVector< double > Point2D
T y() const
Definition: PV3DBase.h:63
T x() const
Definition: PV3DBase.h:62
void ThirdHitPredictionFromInvLine::add ( const ThirdHitPredictionFromInvLine::PointUV point,
double  weight 
)
private

Definition at line 54 of file ThirdHitPredictionFromInvLine.cc.

References check(), hasParameters, nPoints, sqr(), theSum, theSumU, theSumUU, theSumUV, theSumV, theSumVV, ThirdHitPredictionFromInvLine::MappedPoint< T >::u(), and ThirdHitPredictionFromInvLine::MappedPoint< T >::v().

Referenced by counter.Counter::register().

void ThirdHitPredictionFromInvLine::check ( void  )
private

Definition at line 88 of file ThirdHitPredictionFromInvLine.cc.

References patCaloMETCorrections_cff::A, TtFullHadDaughter::B, hasParameters, rho, sqr(), mathSSE::sqrt(), theChi2, theCurvatureError, theCurvatureValue, theSum, theSumU, theSumUU, theSumUV, theSumV, and theSumVV.

Referenced by add(), and remove().

89 {
90  if (hasParameters) return;
91 
92  long double D = theSumUU*theSum - theSumU*theSumU;
93  long double A = (theSumUV*theSum-theSumU*theSumV)/D;
94  long double B = (theSumUU*theSumV-theSumUV*theSumU)/D;
95  double rho = 2.*fabs(B)/sqrt(1+sqr(A));
96  double sigmaA2 = theSum/D;
97  double sigmaB2 = theSumUU/D;
98 
99  hasParameters = true;
100  theCurvatureError = sqrt( sqr(rho/B)*sigmaB2+ sqr(rho/(1+sqr(A)))*sigmaA2);
101  theCurvatureValue = 2.*fabs(B)/sqrt(1+sqr(A));
102  theChi2 = theSumVV - 2*A*theSumUV - 2*B*theSumV + 2*A*B*theSumU + B*B*theSum + A*A*theSumUU;
103 }
T sqrt(T t)
Definition: SSEVec.h:18
static const std::string B
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:152
double ThirdHitPredictionFromInvLine::chi2 ( void  ) const
inline
GlobalPoint ThirdHitPredictionFromInvLine::crossing ( double  radius) const

Definition at line 35 of file ThirdHitPredictionFromInvLine.cc.

References patCaloMETCorrections_cff::A, TtFullHadDaughter::B, delta, sqr(), mathSSE::sqrt(), theRotation, theSum, theSumU, theSumUU, theSumUV, theSumV, tmp, MetAnalyzer::u1, Basic2DVector< T >::x(), and Basic2DVector< T >::y().

Referenced by size().

36 {
39  double delta = sqr(2.*A*B) - 4*(1+sqr(A))*(sqr(B)-sqr(1/radius));
40  double sqrtdelta = (delta > 0.) ? sqrt(delta) : 0.;
41  double u1 = (-2.*A*B + sqrtdelta)/2./(1+sqr(A));
42  double v1 = A*u1+B;
43  Point2D tmp = PointUV(u1,v1, &theRotation).unmap();
44  return GlobalPoint(tmp.x(), tmp.y(), 0.);
45 }
dbl * delta
Definition: mlp_gen.cc:36
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
T sqrt(T t)
Definition: SSEVec.h:18
static const std::string B
T y() const
Cartesian y coordinate.
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
T x() const
Cartesian x coordinate.
double ThirdHitPredictionFromInvLine::curvature ( ) const
inline
double ThirdHitPredictionFromInvLine::errorCurvature ( ) const
inline
void ThirdHitPredictionFromInvLine::print ( void  ) const

Definition at line 82 of file ThirdHitPredictionFromInvLine.cc.

References gather_cfg::cout, nPoints, theSumU, theSumUU, theSumUV, and theSumV.

Referenced by chi2().

83 {
84  std::cout <<" nPoints: " << nPoints <<" theSumU: "<< theSumU <<" theSumUU: "<<theSumUU
85  <<" theSumV: "<< theSumV <<" theSumUV: "<<theSumUV<<std::endl;
86 }
void ThirdHitPredictionFromInvLine::remove ( const GlobalPoint p,
double  erroriRPhi = 1. 
)

Definition at line 67 of file ThirdHitPredictionFromInvLine.cc.

References check(), hasParameters, nPoints, PV3DBase< T, PVType, FrameType >::perp(), point, sqr(), theRotation, theSum, theSumU, theSumUU, theSumUV, theSumV, theSumVV, ThirdHitPredictionFromInvLine::MappedPoint< T >::u(), ThirdHitPredictionFromInvLine::MappedPoint< T >::v(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

68 {
69  hasParameters = false;
70  PointUV point(Point2D(p.x(),p.y()), &theRotation);
71  double weigth = sqr(sqr(p.perp())/errorRPhi);
72  nPoints--;
73  theSum -= weigth;
74  theSumU -= point.u()*weigth;
75  theSumUU -= sqr(point.u())*weigth;
76  theSumV -= point.v()*weigth;
77  theSumUV -= point.u()*point.v()*weigth;
78  theSumVV -= sqr(point.v())*weigth;
79  check();
80 }
T perp() const
Definition: PV3DBase.h:72
Basic2DVector< double > Point2D
T y() const
Definition: PV3DBase.h:63
T x() const
Definition: PV3DBase.h:62
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
int ThirdHitPredictionFromInvLine::size ( void  ) const
inline

Member Data Documentation

bool ThirdHitPredictionFromInvLine::hasParameters
private

Definition at line 79 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), chi2(), curvature(), errorCurvature(), and remove().

int ThirdHitPredictionFromInvLine::nPoints
private

Definition at line 77 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), print(), remove(), and size().

double ThirdHitPredictionFromInvLine::theChi2
private

Definition at line 80 of file ThirdHitPredictionFromInvLine.h.

Referenced by check(), and chi2().

double ThirdHitPredictionFromInvLine::theCurvatureError
private

Definition at line 80 of file ThirdHitPredictionFromInvLine.h.

Referenced by check(), and errorCurvature().

double ThirdHitPredictionFromInvLine::theCurvatureValue
private

Definition at line 80 of file ThirdHitPredictionFromInvLine.h.

Referenced by check(), and curvature().

Rotation ThirdHitPredictionFromInvLine::theRotation
private
long double ThirdHitPredictionFromInvLine::theSum
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), crossing(), and remove().

long double ThirdHitPredictionFromInvLine::theSumU
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), crossing(), print(), and remove().

long double ThirdHitPredictionFromInvLine::theSumUU
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), crossing(), print(), and remove().

long double ThirdHitPredictionFromInvLine::theSumUV
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), crossing(), print(), and remove().

long double ThirdHitPredictionFromInvLine::theSumV
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), crossing(), print(), and remove().

long double ThirdHitPredictionFromInvLine::theSumVV
private

Definition at line 78 of file ThirdHitPredictionFromInvLine.h.

Referenced by add(), check(), and remove().