Skip to content

Commit 2b0091f

Browse files
committed
Store signal parameters to hist only when present
1 parent 302ecee commit 2b0091f

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
@@ -430,33 +430,38 @@ int runMassFitter(const TString& configFileName)
430430
const Double_t rawYieldErr = massFitter->getRawYieldError();
431431
const Double_t rawYieldCounted = massFitter->getRawYieldCounted();
432432
const Double_t rawYieldCountedErr = massFitter->getRawYieldCountedError();
433+
const Double_t reducedChiSquareBkg = massFitter->getChiSquareOverNDFBkg();
434+
const Double_t reducedChiSquareTotal = massFitter->getChiSquareOverNDFTotal();
433435
const Double_t mean = massFitter->getMean();
434436
const Double_t meanErr = massFitter->getMeanUncertainty();
435437
const Double_t sigma = massFitter->getSigma();
436438
const Double_t sigmaErr = massFitter->getSigmaUncertainty();
437-
const Double_t secSigma = massFitter->getSecSigma();
438-
const Double_t secSigmaErr = massFitter->getSecSigmaUncertainty();
439-
const Double_t fracDoubleGaus = massFitter->getFracDoubleGaus();
440-
const Double_t fracDoubleGausErr = massFitter->getFracDoubleGausUncertainty();
441-
const Double_t reducedChiSquareBkg = massFitter->getChiSquareOverNDFBkg();
442-
const Double_t reducedChiSquareTotal = massFitter->getChiSquareOverNDFTotal();
443439

444440
hRawYieldsSignal->SetBinContent(iSliceVar + 1, rawYield);
445441
hRawYieldsSignal->SetBinError(iSliceVar + 1, rawYieldErr);
446442
hRawYieldsSignalCounted->SetBinContent(iSliceVar + 1, rawYieldCounted);
447443
hRawYieldsSignalCounted->SetBinError(iSliceVar + 1, rawYieldCountedErr);
448-
hRawYieldsMean->SetBinContent(iSliceVar + 1, mean);
449-
hRawYieldsMean->SetBinError(iSliceVar + 1, meanErr);
450-
hRawYieldsSigma->SetBinContent(iSliceVar + 1, sigma);
451-
hRawYieldsSigma->SetBinError(iSliceVar + 1, sigmaErr);
452-
hRawYieldsSecSigma->SetBinContent(iSliceVar + 1, secSigma);
453-
hRawYieldsSecSigma->SetBinError(iSliceVar + 1, secSigmaErr);
454-
hRawYieldsFracDoubleGaus->SetBinContent(iSliceVar + 1, fracDoubleGaus);
455-
hRawYieldsFracDoubleGaus->SetBinError(iSliceVar + 1, fracDoubleGausErr);
456444
hRawYieldsChiSquareBkg->SetBinContent(iSliceVar + 1, reducedChiSquareBkg);
457445
hRawYieldsChiSquareBkg->SetBinError(iSliceVar + 1, 0.);
458446
hRawYieldsChiSquareTotal->SetBinContent(iSliceVar + 1, reducedChiSquareTotal);
459447
hRawYieldsChiSquareTotal->SetBinError(iSliceVar + 1, 0.);
448+
hRawYieldsMean->SetBinContent(iSliceVar + 1, mean);
449+
hRawYieldsMean->SetBinError(iSliceVar + 1, meanErr);
450+
hRawYieldsSigma->SetBinContent(iSliceVar + 1, sigma);
451+
hRawYieldsSigma->SetBinError(iSliceVar + 1, sigmaErr);
452+
453+
if (sgnFunc[iSliceVar] != HFInvMassFitter::SingleGaus) {
454+
const Double_t secSigma = massFitter->getSecSigma();
455+
const Double_t secSigmaErr = massFitter->getSecSigmaUncertainty();
456+
hRawYieldsSecSigma->SetBinContent(iSliceVar + 1, secSigma);
457+
hRawYieldsSecSigma->SetBinError(iSliceVar + 1, secSigmaErr);
458+
}
459+
if (sgnFunc[iSliceVar] == HFInvMassFitter::DoubleGaus || sgnFunc[iSliceVar] == HFInvMassFitter::DoubleGausSigmaRatioPar) {
460+
const Double_t fracDoubleGaus = massFitter->getFracDoubleGaus();
461+
const Double_t fracDoubleGausErr = massFitter->getFracDoubleGausUncertainty();
462+
hRawYieldsFracDoubleGaus->SetBinContent(iSliceVar + 1, fracDoubleGaus);
463+
hRawYieldsFracDoubleGaus->SetBinError(iSliceVar + 1, fracDoubleGausErr);
464+
}
460465
} else {
461466
HFInvMassFitter* massFitter;
462467
massFitter = new HFInvMassFitter(hMassForFit[iSliceVar], massMin[iSliceVar], massMax[iSliceVar],
@@ -504,43 +509,49 @@ int runMassFitter(const TString& configFileName)
504509
const double rawYieldErr = massFitter->getRawYieldError();
505510
const double rawYieldCounted = massFitter->getRawYieldCounted();
506511
const double rawYieldCountedErr = massFitter->getRawYieldCountedError();
512+
const double bkg = massFitter->getBkgYield();
513+
const double bkgErr = massFitter->getBkgYieldError();
514+
const double significance = massFitter->getSignificance();
515+
const double significanceErr = massFitter->getSignificanceError();
516+
const double reducedChiSquareBkg = massFitter->getChiSquareOverNDFBkg();
517+
const double reducedChiSquareTotal = massFitter->getChiSquareOverNDFTotal();
507518
const double mean = massFitter->getMean();
508519
const double meanErr = massFitter->getMeanUncertainty();
509520
const double sigma = massFitter->getSigma();
510521
const double sigmaErr = massFitter->getSigmaUncertainty();
511-
const double secSigma = massFitter->getSecSigma();
512-
const double secSigmaErr = massFitter->getSecSigmaUncertainty();
513-
const double fracDoubleGaus = massFitter->getFracDoubleGaus();
514-
const double fracDoubleGausErr = massFitter->getFracDoubleGausUncertainty();
515-
const double reducedChiSquareBkg = massFitter->getChiSquareOverNDFBkg();
516-
const double reducedChiSquareTotal = massFitter->getChiSquareOverNDFTotal();
517-
const double significance = massFitter->getSignificance();
518-
const double significanceErr = massFitter->getSignificanceError();
519-
const double bkg = massFitter->getBkgYield();
520-
const double bkgErr = massFitter->getBkgYieldError();
521522

522523
hRawYieldsSignal->SetBinContent(iSliceVar + 1, rawYield);
523524
hRawYieldsSignal->SetBinError(iSliceVar + 1, rawYieldErr);
524525
hRawYieldsSignalCounted->SetBinContent(iSliceVar + 1, rawYieldCounted);
525526
hRawYieldsSignalCounted->SetBinError(iSliceVar + 1, rawYieldCountedErr);
526-
hRawYieldsMean->SetBinContent(iSliceVar + 1, mean);
527-
hRawYieldsMean->SetBinError(iSliceVar + 1, meanErr);
528-
hRawYieldsSigma->SetBinContent(iSliceVar + 1, sigma);
529-
hRawYieldsSigma->SetBinError(iSliceVar + 1, sigmaErr);
530-
hRawYieldsSecSigma->SetBinContent(iSliceVar + 1, secSigma);
531-
hRawYieldsSecSigma->SetBinError(iSliceVar + 1, secSigmaErr);
532-
hRawYieldsFracDoubleGaus->SetBinContent(iSliceVar + 1, fracDoubleGaus);
533-
hRawYieldsFracDoubleGaus->SetBinError(iSliceVar + 1, fracDoubleGausErr);
534-
hRawYieldsSignificance->SetBinContent(iSliceVar + 1, significance);
535-
hRawYieldsSignificance->SetBinError(iSliceVar + 1, significanceErr);
536-
hRawYieldsSgnOverBkg->SetBinContent(iSliceVar + 1, rawYield / bkg);
537-
hRawYieldsSgnOverBkg->SetBinError(iSliceVar + 1, rawYield / bkg * std::sqrt(rawYieldErr / rawYield * rawYieldErr / rawYield + bkgErr / bkg * bkgErr / bkg));
538527
hRawYieldsBkg->SetBinContent(iSliceVar + 1, bkg);
539528
hRawYieldsBkg->SetBinError(iSliceVar + 1, bkgErr);
529+
hRawYieldsSgnOverBkg->SetBinContent(iSliceVar + 1, rawYield / bkg);
530+
hRawYieldsSgnOverBkg->SetBinError(iSliceVar + 1, rawYield / bkg * std::sqrt(rawYieldErr / rawYield * rawYieldErr / rawYield + bkgErr / bkg * bkgErr / bkg));
531+
hRawYieldsSignificance->SetBinContent(iSliceVar + 1, significance);
532+
hRawYieldsSignificance->SetBinError(iSliceVar + 1, significanceErr);
540533
hRawYieldsChiSquareBkg->SetBinContent(iSliceVar + 1, reducedChiSquareBkg);
541534
hRawYieldsChiSquareBkg->SetBinError(iSliceVar + 1, 1.e-20);
542535
hRawYieldsChiSquareTotal->SetBinContent(iSliceVar + 1, reducedChiSquareTotal);
543536
hRawYieldsChiSquareTotal->SetBinError(iSliceVar + 1, 1.e-20);
537+
hRawYieldsMean->SetBinContent(iSliceVar + 1, mean);
538+
hRawYieldsMean->SetBinError(iSliceVar + 1, meanErr);
539+
hRawYieldsSigma->SetBinContent(iSliceVar + 1, sigma);
540+
hRawYieldsSigma->SetBinError(iSliceVar + 1, sigmaErr);
541+
542+
if (sgnFunc[iSliceVar] != HFInvMassFitter::SingleGaus) {
543+
const double secSigma = massFitter->getSecSigma();
544+
const double secSigmaErr = massFitter->getSecSigmaUncertainty();
545+
hRawYieldsSecSigma->SetBinContent(iSliceVar + 1, secSigma);
546+
hRawYieldsSecSigma->SetBinError(iSliceVar + 1, secSigmaErr);
547+
}
548+
if (sgnFunc[iSliceVar] == HFInvMassFitter::DoubleGaus || sgnFunc[iSliceVar] == HFInvMassFitter::DoubleGausSigmaRatioPar) {
549+
const double fracDoubleGaus = massFitter->getFracDoubleGaus();
550+
const double fracDoubleGausErr = massFitter->getFracDoubleGausUncertainty();
551+
hRawYieldsFracDoubleGaus->SetBinContent(iSliceVar + 1, fracDoubleGaus);
552+
hRawYieldsFracDoubleGaus->SetBinError(iSliceVar + 1, fracDoubleGausErr);
553+
}
554+
544555
if (enableRefl) {
545556
hReflectionOverSignal->SetBinContent(iSliceVar + 1, reflOverSgn);
546557
}
@@ -618,15 +629,15 @@ int runMassFitter(const TString& configFileName)
618629
}
619630
hRawYieldsSignal->Write();
620631
hRawYieldsSignalCounted->Write();
632+
hRawYieldsBkg->Write();
633+
hRawYieldsSgnOverBkg->Write();
634+
hRawYieldsSignificance->Write();
635+
hRawYieldsChiSquareBkg->Write();
636+
hRawYieldsChiSquareTotal->Write();
621637
hRawYieldsMean->Write();
622638
hRawYieldsSigma->Write();
623639
hRawYieldsSecSigma->Write();
624640
hRawYieldsFracDoubleGaus->Write();
625-
hRawYieldsSignificance->Write();
626-
hRawYieldsSgnOverBkg->Write();
627-
hRawYieldsBkg->Write();
628-
hRawYieldsChiSquareBkg->Write();
629-
hRawYieldsChiSquareTotal->Write();
630641
if (enableRefl) {
631642
hReflectionOverSignal->Write();
632643
}

0 commit comments

Comments
 (0)