Skip to content

Commit 92823fc

Browse files
committed
Store signal parameters to hist only when present
1 parent b464a70 commit 92823fc

File tree

1 file changed

+52
-41
lines changed

1 file changed

+52
-41
lines changed

PWGHF/D2H/Macros/runMassFitter.C

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)