Skip to content

Commit 0336f86

Browse files
committed
extend hFitResult business on MC case
1 parent d181de2 commit 0336f86

1 file changed

Lines changed: 10 additions & 11 deletions

File tree

PWGHF/D2H/Macros/HFInvMassFitter.cxx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -228,14 +228,15 @@ void HFInvMassFitter::doFit()
228228

229229
const double integralHisto = integrateHistoInvMassOverWorkspaceRanges({"full"});
230230
// fit MC or Data
231+
RooFitResult* fitResult{nullptr};
231232
if (mTypeOfBkgPdf == NoBkg) { // MC
232233
const ParameterRanges rooNSgnParamRanges{0.5 * integralHisto, 1.5 * integralHisto, integralHisto};
233234
mRooNSgn = new RooRealVar("mRooNSig", "number of signal", randomizeInitialParameter(rooNSgnParamRanges), rooNSgnParamRanges.lower, rooNSgnParamRanges.upper); // signal yield
234235
mTotalPdf = new RooAddPdf("mMCFunc", "MC fit function", RooArgList(*sgnPdf), RooArgList(*mRooNSgn)); // create total pdf
235236
if (strcmp(mFitOption.c_str(), "Chi2") == 0) {
236-
mTotalPdf->chi2FitTo(dataHistogram, Range("full"));
237+
fitResult = mTotalPdf->chi2FitTo(dataHistogram, Range("full"), Save());
237238
} else {
238-
mTotalPdf->fitTo(dataHistogram, Range("full"));
239+
fitResult = mTotalPdf->fitTo(dataHistogram, Range("full"), Save());
239240
}
240241
RooAbsReal* signalIntegralMc = mTotalPdf->createIntegral(*mass, NormSet(*mass), Range("signal")); // sig yield from fit
241242
mIntegralSgn = signalIntegralMc->getValV();
@@ -276,7 +277,7 @@ void HFInvMassFitter::doFit()
276277
calculateBackground(mBkgYield, mBkgYieldErr); // BG's absolute integral in "bkg" range
277278

278279
const ParameterRanges rooNSgnParamRanges{0.1 * estimatedSignal, 10 * estimatedSignal, estimatedSignal};
279-
mRooNSgn = new RooRealVar("mNSgn", "number of signal", randomizeInitialParameter(rooNSgnParamRanges), rooNSgnParamRanges.lower, rooNSgnParamRanges.upper); // estimated signal yield
280+
mRooNSgn = new RooRealVar("mRooNSig", "number of signal", randomizeInitialParameter(rooNSgnParamRanges), rooNSgnParamRanges.lower, rooNSgnParamRanges.upper); // estimated signal yield
280281
if (mFixedRawYield > 0) {
281282
mRooNSgn->setVal(mFixedRawYield); // fixed signal yield
282283
mRooNSgn->setConstant(true);
@@ -308,20 +309,12 @@ void HFInvMassFitter::doFit()
308309
mTotalPdf = new RooAddPdf("mTotalPdf", "background + signal pdf", RooArgList(*bkgPdf, *sgnPdf), RooArgList(*mRooNBkg, *mRooNSgn));
309310
}
310311

311-
RooFitResult* fitResult{nullptr};
312312
if (strcmp(mFitOption.c_str(), "Chi2") == 0) {
313313
fitResult = mTotalPdf->chi2FitTo(dataHistogram, Save());
314314
} else {
315315
fitResult = mTotalPdf->fitTo(dataHistogram, Save());
316316
}
317317

318-
mFitStatus = fitResult->status();
319-
mCovQual = fitResult->covQual();
320-
mEdm = fitResult->edm();
321-
mMinNll = fitResult->minNll();
322-
mSgnGlobalCorrelCoeff = fitResult->globalCorr("mNSgn");
323-
mCovCorrMatrix = fillCovCorrMatrix(fitResult);
324-
325318
plotBkg(mTotalPdf);
326319
mTotalPdf->plotOn(mInvMassFrame, Name("Tot_c"), LineColor(kBlue));
327320
if (mHistoTemplateRefl != nullptr) {
@@ -353,6 +346,12 @@ void HFInvMassFitter::doFit()
353346
mRatioFrame = mass->frame(Title(Form("%s", mHistoInvMass->GetTitle())));
354347
calculateFitToDataRatio();
355348
}
349+
mFitStatus = fitResult->status();
350+
mCovQual = fitResult->covQual();
351+
mEdm = fitResult->edm();
352+
mMinNll = fitResult->minNll();
353+
mSgnGlobalCorrelCoeff = fitResult->globalCorr("mRooNSig");
354+
mCovCorrMatrix = fillCovCorrMatrix(fitResult);
356355
}
357356

358357
void HFInvMassFitter::fillWorkspace(RooWorkspace& workspace) const

0 commit comments

Comments
 (0)