@@ -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
358357void HFInvMassFitter::fillWorkspace (RooWorkspace& workspace) const
0 commit comments