Skip to content
This repository was archived by the owner on Jun 4, 2021. It is now read-only.

Commit 5ba87eb

Browse files
committed
Merge pull request #11 from kreczko/fixes-for-v2
Fixes for version 2.00.01 - error calculation
2 parents 76d7f3c + 7d765dc commit 5ba87eb

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

src/RooUnfoldSvd.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,10 @@ RooUnfoldSvd::Unfold()
180180
if (_verbose >= 1)
181181
cout << "SVD init " << _reshist->GetNbinsX() << " x " << _reshist->GetNbinsY() << " bins, kreg=" << _kreg
182182
<< " taureg=" << _taureg << endl;
183-
_svd= new TauSVDUnfold (_meas1d, _train1d, _truth1d, _reshist);
183+
if(_use_tau_unfolding)
184+
_svd= new TauSVDUnfold (_meas1d, _train1d, _truth1d, _reshist);
185+
else
186+
_svd= new TSVDUnfold_local (_meas1d, _train1d, _truth1d, _reshist);
184187
TH1D* rechist = 0;
185188
if (_use_tau_unfolding)
186189
rechist = ((TauSVDUnfold*) _svd)->Unfold(_taureg);

src/TauSVDUnfold.cxx

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,8 @@ TH1D* TauSVDUnfold::Unfold(double tau) {
211211
M2H(Xtau, *fXtau);
212212
M2H(Xinv, *fXinv);
213213
}
214-
215-
// DAVID
216-
// Speichere die Kruemmung ab!
217-
fCurv = GetCurvature(vw, mCurv);
218214
// Get Curvature and also chi2 in case of MC unfolding
215+
fCurv = GetCurvature(vw, mCurv);
219216
if (!fToyMode && !fMatToyMode) {
220217
Info("Unfold", "Unfolding param: %i", k + 1);
221218
Info("Unfold", "Curvature of weight distribution: %f", fCurv);
@@ -502,7 +499,10 @@ TH2D* TauSVDUnfold::GetUnfoldCovMatrix(const TH2D* cov, Int_t ntoys, Int_t seed)
502499
fToyhisto->SetBinContent(j, fBdat->GetBinContent(j) + g(j - 1));
503500
fToyhisto->SetBinError(j, fBdat->GetBinError(j));
504501
}
505-
unfres = Unfold(GetTau());
502+
if (GetKReg() > 0)
503+
unfres = Unfold(GetKReg());
504+
else
505+
unfres = Unfold(GetTau());
506506

507507
for (Int_t j = 1; j <= fNdim; j++) {
508508
toymean->SetBinContent(j, toymean->GetBinContent(j) + unfres->GetBinContent(j) / ntoys);
@@ -530,7 +530,11 @@ TH2D* TauSVDUnfold::GetUnfoldCovMatrix(const TH2D* cov, Int_t ntoys, Int_t seed)
530530
fToyhisto->SetBinContent(j, fBdat->GetBinContent(j) + g(j - 1));
531531
fToyhisto->SetBinError(j, fBdat->GetBinError(j));
532532
}
533-
unfres = Unfold(GetTau());
533+
534+
if (GetKReg() > 0)
535+
unfres = Unfold(GetKReg());
536+
else
537+
unfres = Unfold(GetTau());
534538

535539
for (Int_t j = 1; j <= fNdim; j++) {
536540
for (Int_t k = 1; k <= fNdim; k++) {
@@ -580,8 +584,10 @@ TH2D* TauSVDUnfold::GetAdetCovMatrix(Int_t ntoys, Int_t seed = 1) {
580584
}
581585
}
582586
}
583-
584-
unfres = Unfold(GetTau());
587+
if (GetKReg() > 0)
588+
unfres = Unfold(GetKReg());
589+
else
590+
unfres = Unfold(GetTau());
585591

586592
for (Int_t j = 1; j <= fNdim; j++) {
587593
toymean->SetBinContent(j, toymean->GetBinContent(j) + unfres->GetBinContent(j) / ntoys);
@@ -601,7 +607,10 @@ TH2D* TauSVDUnfold::GetAdetCovMatrix(Int_t ntoys, Int_t seed = 1) {
601607
}
602608
}
603609

604-
unfres = Unfold(GetTau());
610+
if (GetKReg() > 0)
611+
unfres = Unfold(GetKReg());
612+
else
613+
unfres = Unfold(GetTau());
605614

606615
for (Int_t j = 1; j <= fNdim; j++) {
607616
for (Int_t k = 1; k <= fNdim; k++) {

test/TestRooUnfoldSvd.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ struct RooUnfoldSvdSetup {
113113

114114
void check_unfolded_data_against_truth(const TH1D* unfolded_data, bool use_sqrt_N = false) {
115115
for (auto i = 1; i <= unfolded_data->GetNbinsX(); ++i) {
116+
// cout << unfolded_data->GetBinContent(i) << "+-" << unfolded_data->GetBinError(i) << endl;
116117
double error = use_sqrt_N ? sqrt(unfolded_data->GetBinContent(i)) : unfolded_data->GetBinError(i);
117118
double relative_error = error / unfolded_data->GetBinContent(i);
118119
// error for BOOST_CHECK_CLOSE has to be given in %

0 commit comments

Comments
 (0)