13 const TVectorT<double>& inPar, TMatrixTSym<double>& inCov,
double epsilon,
double errorEpsilonRatio){
14 TVectorT<double>
v=
f(inPar);
15 TMatrixT<double> Jacobian(inPar.GetNrows(),v.GetNrows());
16 for(
int i=0;
i<inPar.GetNrows();
i++){
17 TVectorT<double> ParPlusEpsilon=inPar;
20 if(delta*errorEpsilonRatio<error) delta=error/errorEpsilonRatio;
22 TVectorT<double> vp=
f(ParPlusEpsilon);
23 for(
int j=0;j<v.GetNrows();j++){
24 Jacobian(
i,j)=(vp(j)-
v(j))/delta;
27 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)