10 using namespace tauImpactParameter;
13 const TVectorT<double>& inPar,
14 TMatrixTSym<double>& inCov,
16 double errorEpsilonRatio) {
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);
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)