#include <ErrorMatrixPropagator.h>
|
static TMatrixTSym< double > | propagateError (std::function< TVectorT< double >(const TVectorT< double > &)> f, const TVectorT< double > &inPar, TMatrixTSym< double > &inCov, double epsilon=0.001, double errorEpsilonRatio=1000) |
|
Definition at line 17 of file ErrorMatrixPropagator.h.
tauImpactParameter::ErrorMatrixPropagator::ErrorMatrixPropagator |
( |
| ) |
|
|
inline |
virtual tauImpactParameter::ErrorMatrixPropagator::~ErrorMatrixPropagator |
( |
| ) |
|
|
inlinevirtual |
TMatrixTSym< double > ErrorMatrixPropagator::propagateError |
( |
std::function< TVectorT< double >(const TVectorT< double > &)> |
f, |
|
|
const TVectorT< double > & |
inPar, |
|
|
TMatrixTSym< double > & |
inCov, |
|
|
double |
epsilon = 0.001 , |
|
|
double |
errorEpsilonRatio = 1000 |
|
) |
| |
|
static |
Definition at line 12 of file ErrorMatrixPropagator.cc.
References CommonMethods::delta(), geometryDiff::epsilon, relativeConstraints::error, validate-o2o-wbm::f, mps_fire::i, dqmiolumiharvest::j, mathSSE::sqrt(), and findQualityFiles::v.
Referenced by tauImpactParameter::ParticleBuilder::createLorentzVectorParticle(), tauImpactParameter::ParticleBuilder::createTrackParticle(), tauImpactParameter::TauA1NuConstrainedFitter::fit(), tauImpactParameter::TauA1NuConstrainedFitter::getMother(), tauImpactParameter::TrackHelixVertexFitter::getMother(), tauImpactParameter::TauA1NuConstrainedFitter::getRefitDaughters(), tauImpactParameter::TrackHelixVertexFitter::getRefitLorentzVectorParticles(), tauImpactParameter::TrackHelixVertexFitter::getRefitTracks(), tauImpactParameter::TauA1NuConstrainedFitter::getTauRotationSignificance(), tauImpactParameter::TrackTools::lorentzParticleAtPosition(), and tauImpactParameter::TauA1NuConstrainedFitter::TauA1NuConstrainedFitter().
17 TVectorT<double>
v =
f(inPar);
18 TMatrixT<double> Jacobian(inPar.GetNrows(), v.GetNrows());
19 for (
int i = 0;
i < inPar.GetNrows();
i++) {
20 TVectorT<double> ParPlusEpsilon = inPar;
23 if (delta * errorEpsilonRatio < error)
24 delta = error / errorEpsilonRatio;
25 ParPlusEpsilon(
i) +=
delta;
26 TVectorT<double> vp =
f(ParPlusEpsilon);
27 for (
int j = 0;
j < v.GetNrows();
j++) {
28 Jacobian(
i,
j) = (vp(
j) -
v(
j)) / delta;
31 TMatrixTSym<double> newCov = inCov.SimilarityT(Jacobian);