/// This function sets up the TPaveText with chi2/ndf and parameters values +- errors void setTPaveText(const TF1 * fit, TPaveText * paveText) { Double_t chi2 = fit->GetChisquare(); Int_t ndf = fit->GetNDF(); paveText->AddText(setText("#chi^2 / ndf = ", chi2, " / ", ndf)); for( int iPar=0; iPar<fit->GetNpar(); ++iPar ) { TString parName(fit->GetParName(iPar)); Double_t parValue = fit->GetParameter(iPar); // value of Nth parameter Double_t parError = fit->GetParError(iPar); // error on Nth parameter paveText->AddText(setText(parName + " = ", parValue, " #pm ", parError)); } }
void MSM_middleburyImp::loadDataset(const string &path) { train.push_back(vector< Ptr<Object> >()); test.push_back(vector< Ptr<Object> >()); validation.push_back(vector< Ptr<Object> >()); string name(path.substr(0, path.length()-1)); size_t start = name.rfind('/'); name = name.substr(start+1, name.length()-start); string angName(path + name + "_ang.txt"); string parName(path + name + "_par.txt"); ifstream infile(parName.c_str()); string imageName; infile >> imageName; // skip header while (infile >> imageName) { Ptr<MSM_middleburyObj> curr(new MSM_middleburyObj); curr->imageName = imageName; for (int i=0; i<3; ++i) { for (int j=0; j<3; ++j) { infile >> curr->k(i, j); } } for (int i=0; i<3; ++i) { for (int j=0; j<3; ++j) { infile >> curr->r(i, j); } } for (int i=0; i<3; ++i) { infile >> curr->t[i]; } train.back().push_back(curr); } }