![]() |
![]() |
#include <RecoVertex/TertiaryTracksVertexFinder/interface/DistanceOfVertices.h>
Public Member Functions | |
virtual Measurement1D | distance (const TransientVertex &, const TransientVertex &)=0 |
DistanceOfVertices () | |
virtual Measurement1D | signedDistance (const TransientVertex &, const TransientVertex &, const Hep3Vector &)=0 |
virtual | ~DistanceOfVertices () |
Protected Member Functions | |
Hep3Vector | deltaV2V1 (const TransientVertex &v1, const TransientVertex &v2) |
double | terms2D (const TransientVertex &v1, const TransientVertex &v2) |
double | terms3D (const TransientVertex &v1, const TransientVertex &v2) |
Definition at line 12 of file DistanceOfVertices.h.
DistanceOfVertices::DistanceOfVertices | ( | ) | [inline] |
virtual DistanceOfVertices::~DistanceOfVertices | ( | ) | [inline, virtual] |
Hep3Vector DistanceOfVertices::deltaV2V1 | ( | const TransientVertex & | v1, | |
const TransientVertex & | v2 | |||
) | [inline, protected] |
Definition at line 25 of file DistanceOfVertices.h.
References TransientVertex::position(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by DistanceOfVertices2D::distance(), DistanceOfVertices2D::signedDistance(), terms2D(), and terms3D().
00025 { 00026 return Hep3Vector ( v2.position().x() - v1.position().x() , 00027 v2.position().y() - v1.position().y() , 00028 v2.position().z() - v1.position().z() ) ; 00029 }
virtual Measurement1D DistanceOfVertices::distance | ( | const TransientVertex & | , | |
const TransientVertex & | ||||
) | [pure virtual] |
Implemented in DistanceOfVertices2D.
virtual Measurement1D DistanceOfVertices::signedDistance | ( | const TransientVertex & | , | |
const TransientVertex & | , | |||
const Hep3Vector & | ||||
) | [pure virtual] |
Implemented in DistanceOfVertices2D.
double DistanceOfVertices::terms2D | ( | const TransientVertex & | v1, | |
const TransientVertex & | v2 | |||
) | [inline, protected] |
Definition at line 32 of file DistanceOfVertices.h.
References GlobalErrorBase< T, ErrorWeightType >::cxx(), GlobalErrorBase< T, ErrorWeightType >::cyx(), GlobalErrorBase< T, ErrorWeightType >::cyy(), deltaV2V1(), and TransientVertex::positionError().
Referenced by DistanceOfVertices2D::distance(), and terms3D().
00032 { 00033 // better to have meaningful variables ... 00034 double deltaX = deltaV2V1(v1,v2).x() ; 00035 double deltaY = deltaV2V1(v1,v2).y() ; 00036 00037 // covariance matrix of the diff. = sum of ind. cov. matr. 00038 GlobalError covDelta = v1.positionError() + v2.positionError() ; 00039 00040 double covDeltaXX = covDelta.cxx() ; 00041 double covDeltaYY = covDelta.cyy() ; 00042 double covDeltaXY = covDelta.cyx() ; 00043 00044 return ( deltaX*deltaX * covDeltaXX + 00045 deltaY*deltaY * covDeltaYY + 00046 2*deltaX*deltaY * covDeltaXY ) ; 00047 }
double DistanceOfVertices::terms3D | ( | const TransientVertex & | v1, | |
const TransientVertex & | v2 | |||
) | [inline, protected] |
Definition at line 50 of file DistanceOfVertices.h.
References GlobalErrorBase< T, ErrorWeightType >::czx(), GlobalErrorBase< T, ErrorWeightType >::czy(), GlobalErrorBase< T, ErrorWeightType >::czz(), deltaV2V1(), TransientVertex::positionError(), and terms2D().
00050 { 00051 // 00052 double deltaX = deltaV2V1(v1,v2).x() ; 00053 double deltaY = deltaV2V1(v1,v2).y() ; 00054 double deltaZ = deltaV2V1(v1,v2).z() ; 00055 00056 // covariance matrix of the diff. = sum of ind. cov. matr. 00057 GlobalError covDelta = v1.positionError() + v2.positionError() ; 00058 00059 double covDeltaZZ = covDelta.czz() ; 00060 double covDeltaXZ = covDelta.czx() ; 00061 double covDeltaYZ = covDelta.czy() ; 00062 00063 00064 return ( terms2D ( v1 , v2 ) + 00065 deltaZ*deltaZ * covDeltaZZ + 00066 2*deltaX*deltaZ * covDeltaXZ + 00067 2*deltaY*deltaZ * covDeltaYZ ) ; 00068 }