Calulates the (non-normalised) weight of a component the new mixture of vertices for the Gaussian Sum vertex filter. (c.f. Th.Speer & R. Fruewirth, Comp.Phys.Comm 174, 935 (2006) )
Definition at line 14 of file GsfVertexWeightCalculator.h.
Method to calculate the weight A negative weight is returned in case of error.
Definition at line 7 of file GsfVertexWeightCalculator.cc.
References a, b, diffTreeTool::diff, VertexState::error(), JetChargeProducer_cfi::exp, edm::isNotFinite(), M_PI, GlobalErrorBase< T, ErrorWeightType >::matrix(), VertexState::position(), funct::pow(), mathSSE::sqrt(), VertexState::weightInMixture(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by GsfVertexUpdator::createNewComponent(), and GsfVertexSmoother::createNewComponent().
23 oldVertexCoord[0] = oldVertexPosition.
x();
24 oldVertexCoord[1] = oldVertexPosition.
y();
25 oldVertexCoord[2] = oldVertexPosition.
z();
31 priorMomentumCov(0,0) = 1.0E-9;
32 priorMomentumCov(1,1) = 1.0E-6;
33 priorMomentumCov(2,2) = 1.0E-6;
34 priorMomentumCov *= cov;
37 a*oldVertexCoord -b*priorMomentum;
38 track->checkParameters(diff);
40 ROOT::Math::Similarity(a,oldVertexError) +
41 ROOT::Math::Similarity(b,priorMomentumCov);
45 int ifail = ! sigmaM.Invert();
47 edm::LogWarning(
"GsfVertexWeightCalculator") <<
"S matrix inversion failed";
52 double chi = ROOT::Math::Similarity(diff,sigmaM);;
60 return weight*previousWeight;
LinearizedTrackState< 5 >::AlgebraicMatrixNM AlgebraicMatrixNM
constexpr bool isNotFinite(T x)
const AlgebraicSymMatrix33 matrix() const
GlobalPoint position() const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
double weightInMixture() const
ROOT::Math::SVector< double, 3 > AlgebraicVector3
LinearizedTrackState< 5 >::AlgebraicMatrixN3 AlgebraicMatrixN3
LinearizedTrackState< 5 >::AlgebraicSymMatrixNN AlgebraicSymMatrixNN
LinearizedTrackState< 5 >::AlgebraicVectorN AlgebraicVectorN
GlobalError error() const
Power< A, B >::type pow(const A &a, const B &b)