@@ -432,33 +432,38 @@ int runMassFitter(const TString& configFileName)
432432 const Double_t rawYieldErr = massFitter -> getRawYieldError ();
433433 const Double_t rawYieldCounted = massFitter -> getRawYieldCounted ();
434434 const Double_t rawYieldCountedErr = massFitter -> getRawYieldCountedError ();
435+ const Double_t reducedChiSquareBkg = massFitter -> getChiSquareOverNDFBkg ();
436+ const Double_t reducedChiSquareTotal = massFitter -> getChiSquareOverNDFTotal ();
435437 const Double_t mean = massFitter -> getMean ();
436438 const Double_t meanErr = massFitter -> getMeanUncertainty ();
437439 const Double_t sigma = massFitter -> getSigma ();
438440 const Double_t sigmaErr = massFitter -> getSigmaUncertainty ();
439- const Double_t secSigma = massFitter -> getSecSigma ();
440- const Double_t secSigmaErr = massFitter -> getSecSigmaUncertainty ();
441- const Double_t fracDoubleGaus = massFitter -> getFracDoubleGaus ();
442- const Double_t fracDoubleGausErr = massFitter -> getFracDoubleGausUncertainty ();
443- const Double_t reducedChiSquareBkg = massFitter -> getChiSquareOverNDFBkg ();
444- const Double_t reducedChiSquareTotal = massFitter -> getChiSquareOverNDFTotal ();
445441
446442 hRawYieldsSignal -> SetBinContent (iSliceVar + 1 , rawYield );
447443 hRawYieldsSignal -> SetBinError (iSliceVar + 1 , rawYieldErr );
448444 hRawYieldsSignalCounted -> SetBinContent (iSliceVar + 1 , rawYieldCounted );
449445 hRawYieldsSignalCounted -> SetBinError (iSliceVar + 1 , rawYieldCountedErr );
450- hRawYieldsMean -> SetBinContent (iSliceVar + 1 , mean );
451- hRawYieldsMean -> SetBinError (iSliceVar + 1 , meanErr );
452- hRawYieldsSigma -> SetBinContent (iSliceVar + 1 , sigma );
453- hRawYieldsSigma -> SetBinError (iSliceVar + 1 , sigmaErr );
454- hRawYieldsSecSigma -> SetBinContent (iSliceVar + 1 , secSigma );
455- hRawYieldsSecSigma -> SetBinError (iSliceVar + 1 , secSigmaErr );
456- hRawYieldsFracDoubleGaus -> SetBinContent (iSliceVar + 1 , fracDoubleGaus );
457- hRawYieldsFracDoubleGaus -> SetBinError (iSliceVar + 1 , fracDoubleGausErr );
458446 hRawYieldsChiSquareBkg -> SetBinContent (iSliceVar + 1 , reducedChiSquareBkg );
459447 hRawYieldsChiSquareBkg -> SetBinError (iSliceVar + 1 , 0. );
460448 hRawYieldsChiSquareTotal -> SetBinContent (iSliceVar + 1 , reducedChiSquareTotal );
461449 hRawYieldsChiSquareTotal -> SetBinError (iSliceVar + 1 , 0. );
450+ hRawYieldsMean -> SetBinContent (iSliceVar + 1 , mean );
451+ hRawYieldsMean -> SetBinError (iSliceVar + 1 , meanErr );
452+ hRawYieldsSigma -> SetBinContent (iSliceVar + 1 , sigma );
453+ hRawYieldsSigma -> SetBinError (iSliceVar + 1 , sigmaErr );
454+
455+ if (sgnFunc [iSliceVar ] != HFInvMassFitter ::SingleGaus ) {
456+ const Double_t secSigma = massFitter -> getSecSigma ();
457+ const Double_t secSigmaErr = massFitter -> getSecSigmaUncertainty ();
458+ hRawYieldsSecSigma -> SetBinContent (iSliceVar + 1 , secSigma );
459+ hRawYieldsSecSigma -> SetBinError (iSliceVar + 1 , secSigmaErr );
460+ }
461+ if (sgnFunc [iSliceVar ] == HFInvMassFitter ::DoubleGaus || sgnFunc [iSliceVar ] == HFInvMassFitter ::DoubleGausSigmaRatioPar ) {
462+ const Double_t fracDoubleGaus = massFitter -> getFracDoubleGaus ();
463+ const Double_t fracDoubleGausErr = massFitter -> getFracDoubleGausUncertainty ();
464+ hRawYieldsFracDoubleGaus -> SetBinContent (iSliceVar + 1 , fracDoubleGaus );
465+ hRawYieldsFracDoubleGaus -> SetBinError (iSliceVar + 1 , fracDoubleGausErr );
466+ }
462467 } else {
463468 HFInvMassFitter * massFitter ;
464469 massFitter = new HFInvMassFitter (hMassForFit [iSliceVar ], massMin [iSliceVar ], massMax [iSliceVar ],
@@ -506,43 +511,49 @@ int runMassFitter(const TString& configFileName)
506511 const double rawYieldErr = massFitter -> getRawYieldError ();
507512 const double rawYieldCounted = massFitter -> getRawYieldCounted ();
508513 const double rawYieldCountedErr = massFitter -> getRawYieldCountedError ();
514+ const double bkg = massFitter -> getBkgYield ();
515+ const double bkgErr = massFitter -> getBkgYieldError ();
516+ const double significance = massFitter -> getSignificance ();
517+ const double significanceErr = massFitter -> getSignificanceError ();
518+ const double reducedChiSquareBkg = massFitter -> getChiSquareOverNDFBkg ();
519+ const double reducedChiSquareTotal = massFitter -> getChiSquareOverNDFTotal ();
509520 const double mean = massFitter -> getMean ();
510521 const double meanErr = massFitter -> getMeanUncertainty ();
511522 const double sigma = massFitter -> getSigma ();
512523 const double sigmaErr = massFitter -> getSigmaUncertainty ();
513- const double secSigma = massFitter -> getSecSigma ();
514- const double secSigmaErr = massFitter -> getSecSigmaUncertainty ();
515- const double fracDoubleGaus = massFitter -> getFracDoubleGaus ();
516- const double fracDoubleGausErr = massFitter -> getFracDoubleGausUncertainty ();
517- const double reducedChiSquareBkg = massFitter -> getChiSquareOverNDFBkg ();
518- const double reducedChiSquareTotal = massFitter -> getChiSquareOverNDFTotal ();
519- const double significance = massFitter -> getSignificance ();
520- const double significanceErr = massFitter -> getSignificanceError ();
521- const double bkg = massFitter -> getBkgYield ();
522- const double bkgErr = massFitter -> getBkgYieldError ();
523524
524525 hRawYieldsSignal -> SetBinContent (iSliceVar + 1 , rawYield );
525526 hRawYieldsSignal -> SetBinError (iSliceVar + 1 , rawYieldErr );
526527 hRawYieldsSignalCounted -> SetBinContent (iSliceVar + 1 , rawYieldCounted );
527528 hRawYieldsSignalCounted -> SetBinError (iSliceVar + 1 , rawYieldCountedErr );
528- hRawYieldsMean -> SetBinContent (iSliceVar + 1 , mean );
529- hRawYieldsMean -> SetBinError (iSliceVar + 1 , meanErr );
530- hRawYieldsSigma -> SetBinContent (iSliceVar + 1 , sigma );
531- hRawYieldsSigma -> SetBinError (iSliceVar + 1 , sigmaErr );
532- hRawYieldsSecSigma -> SetBinContent (iSliceVar + 1 , secSigma );
533- hRawYieldsSecSigma -> SetBinError (iSliceVar + 1 , secSigmaErr );
534- hRawYieldsFracDoubleGaus -> SetBinContent (iSliceVar + 1 , fracDoubleGaus );
535- hRawYieldsFracDoubleGaus -> SetBinError (iSliceVar + 1 , fracDoubleGausErr );
536- hRawYieldsSignificance -> SetBinContent (iSliceVar + 1 , significance );
537- hRawYieldsSignificance -> SetBinError (iSliceVar + 1 , significanceErr );
538- hRawYieldsSgnOverBkg -> SetBinContent (iSliceVar + 1 , rawYield / bkg );
539- hRawYieldsSgnOverBkg -> SetBinError (iSliceVar + 1 , rawYield / bkg * std ::sqrt (rawYieldErr / rawYield * rawYieldErr / rawYield + bkgErr / bkg * bkgErr / bkg ));
540529 hRawYieldsBkg -> SetBinContent (iSliceVar + 1 , bkg );
541530 hRawYieldsBkg -> SetBinError (iSliceVar + 1 , bkgErr );
531+ hRawYieldsSgnOverBkg -> SetBinContent (iSliceVar + 1 , rawYield / bkg );
532+ hRawYieldsSgnOverBkg -> SetBinError (iSliceVar + 1 , rawYield / bkg * std ::sqrt (rawYieldErr / rawYield * rawYieldErr / rawYield + bkgErr / bkg * bkgErr / bkg ));
533+ hRawYieldsSignificance -> SetBinContent (iSliceVar + 1 , significance );
534+ hRawYieldsSignificance -> SetBinError (iSliceVar + 1 , significanceErr );
542535 hRawYieldsChiSquareBkg -> SetBinContent (iSliceVar + 1 , reducedChiSquareBkg );
543536 hRawYieldsChiSquareBkg -> SetBinError (iSliceVar + 1 , 1.e-20 );
544537 hRawYieldsChiSquareTotal -> SetBinContent (iSliceVar + 1 , reducedChiSquareTotal );
545538 hRawYieldsChiSquareTotal -> SetBinError (iSliceVar + 1 , 1.e-20 );
539+ hRawYieldsMean -> SetBinContent (iSliceVar + 1 , mean );
540+ hRawYieldsMean -> SetBinError (iSliceVar + 1 , meanErr );
541+ hRawYieldsSigma -> SetBinContent (iSliceVar + 1 , sigma );
542+ hRawYieldsSigma -> SetBinError (iSliceVar + 1 , sigmaErr );
543+
544+ if (sgnFunc [iSliceVar ] != HFInvMassFitter ::SingleGaus ) {
545+ const double secSigma = massFitter -> getSecSigma ();
546+ const double secSigmaErr = massFitter -> getSecSigmaUncertainty ();
547+ hRawYieldsSecSigma -> SetBinContent (iSliceVar + 1 , secSigma );
548+ hRawYieldsSecSigma -> SetBinError (iSliceVar + 1 , secSigmaErr );
549+ }
550+ if (sgnFunc [iSliceVar ] == HFInvMassFitter ::DoubleGaus || sgnFunc [iSliceVar ] == HFInvMassFitter ::DoubleGausSigmaRatioPar ) {
551+ const double fracDoubleGaus = massFitter -> getFracDoubleGaus ();
552+ const double fracDoubleGausErr = massFitter -> getFracDoubleGausUncertainty ();
553+ hRawYieldsFracDoubleGaus -> SetBinContent (iSliceVar + 1 , fracDoubleGaus );
554+ hRawYieldsFracDoubleGaus -> SetBinError (iSliceVar + 1 , fracDoubleGausErr );
555+ }
556+
546557 if (enableRefl ) {
547558 hReflectionOverSignal -> SetBinContent (iSliceVar + 1 , reflOverSgn );
548559 if (nSliceVarBins > 1 ) {
@@ -617,15 +628,15 @@ int runMassFitter(const TString& configFileName)
617628 }
618629 hRawYieldsSignal -> Write ();
619630 hRawYieldsSignalCounted -> Write ();
631+ hRawYieldsBkg -> Write ();
632+ hRawYieldsSgnOverBkg -> Write ();
633+ hRawYieldsSignificance -> Write ();
634+ hRawYieldsChiSquareBkg -> Write ();
635+ hRawYieldsChiSquareTotal -> Write ();
620636 hRawYieldsMean -> Write ();
621637 hRawYieldsSigma -> Write ();
622638 hRawYieldsSecSigma -> Write ();
623639 hRawYieldsFracDoubleGaus -> Write ();
624- hRawYieldsSignificance -> Write ();
625- hRawYieldsSgnOverBkg -> Write ();
626- hRawYieldsBkg -> Write ();
627- hRawYieldsChiSquareBkg -> Write ();
628- hRawYieldsChiSquareTotal -> Write ();
629640 if (enableRefl ) {
630641 hReflectionOverSignal -> Write ();
631642 }
0 commit comments