Skip to content

Commit 5bf89d4

Browse files
committed
bugfix read vector from histo and init rndSeed
1 parent 0feee38 commit 5bf89d4

3 files changed

Lines changed: 7 additions & 8 deletions

File tree

PWGHF/D2H/Macros/HFInvMassFitter.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ HFInvMassFitter::HFInvMassFitter(TH1* histoToFit,
6262
double minValue,
6363
double maxValue,
6464
int fitTypeBkg,
65-
int fitTypeSgn) : mHistoInvMass(nullptr),
65+
int fitTypeSgn,
66+
int randomSeed) : mHistoInvMass(nullptr),
6667
mFitOption("L,E"),
6768
mMinMass(minValue),
6869
mMaxMass(maxValue),
@@ -149,7 +150,7 @@ HFInvMassFitter::HFInvMassFitter(TH1* histoToFit,
149150
mHistoTemplateRefl(nullptr),
150151
mDrawBgPrefit(false),
151152
mHighlightPeakRegion(false),
152-
mRandomSeed(-1),
153+
mRandomSeed(randomSeed),
153154
mRandomGen(nullptr)
154155
{
155156
// standard constructor

PWGHF/D2H/Macros/HFInvMassFitter.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class HFInvMassFitter : public TNamed
7777
};
7878
std::array<std::string, NTypesOfReflPdf> namesOfReflPdf{"reflFuncGaus", "reflFuncDoubleGaus", "reflFuncPoly3", "reflFuncPoly6"};
7979
HFInvMassFitter() = delete;
80-
HFInvMassFitter(TH1* histoToFit, double minValue, double maxValue, int fitTypeBkg = Expo, int fitTypeSgn = SingleGaus);
80+
HFInvMassFitter(TH1* histoToFit, double minValue, double maxValue, int fitTypeBkg = Expo, int fitTypeSgn = SingleGaus, int randomSeed = -1);
8181
~HFInvMassFitter() override;
8282
void setHistogramForFit(TH1* histoToFit);
8383
void setUseLikelihoodFit() { mFitOption = "L,E"; }
@@ -169,7 +169,6 @@ class HFInvMassFitter : public TNamed
169169
void drawResidual(TVirtualPad* c);
170170
void drawRatio(TVirtualPad* c);
171171
void drawReflection(TVirtualPad* c);
172-
void setRandomSeed(int seed) { mRandomSeed = seed; }
173172

174173
private:
175174
HFInvMassFitter(const HFInvMassFitter& source);

PWGHF/D2H/Macros/runMassFitter.C

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ void runMassFitter(const std::string& configFileName)
431431

432432
double reflOverSgn = 0;
433433

434-
HFInvMassFitter* massFitter = new HFInvMassFitter(hMass[iSliceVar], massMin[iSliceVar], massMax[iSliceVar], bkgFunc[iSliceVar], sgnFunc[iSliceVar]);
434+
HFInvMassFitter* massFitter = new HFInvMassFitter(hMass[iSliceVar], massMin[iSliceVar], massMax[iSliceVar], bkgFunc[iSliceVar], sgnFunc[iSliceVar], randomSeed);
435435
massFitter->setDrawBgPrefit(drawBgPrefit);
436436
massFitter->setHighlightPeakRegion(highlightPeakRegion);
437437
massFitter->setInitialGaussianMean(massPDG);
@@ -442,7 +442,6 @@ void runMassFitter(const std::string& configFileName)
442442
} else {
443443
massFitter->setUseChi2Fit();
444444
}
445-
massFitter->setRandomSeed(randomSeed);
446445

447446
auto setFixedValue = [&iSliceVar](bool const& isFix, std::vector<double> const& fixManual, const TH1* histToFix, std::function<void(double)> setFunc, std::string const& var) -> void {
448447
if (isFix) {
@@ -741,8 +740,8 @@ void readJsonVectorFromHisto(std::vector<double>& vec, const Document& config, c
741740
if (!vec.empty()) {
742741
throw std::runtime_error("readJsonVectorFromHisto(): vector is not empty!");
743742
}
744-
const auto fileName = readJsonField<std::string>(config, fileNameFieldName);
745-
const auto histoName = readJsonField<std::string>(config, histoNameFieldName);
743+
const auto fileName = readJsonField<std::string>(config, fileNameFieldName, "");
744+
const auto histoName = readJsonField<std::string>(config, histoNameFieldName, "");
746745
if (fileName.empty() || histoName.empty()) {
747746
return;
748747
}

0 commit comments

Comments
 (0)